すみません、教えて下さい。
過去の質問を参考にして式を作ってみたのですが、うまくいきません。教えてください。
コンボのリストにない項目が発生した際に、次のイベントを起こして追加をしたいです。
(1)リストにない場合、メッセージを出して(「リストにないので追加をしてください」)追加用のフォームを開きすぐに利用できるようにしたい。
(2)リストにないものをすでに入力している場合、フォームを開く際にデフォルトとしてその文章が入力される。
(3)同様に、ダブルクリックした場合追加リストを表示してすぐにリストに反映させたい。
NotInListでイベントプロシージャーを登録しようとしてますが、どうしてもうまくいきません。
申し訳ありませんが、ご協力お願いいたします。
No.2ベストアンサー
- 回答日時:
少し時間がとれたので、サンプルを作成してみました。
もしよろしければ、そちらでも作成して、参考にして下さい:
【テーブル】
1)ListA : ID(オートナンバー型・主キー)、Text(テキスト型)
2)TableA : Number(オートナンバー型・主キー)、Text(数値型・長整数)、Sentence(テキスト型)
*「TableA」の「Text」には、「ListA」のIDが記録されます。
*「ListA・ID-TableA・Text」での一対多のリレーションシップを想定。
【クエリ】
1)MQ1_Add :
INSERT INTO ListA ( [Text] )
SELECT [Forms]![PF1]![Text] AS [Text];
*新規クエリをデザインビューで開いた後、テーブルは追加せずに、メニューの「表示(V)」→
「SQLビュー(Q)」をクリック。既定で表示される「Select;」を削除して上記SQL文を貼付。
【フォーム】
1)MF1 :
レコードソース=TableA
<設置コントロール>
・TableAの3つのフィールドは、フィールドリストからのドラッグ&ドロップで全て追加。
(「Number」「Text」「Sentence」)
・非連結コントロール・「新値」テキストボックスを追加
(非表示がベター:私は変数指定に慣れていないので、その代わりとして使っています)
*「Text」テキストボックスは、メニューで「書式(O)」→「コントロールの種類の変更(H)」→
「コンボボックス(C)」をクリックして、コンボボックスに変更後、以下のプロパティを設定:
・「書式」タブ : 列数=2、列幅=0cm;3cm
・「データ」タブ : 値集合ソース=ListA、連結列=1
(「入力チェック」の値は、自動的に「はい」になる)
・イベント : 「リスト外入力時」イベントのビルダ(「...」)で「コードビルダ」を選択し、以下を貼付
Private Sub Text_NotInList(NewData As String, Response As Integer)
MsgBox "リストにないデータです。" & Chr(13) & "追加登録して下さい。"
新値 = NewData
DoCmd.OpenForm "PF1", , "", "", acFormAdd, acDialog
Response = acDataErrAdded
End Sub
2)PF1 :
レコードソース=なし(空欄)
*フォームのイベントとして、「開く時」イベントのビルダで「コードビルダ」を選択し、以下を貼付:
Private Sub Form_Open(Cancel As Integer)
Text = Forms!MF1!新値
End Sub
<設置コントロール>
・「ID」テキストボックス(非連結)、「Text」テキストボックス(非連結)
・「登録」コマンドボタン : 「クリック時」イベントのビルダで「コードビルダ」を選択し、以下を貼付
Private Sub 登録_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "MQ1_Add"
DoCmd.SetWarnings True
DoCmd.Close , , acSaveNo
End Sub
サンプルは以上です。
「MF1」フォームを開いたら、「Text」コンボボックスに適当なデータを入力してみて下さい。
「PF1」フォームが開き、リスト外だったデータが「Text」テキストボックスに表示されます。
「登録」ボタンをクリックするとPF1が閉じ、「MF1」の「テキスト」コンボに値が正しく入力されます。
(つまり、ご質問の「(1)」と「(2)」に対応)
*「MF1」で入力したのと違うデータを「PF1」で入力した場合は、「リストにありません」とメッセージが表示され、
コンボボックスのリストが展開されます。(登録したデータはリストに追加されています)
No.1
- 回答日時:
>リストにない場合・・追加用のフォームを開きすぐに利用できるようにしたい。
これはコンボに表示するのは追加用のフォームでテーブルに入力したレコードということで良いのですよね。
追加用のフォームで入力しテーブルにレコードを保存し確定した状態にしなくてはダメです。そしてコンボボックスのリストをRequeryすれば反映出来ます。
例えば追加用のフォームにレコードの保存ボタンでも作り
Dim ctlCombo As Control
Set ctlCombo = Forms!フォーム名!コンボ名
ctlCombo.Requery
上記を追加してテーブルにレコードを保存後、コンボのリストを再クエリさせる。これでいけると思いますが。
>(2)リストにないものをすでに入力している場合・・
>(3)同様に、ダブルクリックした場合追加リスト・・
これはちょっと質問の意味が理解できないので・・。
取りあえずフォーム上のコンボボックスに再クエリをさせる記述を追加すれば対処できるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Android(アンドロイド) タスクやTodoのandroidアプリで、リスト上でタスクの登録日時を表示できるものはありませんか? 2 2023/07/17 17:54
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Visual Basic(VBA) ユーザーフォームでのリストボックス連動(VBA) 3 2022/11/28 11:41
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
コンボボックスのリスト外入力...
-
ACCESS リストボックスの字の色...
-
Accessフォーム 大分類→小分類...
-
Accessのコンボボックスの”すべ...
-
Accessのコンボボックスの値が...
-
accessでのリストボックス選択...
-
Access フォーム内 コンボから...
-
ACCESS2000;日付と曜日...
-
帳票フォームでのあるコンボボ...
-
(ACCESS)フォームデータシート...
-
ACCESSのリストボックス抽出に...
-
ACCESSでフラグによる文字表示
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
ACCESSでVBAから選択クエリの抽...
-
access クエリ yes/no型のクエ...
-
Access 複数フォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスの値が...
-
ACCESSでコンボボックスにSQLで...
-
.flex-direction プロパティは...
-
ACCESS リストボックスの字の色...
-
帳票フォームでのあるコンボボ...
-
accessでオートコンプリート機...
-
ACCESSクエリ抽出条件について
-
Accessのコンボボックスのデフ...
-
accessでのリストボックス選択...
-
Oracleで文字列型の時間を引き...
-
コンボボックスのリスト外入力...
-
コンボボックスのボタンの大き...
-
更新クエリで変数は使えない?
-
ACCESSのリストボックス抽出に...
-
フォームでの検索
-
Access 帳票フォームのコンボボ...
-
Access2003 孫フォームのRequer...
-
アクセス:フォーム入力:【大...
-
[Access2003]コンボボックスと...
おすすめ情報