AccessVBAで削除フラグがオフのレコードのみコンボボックスに読み込む

AccessVBAで削除フラグがオフのレコードのみコンボボックスに読み込む

コンボボックスにマスタから項目を読み込むのはよくあると思いますが、今は使ってない項目を非表示にしたいこともありますよね。そういうときのtipsです。


商品マスタを条件なしで読み込み

こういう商品マスタのテーブルがあったとして、

フォームにコンボボックスを作って、値集合タイプだけ設定しておきます。列数は2にしますがお好みで。

そしたら、このフォームの「読み込み時」イベントプロシージャを作って、

Private Sub Form_Load()
  Me.cmb_商品選択.RowSource = "SELECT f_商品ID, f_商品名 FROM T_商品マスタ;"
End Sub

コンボボックスのRowSourceに商品マスタを読み込むSELECT文を書きます。

動かしてみると、こうなります。この時点では条件をつけていないのですべてのレコードを読み込みます。

削除フラグを考慮

条件をつけるための削除フラグをマスタテーブルに追加します。

Private Sub Form_Load()
  Me.cmb_商品選択.RowSource = "SELECT f_商品ID, f_商品名 FROM T_商品マスタ WHERE f_削除F = False;"
End Sub

WHERE文で削除フラグがFalaseの条件を付けます。

削除フラグがFalseのもののみ表示されます。マスタの情報は基本削除はしないので、使わなくなった項目はフラグを立てて非表示にするとユーザーも選びやすくなります。

公開日:2019/08/27

書籍を執筆しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。