• ベストアンサー

Accessの入力について

 Access勉強中のものです。 Accessでテキストなどのフィールドで入力するとき、 グーグルの検索ボックスのように履歴(▼のボタン)が出るようにするにはどうしたらいいのでしょうか?ヘルプなどを調べてもよくわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

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

acorn407
質問者

お礼

 丁寧な回答ありがとうございます。 まったくの初心者なので、こんなに難しい(?)とは思いませんでした。 2番までは出来たのですが、3番からわからなくなってしまいました。 Private Sub 参照_Exit(Cancel As Integer)     DoCmd.SetWarnings False     DoCmd.RunSQL ("Insert Into T履歴(参照名) select [参照]")     DoCmd.SetWarnings True   End Sub の部分をどこかに貼り付けると思うのですが、よくわかりません。 また、時間があるときにでも補足していただけると助かります。 よろしくお願いします。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

2番までは出来たのですが、 此処までで 1、T履歴を開いて、履歴内容を数件登録 2、フォームを開いてコンボボックスがプルダウンリストが   表示されるか試して下さい   このボックスは手入力または選択入力可能ならば一段落ですね   ただ手入力したものはT履歴に反映されません では3に進みます  [フォームをデザインビューで開く]  →[コンポボックス]→[イベント]→[フォーカス喪失時]→[右端のボタン]    ・ここで添付のコンポボックス(参照)プロパティー設定画面が表示されます    ・表示されないときはファイルリボンのツール後ループ内のプロパティー  →[コードビルダー]→[OK]  これでコーディング画面になり下のように表示されます。    Private Sub 参照_Exit(Cancel As Integer)    End Sub   [Private Sub]~[End Sub]をカレントプロセジュアーと呼びます   この[~]にコンポボックスのフォーカス喪失時の処理を記述します

acorn407
質問者

お礼

 すごく丁寧に説明してくれてありがとうございます! 図と簡潔な文章でわかりやすかったです。 まだ、エラーがでる場合がありますが、自分でいろいろと試してみます。 何よりも勉強になりました。 また、わからないことがあったらよろしくお願いします。

関連するQ&A

  • accessのフォーム上からブラウザの検索

    Access2000のフォーム上のテキストボックスに文字を入れて、横に配置したボタンを押すと、ブラウザが立ち上がってテキストボックスに入力した文字でgoogleの検索ができるような仕組みを作りたいと思っているのですが、可能でしょうか?

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Access クエリについて

    初めまして。Accessのクエリについての質問です。 Access2003です。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件に[forms]![フォーム名]![テキストボックス名]を入れています。 今は2つのテキストボックス両方に言葉を入力するとデータが抽出されますが、これを1つのテキストボックスだけ入力でもデータが抽出されるようにしたいのですが可能ですか?今は一つのテキストボックスに言葉を入力しもう一つを空欄にすると何もデータが出てこない状態です。 2つのテキストボックスをテキスト(1)とテキスト(2)とすると 以下のようにデータを抽出したいです。 ・テキスト(1)とテキスト(2)に入力 →両方の言葉が一致したデータ ・テキスト(1)だけに入力  →テキスト(1)の言葉だけ一致したデータ ・テキスト(2)だけに入力  →テキスト(2)の言葉だけ一致したデータ 初歩的な質問でしたら申し訳ないです。どうかお願いします。

  • アクセス2000の使い方についての質問

    アクセス2000の使い方について2つ質問があります。だれか教えて下さい。 1.フォーム上に2つのテキストボックスを配置し、一方のテキストボックスに全角で入力した文字を、ボタンを押したら、他方のテキストボックスに半角で返すようにしたいのですが、どのようにすればいいでしょうか? 2.データが格納されているフォルダのフルパスを入力するためのフィールドを作成し、例えば、「d:\db\data\」のように入力するようにしてあるのですが、このフィールドに初心者でもフォルダのフルパスを入力できるようにしたいのですが、ボタンを押すと、フォルダを指定するダイアログボックスを表示させ、そのダイアログボックスでフォルダを選択させるようにすることはできないでしょうか? 教えてください。

  • ACCESSで入力時間を計る

    よろしくお願い致します。 ACCESS2000で入力フォームを作っています。いくつかのテキストボックスがあり、テーブルには全てVBAで登録をするので、ボタンをクリックすると登録できるように作りました。 そこで、一番最初に入力するテキストボックスに文字が入力されてから、ボタンをクリックするまでの時間を計測したいのですが、上手くいきません。 何か良い方法はありますでしょうか? よろしく、お願いいたします。

  • Access2010 テキストの連結

    よろしくお願いします。 Access2010を使用しております。 非連結のフォームに入力した情報を、 保存ボタンで、テーブルに追加しております。 そこで、サブフォームにある複数のテキストボックスをボックス毎に改行して、 一つのフィールドに入れたいと思っております。 一つ一つのテキストボックスは別テーブルを作っておりますが、メインにしているテーブルには、一つのフィールドに入れたいのです。 txt箱1、txt箱2、…txt箱20の空白ではないテキストボックスを改行して、一つのフィールドに追加したいです。 テキストボックスが、ランダムに記入されていたり、空白が間にあると、 うまく一つのフィールドに入れることができません。 改行が何個も入った箇所ができてしまいます。 間に空白があっても、改行を綺麗に入れて、 一つのフィールドに入力させるには、どうしたらよろしいでしょうか。 お世話になりますが、よろしくお願いします。

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • ADODCを使ったアクセスへの検索の仕方

     こんにちは。いつもお世話になっています。早速ですが、今、VBを勉強中なのですが、  ADODC(adoFind)を使って  datagrid(dgdFind)に  Microsoft Accessのデータを表示し、  テキストボックス(txtFind)と  コマンドボタン( cmdFind)を  それぞれ一つずつ用意し、そのテキストボックスに入力したものをアクセスデータの中から検索して出したいと思っています。(つまりは検索ボタンを作りたいのです。)  検索後のフォーカスは、アクセスのセル内で結構です。  また、何か違うコントロールや、オブジェクトを使っても一向に構わないと思っています。  ちなみにアクセスの表示の方法や、その他コントロールの作り方などはわかっています。ただ、上の検索ボタン(cmdFind)のコード(ここが一番重要なのに。)の書き方がわかりません。  どなたか書き方のわかる方いらっしゃいましたら、どうか教えてください。お願いします。

  • コンボボックスでデータ入力

    Access 2000 フォームにコンボボックスとテキストボックスを配置しています。 コンボボックスには種別[A][B][C]を選択できるようにし、 テキストボックスには納期日の「年」「月」「日」の3つのテキストボックスを 配置しました。 「種別」「納期日」を入力後、実行ボタンをクリックすると テーブル「T_商品」の種別フィールド、納期日フィールドに NULL値のフィールドに一括でデータを入力したいと考えております。 どのようにすればいいのでしょうかよろしくお願いします。

  • Access VBA 他アプリケーション

    Accessのフォームから他アプリケーションを起動するボタンをつくります。 起動したアプリケーションの入力フォームへ、Accessのフォームのテキストボックスの内容を書き込む事はできないでしょうか? 例えば、Accessのフォームに『OKWave』と入力されたテキストボックスと、ブラウザが開くボタンが配置されているとします。ボタンをクリックするとブラウザが起動し、起動したら任意の検索サイトが表示され、そのサイトのフォームに、Accessのフォームのテキストボックスにかかれている、『OKWave』が自動的に入力するようなVBAを書きたいと思います。 よろしくお願いします。

専門家に質問してみよう