まだ6ヶ月程度のAccess初心者です。データ入力上の誤入力を避けたいのですが方法がわからず悩んでいます。初心者で、未だ基本的な理解ができていないためだと思いますが、どなたか解決法をご教授いただければありがたく存じます。
1つのフォーム上に複数のコンボボックスを用意して、同じ値集合ソース(テーブル)を参照して入力をしようとしています。
このとき、まず、コンボボックス1に、参照しているテーブルから”DATA1”という値を入力したとき、次のコンボボックス2のプルダウンメニューには、先の”DATA1”を表示しないように、SQLステートメント:クエリビルダの抽出条件を設定しようと考えています。
このフォームにはコンボボックスを全部で4つ用意して、順次入力の都度、入力済みのデータはプルダウンメニューに表示しないようにし、重複を避けたいというのが目的です。
コンボボックス2の値集合ソースとして設定する際に、SQLステートメント:クエリビルダの抽出条件に記載したものは次のようなものです。
<>[Forms]![フォーム1]![コンボボックス1] And <> [Forms]![フォーム1]![コンボボックス3] And <>[Forms]![フォーム1]![コンボボックス4]
ほかのコンボボックス3~4にも、自分以外のコンボボックスと重複させないつもりで、それぞれ抽出条件を入力しました。
さて、実際にこれで動かしてみると、1回目はうまくいって喜んだのですが、入力値をDeleteして再入力を試みたところ、リストボックスが何も表示されない状態になり、悩んでいます。
何か設定上で不足している、あるいは論理上で考え違いをしているのだと思いますが、何とか解決したいと切に思っています。何卒よろしくお願いします。
No.1ベストアンサー
- 回答日時:
[フィールド名]<>[Forms]![フォーム1]![コンボボックス1]
は、[コンボボックス1] が空白の場合に
True でも False でもなく Null になります。
Null と ある値の And 演算の結果は Null になります。
(VBE のヘルプで「And 演算子」を調べてください。)
よって、1つでも未入力のコンボボックスがあると
抽出条件に 「Null」 と書いたのと同じことになってしまいます。
これを回避するには、空白の場合に Null にならないように
Nz 関数を使います。
<>[Forms]![フォーム1]![コンボボックス1]
を
<>Nz([Forms]![フォーム1]![コンボボックス1] ,"")
のようにしてください。
Nz 関数についてもヘルプで調べてください。
なお、入力するたびに、コンボボックスのリストが変化するように、
下記のような、再クエリの処理が必要なのは、言うまでもありません。
念のため。
Private Sub コンボボックス1_Enter()
Me.ActiveControl.Requery
End Sub
bonaron様
さっそく解決の方法をご教示いただき、大変ありがとうございました。
ご紹介いただいた方法を適用し解決いたしました。レコードを移動しても、途中でdeleteしても問題なく目的としていた形に到達することができました。本当にありがとうございます。
Nz関数については以前、表の集計を取る際にnullを0(ゼロ)に置き換えてから合計するという内容を学習したことがありましたが、こういう場合も必要だということを改めて理解しました。null値の扱いについては今後も要注意ということで頭に入れておきます。
再クエリについては、コンボボックスのイベントプロパティ「フォーカス喪失時」に、コンボボックスごとに再クエリマクロを設定してみました(まだ理解が足りないので試行錯誤ですが…)。
ありがとうございました。またよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスのデフ...
-
ACCESSクエリ抽出条件について
-
リストボックスの時はリンク先...
-
ACCESSでコンボボックスにSQLで...
-
SQLサーバーからひっぱるACCESS...
-
Accessのフォーム(コンボボッ...
-
リストボックスで選択したデー...
-
パススルークエリのデータ件数...
-
Accessのコンボボックスの値が...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
ACCESS 複数のフォームから同一...
-
Access2000、これはいったい・...
-
access別のテーブルを参照して...
-
前のレコードの値を自動で入れたい
-
ソフトの製品コードを知りたい
-
【AccessVBA】レコードセットOp...
-
ACCESSでVBAから選択クエリの抽...
-
「パラメータが少なすぎます。3...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスの値が...
-
ACCESS リストボックスの字の色...
-
ACCESSでコンボボックスにSQLで...
-
accessでオートコンプリート機...
-
Oracleで文字列型の時間を引き...
-
ACCESSクエリ抽出条件について
-
帳票フォームでのあるコンボボ...
-
Accessのコンボボックスのデフ...
-
リストボックスの時はリンク先...
-
Access 帳票フォームのコンボボ...
-
Accessのコンボボックスの”すべ...
-
コンボボックスのボタンの大き...
-
SQLサーバーからひっぱるACCESS...
-
accessでのリストボックス選択...
-
Accessフォーム 大分類→小分類...
-
Accessのフォーム(コンボボッ...
-
Access フォーム内 コンボから...
-
コンボボックスのリスト外入力...
-
フォームでの検索
おすすめ情報