![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
コンボボックスを使い検索をしたいと考えております!
名前は
テーブル1:ビル区分マスタ←フィールド:ビル区分、ビル名
テーブル2:テナントマスタ←フィールド:ビル区分、テナントコードetc…があります
コンボボックス:cbo検索ビル区分、cbo検索テナントコード
コマンドボタン:btn検索
cbo検索ビル区分に01,02があり、例えば01を選んだときcbo検索テナントコードにビル区分が01のテナントコードを出したいのです!そしてbtn検索をクリックするとフォームにそのデータを出したいのです!
こんな文章じゃわかりにくいかとも思われますが、よろしくお願いします!!もんすごい初心者です!
No.3ベストアンサー
- 回答日時:
こんにちは。
maruru01です。コード上での方法ですが。
cbo検索ビル区分のChangeイベント(Clickイベントにも書かないといけないかも知れない)に、
Me!cbo検索テナントコード.RowSource = "SELECT テナントコード FROM テーブル2 WHERE ビル区分 = '" & Me!cbo検索ビル区分 & "'"
と書きます。
次にbtn検索のClickイベントに、
Me.Filter = "ビル区分 = '" & Me!cbo検索ビル区分 & "' AND テナントコード = '" & Me!cbo検索テナントコード & "'"
Me.FilterOn
と書きます。
もし、別のフォームを開くのであれば、
DoCmd.OpenForm "フォーム名",,,"ビル区分 = '" & Me!cbo検索ビル区分 & "' AND テナントコード = '" & Me!cbo検索テナントコード & "'"
とします。
この時、開くフォームのレコードソースに[テーブル2]を設定しておきます。
この回答への補足
それと書き忘れてたのですが、先に検索テナントコードは開けないようにしたいのです!
どういうことかというと先に検索ビル区分を選びそれに対応する検索テナントコードを表示させたいのです!
例えば、
検索ビル区分 検索テナントコード
01 100
01 101
01 102
02 103
というテーブルにあるとします。
もし検索ビル区分で01を選択した場合検索テナントコードには、100,101,102が表示という具合にしたいのです!
そしてプラス先に検索ビル区分が選ばれてない場合、仮に検索テナントコードを表示しようとしてもできないようにしたいのですがどうすればいいのでしょうか?
わかりにくいかと思いますけどよろしくお願いします
No.7
- 回答日時:
>それと書き忘れてたのですが、先に検索テナントコードは開けないようにしたいのです!
>どういうことかというと先に検索ビル区分を選びそれに対応する検索テナントコードを表示させたいのです!
検索テナントコードはあらかじめ選択できないようにして(Enabled=False)、検索ビル区分が入力された時にBeforeUpdateイベントでRecordSourceをセットし、検索テナントコードのEnabled=Trueにすればいいと思います。
btn検索の方も同様に考えてください。
#moshamoshaさんは、職業プログラマーの方ですか?
#そうであれば、このくらいの事を質問できる先輩とかはいませんか?
#職場で画面を見てもらいながら教えてもらえば一番わかり易いと思います。
No.6
- 回答日時:
●cbo検索ビル区分の集合値ソース
-----ここから
SELECT ビル区分マスタ.ビル区分, ビル区分マスタ.ビル名 FROM ビル区分マスタ ORDER BY ビル区分マスタ.ビル区分;
-----ここまで
●cbo検索ビル区分の更新後処理
[イベント プロシージャ]
(内容)
-----ここから
Private Sub cbo検索ビル区分_AfterUpdate()
cbo検索テナントコード.Requery
End Sub
-----ここまで
●cbo検索テナントコードの集合値ソース
-----ここから
SELECT [テナントマスタ].[テナントコード] FROM テナントマスタ WHERE ((([テナントマスタ].[ビル区分])=[forms]![テナントマスタ].[cbo検索ビル区分])) ORDER BY [テナントマスタ].[テナントコード];
-----ここまで
●btn検索のクリック時
[イベント プロシージャ]
(内容)
-----ここから
Private Sub btn検索_Click()
Dim Conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim StrSQL As String
Set Conn = CurrentProject.Connection
StrSQL = "SELECT * FROM テナントマスタ WHERE ビル区分='" & cbo検索ビル区分 & "'"
rs.Open (StrSQL), Conn
テキスト1 = rs!テナントコード
rs.Close
End Sub
-----ここまで
以上です。
もう少しちゃんと書けばいいのですが、
面倒なので、このへんで。。。
コンボボックスの表示をコードではなく名称にしたい
とか、
例えば
cbo検索ビル区分を01で選択後
cbo検索テナントコードを0002で選択後
cbo検索ビル区分を02で選択したら、
cbo検索テナントコードが0002のままなので、
自動でcbo検索テナントコードを何とかしたい
とか
は自分で考えて下さい。。。
では~。
No.5
- 回答日時:
aptivaさん補足ありがとうございます。
確かにBeforeUpdateイベントの方がいいかも知れません。
あと、
>念の為、BeforeUpdateイベントの中で値チェック(値が01か02であるか)もしたらベターかと。
これは、コンボボックスの[入力チェック]プロパティに"はい"を設定しておけばいいと思いますが。
No.4
- 回答日時:
#3に補足ですが、
> cbo検索ビル区分のChangeイベント(Clickイベントにも書かないといけないかも知れない)に、
>Me!cbo検索テナントコード.RowSource = "SELECT テナントコード FROM テーブル2 WHERE ビル区分 = '" & Me!cbo検索ビル区分 & "'"
ここは、BeforeUpdateイベントの方がいいと思います。
Changeイベントだと、なにか入力が起きるたびにイベントが発生してしまうので。
念の為、BeforeUpdateイベントの中で値チェック(値が01か02であるか)もしたらベターかと。
RowSourceプロパティーを設定後、Me!cbo検索テナントコード.Requeryも必要かもしれません。
あと、
Me!cbo検索テナントコード.RowSource = "SELECT テナントコード FROM テーブル2 WHERE ビル区分 = '" & Me!cbo検索ビル区分 & "'" Order By テナントコード
とOrder By句をつけるとテナントコードが昇順に表示されます。
No.2
- 回答日時:
#1 です。
>btn検索をクリックするとフォームにそのデータを出したいのです!
を見落としてました。。。
スイマセン(^^;
SQL文の記述はわかりますか?
質問No.351375 の回答No.5 に
ファイルの読み方を書いてますので、
あてはめて考えてみて下さい。
で、どこがわかりませんか?
考えたなりのコードを教えてくれれば、見ますが。
# 全部書くのが結構ツライので。。。(^^;
あと、フォーム名は、「フォーム1」でいいですか?
この回答への補足
フォーム名はテナントマスタです!
それから、どうするもこうするも全くわからないのでどうすることもできていませんでした!
お手数ですがぜひとも書いてはいただけないでしょうか?
お願いします!!
No.1
- 回答日時:
cbo検索ビル区分(コンボボックス)のプロパティに、
「集合値ソース」というのがあります。
まずそこに、
SELECT ビル区分, ビル名 FROM テーブル1;
と書きます。
cbo検索テナントコードの「集合値ソース」に、
SELECT テナントコード
FROM テーブル1
WHERE (((ビル区分)=[forms]![フォーム1].[cbo検索ビル区分]));
でできると思います。
# 未確認ですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(ネットショッピング・通販・ECサイト) この会社に注文して大丈夫でしょうか? 5 2022/07/19 14:40
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
- 薬学 こんなおくすり手帳 4 2022/11/21 14:11
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レコードを追加できませ...
-
ACCESS 複数テーブル・複数フィ...
-
検索結果の列数を動的に変更したい
-
INSERT文で発行したオートナン...
-
【Access】外部結合を行う前に...
-
複数テーブルをひとつのテーブ...
-
列が255以上のCSVファイルをAcc...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
postgreSQLのint型は桁数指定が...
-
datapumpの実行方法について
-
Viewにインデックスは張れ...
-
truncate文で全テーブルを一気...
-
SQL*Loaderで、データを加工し...
-
CLOB型へのINSERT
-
異なるスキーマからデータを抽...
-
db2にて数値を3桁文字にて出力...
-
INDEX 見積もりについて
-
DELETE文でFROM句を省略した場合
-
SQL文作成のお願い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レコードを追加できませ...
-
ACCESS 複数テーブル・複数フィ...
-
検索結果の列数を動的に変更したい
-
【Access】外部結合を行う前に...
-
INSERT文で発行したオートナン...
-
列が255以上のCSVファイルをAcc...
-
AccessのInsertクエリのあとつ...
-
コンボボックスの2段階絞込み
-
複数テーブルをひとつのテーブ...
-
ACCESSでの文字列の比較
-
売価変更がある商品の売上金額
-
お知恵をお貸しください。
-
複数あるAccessのテーブルを一...
-
Access2002 マスタテーブル変更...
-
Accessのテーブル内の文字の置...
-
検索フォームで検索するものが...
-
Access2000での複合検索について
-
AS/400のDBについて
-
複数テーブルからの抽出と結合...
-
データベースの正規化について
おすすめ情報