Microsoft Accessでフォームでの入力方法について教えてください。
本の管理データベースを作成しております。
書籍の情報をデータベースに入力するフォームを作っておりますが、テーブルの項目を入力する際の方法を、直接入力とリストから選択する方法を両方できるようにはできないでしょうか。
例えば、「発行書店」を入力するときに、テキストボックスに直接入力してもOK、別テーブルに書店の一覧を作っておいて、そのリストをコンボリストに表示させ、クリック選択するとテキストボックスに入るような形でもOKのようにしたいのです。
コンボボックスでリストから選ぶだけでなく、ボックス内に直接入力してもテーブルに反映できるようにできれば話が早いのですが、デザインビューのプロパティで入力チェックを「いいえ」にしてもエラーが出て設定できないので・・・。
無知で申し訳ありませんが、どうかご教示ください。
No.1ベストアンサー
- 回答日時:
質問の場合は以下の方法をとります。
http://support.microsoft.com/kb/197526
しかし、これを質問の場合に合わせて書き換えて
ください、というのは大変かも知れません。
上記の、NotInListとはコンボボックスの
プロパティの「リスト外入力時」のイベントに設定
します。
説明を簡単にするためにこちらで利用方法を
設定します。
(1) テーブルの設定
T図書:
図書ID (テキスト型) (主キー)
図書名(テキスト型)
発行書店 (テキスト型)
T発行書店:
発行書店ID(テキスト型) (主キー)
発行書店(テキスト型)
(2) フォームの作成
フォームの「新規作成」を選択し、
「基になるテーブルまたはクエリの選択」で「T図書」を
選択し、「オートフォーム表形式」を選択し、「OK]として
出来たフォームを適当な名前で保存します。
(3) フォームの改造
フォームをデザインビューで開き、「発行書店」の上で
右クリックして、コントロールの変更でコンボボックス
を選択します。
(4) コンボボックスの設定
コンボボックの上で右クリックからプロパティを開き、
「値集合ソース」に、以下を貼り付け
保存します。
SELECT T発行書店.発行書店ID, T発行書店.発行書店
FROM T発行書店;
また、列数、列幅を以下に設定します。
列数 2
列幅 0cm,2cm
次に、「リスト外入力時」の右端をクリックして「ビルダの選択」
を表示し、「コードビルダ」を選択して「OK]とします。
表示された、コード表を以下のようにに設定します。
Private Sub 発行書店_NotInList(NewData As String, Response As Integer)
Dim db As Database
Dim rs As Recordset
Dim Msg As String
Dim NewID As String
On Error GoTo ER_R
If NewData = "" Then Exit Sub
Msg = "'" & NewData & "' は登録されていません。" & vbCr & vbCr
Msg = Msg & "新規に登録しますか?"
If MsgBox(Msg, vbQuestion + vbYesNo) = vbNo Then
Response = acDataErrContinue
MsgBox "もう一度登録し直してください"
Else
Set db = CurrentDb
Set rs = db.OpenRecordset("T発行書店", dbOpenDynaset)
Msg = "新しい発行書店IDを入力してください。" & vbCr & "発行書店ID."
NewID = InputBox(Msg)
rs.FindFirst BuildCriteria("発行書店ID", dbText, NewID)
' If the NewID already exists, ask for another new unique
' CustomerID
Do Until rs.NoMatch
NewID = InputBox("発行書店ID " & NewID & " はすでに存在します." & _
vbCr & vbCr & Msg, NewID & " 既存")
rs.FindFirst BuildCriteria("発行書店ID", dbText, NewID)
Loop
' 新しいレコードの設定
rs.AddNew
' 発行書店IDの登録
rs![発行書店ID] = NewID
' 発行書店の名前の登録
rs![発行書店] = NewData
' 登録したレコードの保存
rs.Update
Response = acDataErrAdded
End If
Exit Sub
ER_R:
MsgBox Err.Description
Response = acDataErrContinue
End Sub
以上です。基本的なNotInListプロパティの使い方です。
No.3
- 回答日時:
ルックアップテーブルを使うのが簡単そう。
たとえば『書店一覧』というテーブルがあって
書店名
アサヒ
昼間
夕日
等のデータが格納してあるとし。
書籍テーブルでは書店名を納めたいフィールドが
『発行書店』とすれば
書籍テーブルをデザインビューで開き
発行書店の、ルックアップタブを開き
表示コントロール → コンボボックス
値集合タイプ→テーブル/クエリ
値集合タイプ→書店一覧
連結列→1
列数→1
列幅→2 (見やすいサイズに)
等としておけば、テーブル上でもフォーム上でも
お望みの形になると思います。
書店の一覧表テーブル内に、ID・書店名・電話番号・住所などが
ある場合はもう少しややこしくなりますけど。
そちらのテーブルの内容が分からないのでここまで。
ところで、
変数を宣言する際にどちらのライブラリを使うか明示されれば
DAOとADOの共存できますよ。
http://msdn.microsoft.com/ja-jp/library/cc948691 …
↑の真ん中あたり
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.flex-direction プロパティは...
-
Access 個別部署名テーブルから...
-
ACCESSでコンボボックスにSQLで...
-
Accessのコンボボックスの値が...
-
帳票フォームでのあるコンボボ...
-
リストボックスの時はリンク先...
-
ACCESSクエリ抽出条件について
-
Oracleで文字列型の時間を引き...
-
ACCESS リストボックスの字の色...
-
Access サブフォームでの選択行...
-
ACCESSでVBAから選択クエリの抽...
-
未審査請求包袋抽出表作成とは...
-
ACCESS 複数のフォームから同一...
-
エクセルで、抽出したデータだ...
-
前のレコードの値を自動で入れたい
-
googleフォームでインストール...
-
ACCESSのクエリー抽出条件にIIF...
-
Accessフォームが入力できません。
-
アクセス 同じフィールド(テキ...
-
Accessでフィルタの実行アクシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスの値が...
-
ACCESSでコンボボックスにSQLで...
-
Oracleで文字列型の時間を引き...
-
ACCESS リストボックスの字の色...
-
ACCESSクエリ抽出条件について
-
帳票フォームでのあるコンボボ...
-
accessでオートコンプリート機...
-
accessでのリストボックス選択...
-
Accessのコンボボックスの”すべ...
-
パススルークエリのデータ件数...
-
リストボックスの時はリンク先...
-
Accessのフォーム(コンボボッ...
-
コンボボックスのボタンの大き...
-
.flex-direction プロパティは...
-
更新クエリで変数は使えない?
-
Accessフォーム 大分類→小分類...
-
アクセス:フォーム入力:【大...
-
Accessのコンボボックスのデフ...
-
自動入力
おすすめ情報