- ベストアンサー
Accessの入力について
Access勉強中のものです。 Accessでテキストなどのフィールドで入力するとき、 グーグルの検索ボックスのように履歴(▼のボタン)が出るようにするにはどうしたらいいのでしょうか?ヘルプなどを調べてもよくわかりません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1、フィールドが履歴名だけのテーブル(主キーなし) T履歴 重複なし、値要求:はい、空文字列の許可:いいえと設定します 2、フォーム上の [履歴のテキストボックスを右クリック]→[コントロールの種類の変更] →[コンボボックス]としこのコンボボックスのプロパティーの一部が右側です。 赤枠部分の修正または確認は右端クリックから選択か数値入力で進行出来ます 3、このコンボボックスは手入力またはプルダウンからの選択入力になりますが 手入力したときの履歴をT履歴に追加する処理のためBVA(プログラミング)が必要です ここでコーディングですが手入力か? 入力したが既にテーブルに保存されているか? 等で後の処理が分岐しますが、テーブルのフィールドのプロパティーで変なデータは 受け入れられませんので、乱暴ですが参照のフィールドを抜け出した時に追加登録 する処理だけで大丈夫です。 しかし、テーブルに書き込めないとき、書き込めるときの警告または確認の警告がでます この警告は大変煩わしいものです。 この警告を出なくするのが[DoCmd.SetWarnings False]です。 Private Sub 参照_Exit(Cancel As Integer) DoCmd.SetWarnings False DoCmd.RunSQL ("Insert Into T履歴(参照名) select [参照]") DoCmd.SetWarnings True End Sub
その他の回答 (1)
- chayamati
- ベストアンサー率41% (260/624)
2番までは出来たのですが、 此処までで 1、T履歴を開いて、履歴内容を数件登録 2、フォームを開いてコンボボックスがプルダウンリストが 表示されるか試して下さい このボックスは手入力または選択入力可能ならば一段落ですね ただ手入力したものはT履歴に反映されません では3に進みます [フォームをデザインビューで開く] →[コンポボックス]→[イベント]→[フォーカス喪失時]→[右端のボタン] ・ここで添付のコンポボックス(参照)プロパティー設定画面が表示されます ・表示されないときはファイルリボンのツール後ループ内のプロパティー →[コードビルダー]→[OK] これでコーディング画面になり下のように表示されます。 Private Sub 参照_Exit(Cancel As Integer) End Sub [Private Sub]~[End Sub]をカレントプロセジュアーと呼びます この[~]にコンポボックスのフォーカス喪失時の処理を記述します
お礼
すごく丁寧に説明してくれてありがとうございます! 図と簡潔な文章でわかりやすかったです。 まだ、エラーがでる場合がありますが、自分でいろいろと試してみます。 何よりも勉強になりました。 また、わからないことがあったらよろしくお願いします。
お礼
丁寧な回答ありがとうございます。 まったくの初心者なので、こんなに難しい(?)とは思いませんでした。 2番までは出来たのですが、3番からわからなくなってしまいました。 Private Sub 参照_Exit(Cancel As Integer) DoCmd.SetWarnings False DoCmd.RunSQL ("Insert Into T履歴(参照名) select [参照]") DoCmd.SetWarnings True End Sub の部分をどこかに貼り付けると思うのですが、よくわかりません。 また、時間があるときにでも補足していただけると助かります。 よろしくお願いします。