目次
最強の選択フォームとは?
こんにちは。伊川(@naonaoke)です。
顧客リストを一瞬で選択できるようなことをしたいと思いませんか?
コンボボックスは、選択項目が10以上あると面倒になります。
そこで、最強の選択フォームを作成しました。
最強の選択フォームと同様に、便利なツールになります。
問題提起
(株)IKAWAの阿久 世子男(アク セスオ)は、上司から下記の依頼を受けました。
コンボボックスの選択項目が多くてウザイので何とかしろ。
どうしよう?
解決策
回答
・オプショングループと、Select Caseで選択フォームを作成します。
オプショングループ
オプショングループは上の記事で説明しました。
Select Caseは、上の記事で説明しました。
今までの知識で作成できますので、ぜひ作成してみてください。
最強の選択フォーム 作成手順その1 伝票発行システム作成に追加する
上の3本のブログを読んでいただくとさらに理解が深まります。
最強の選択フォーム 作成手順その2 完成形を確認する
上の図のようなフォームを作成します。
最強の選択フォーム 作成手順その3 土台となるフォームを作成
フォームデザインを選択
フォームヘッダー/ヘッダーを選択
オプショングループを選択
オプショングループウィザードを手順で進んできます
最強の選択フォーム 作成手順その4 オプショングループにコードを仕込む
Private Sub fra条件_AfterUpdate() Dim myStr As String '抽出条件 Select Case fra条件 Case 1 myStr = "'[ア-オ]*'" Case 2 myStr = "'[カ-コ]*'" Case 3 myStr = "'[サ-ソ]*'" Case 4 myStr = "'[タ-ト]*'" Case 5 myStr = "'[ナ-ノ]*'" Case 6 myStr = "'[ハ-ホ]*'" Case 7 myStr = "'[マ-モ]*'" Case 8 myStr = "'[ヤ-ヨ]*'" Case 9 myStr = "'[ラ-ロ]*'" Case 10 myStr = "'[ワ-ン]*'" Case 11 myStr = "" End Select If myStr = "" Then Me.RecordSource = "MT_取引先" Else Me.RecordSource = "SELECT * FROM MT_取引先" _ & " WHERE カナ Like " & myStr & " ORDER BY カナ;" End If End Sub
最強の選択フォーム 作成手順その5 レコードの転送にもコードを仕込む
Private Sub コマンド82_Click() Forms![F_発送入力]![届け先氏名] = Me.[届け先氏名] DoCmd.SelectObject acForm, "F_発送入力" End Sub
このフォームを起動しなしとエラーになりますので、注意してください。
豆知識
フォーム上で、データの書換を禁止する場合は、スナップショットを選択しましょう。
ここがポイント
ここがポイント
コンボボックスで、選択項目がたくさん表示されると、正直イヤになります。その場面で、威力を発揮するのが、今回の選択フォームです。これも本当に便利です。
まとめ
今回のまとめ
結構上から目線で上司言われましたが、これがサラリーマンと我慢した阿久 世子男(アク セスオ)なのでした。
今回のサンプルファイルは、No113です。
毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。