テキストボックスによりリストボックスの内容を変える

このQ&Aのポイント
  • Accessのフォームで顧客管理画面を作成し、テキストボックスによりリストボックスの内容を変えたいです。
  • ボタン【日本】【アメリカ】【イギリス】を作成し、それぞれのボタンをクリックすると、テキストボックス1が【日本】【アメリカ】【イギリス】と内容が変化するようにしたいです。
  • また、テキストボックス1の値に応じて「新規登録」ボタンをクリックすると、コンボボックス1に該当する国名が表示されるようにしたいです。
回答を見る
  • ベストアンサー

テキストボックスによりリストボックスの内容を変える

Accessのフォームで顧客管理画面を作成しています。 ボタン【日本】【アメリカ】【イギリス】を作成し、 それぞれのボタンをクリックすると、テキストボックス1が 【日本】【アメリカ】【イギリス】 と内容が変化するように作成しました。 また別に「新規登録」ボタンと「国名」コンボボックス1を配置しました。 テキストボックス1が”日本”の時に「新規登録」ボタンをクリックすると コンボボックス1が”日本"と、 テキストボックス1が”アメリカ”の時に「新規登録」ボタンをクリックすると コンボボックス1が”アメリカ"と表示されるようにしたいです。 どのようにコードを書けばいいでしょうか? ちなみに新規登録のコードは以下です。 On Error GoTo Err_c新規登録_Click DoCmd.GoToRecord , , acNewRec Exit_c新規登録_Click: Exit Sub Err_c新規登録_Click: MsgBox Err.Description Resume Exit_c新規登録_Click ご教授お願いいたします!

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

コンボボックスにどのようにデータが設定 してあるのか不明ですが、一応、コンボボックスの 「値集合タイプ」が「値リスト」、「値集合ソース」に 「"日本";"アメリカ";"イギリス"」のように設定 してあるものとします。このあたりが違っていたら 補足してください。 >DoCmd.GoToRecord , , acNewRec があるのがよくわからないのですが・・・ フォームにレコードソースにテーブルが設定されているのですかね。 とりあえず、以下のように設定してみてください。 'これを変数の宣言に追加 Dim i As Long On Error GoTo Err_c新規登録_Click DoCmd.GoToRecord , , acNewRec '##### ここから #### For i = 0 To Me!コンボボックス1.ListCount - 1   If Me!コンボボックス1.ItemData(i) = Me!テキストボックス1 Then     Me!コンボボックス1.Value = Me!コンボボックス1.ItemData(i)     Exit For   End If Next i '##### ここまで追加 ##### Exit_c新規登録_Click: Exit Sub Err_c新規登録_Click: MsgBox Err.Description Resume Exit_c新規登録_Click これは、テキストボックスのデータとコンボボックスに 設定してあるデータが同じならばそれを表示、コンボボックスの データになければ何も表示しない、というようになっています。 たとえば、テキストボックス1に「カナダ」といれても何も表示されません。

masunona
質問者

お礼

つたない質問でありながら丁寧にお教えいただきありがとうございました! いただいたコードを書いてみたところ理想の動作ができました!大変うれしいです! ありがとうございました!

関連するQ&A

  • access 検索用フォームにてコンボボックスで何も選ばなかったときに全件表示させる方法

    access2003において、 検索用のフォームを作成し、コンボボックスにて検索内容を選択し、 決定ボタンにて他のフォーム画面へ検索結果を表示するようにしています。 この際、検索用フォームには複数のコンボボックスを用いてますが、 そのうちいくつかのコンボボックスを選択せずに決定ボタンを押した際に選択していないコンボボックスの内容については全件表示させたいと考えております。 例)コンボA=会社 コンボB=支店 コンボC=社員 コンボAのみ特定の会社を選択し、コンボB、コンボCは未選択だった場合、コンボAで選択した会社の支店・社員を全件表示したいのです。 お知恵をお貸し下さい。 以下VBAのソースです Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F_検索" stLinkCriteria = "[会社CD]=" & Me![会社] & "And [支店CD]=" & Me![支店] & "And [社員CD]=" & Me![社員] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

  • テキストボックスが未入力のときメッセージを表示したい

    テキストボックスが未入力のときコマンドボタンを押下したらメッセージを表示させるようにしたいんですができません。 教えてください。 (1)テキストボックスを作成。(txt_入力) (2)コマンドボタンを作成。 下記のようにコードを記述。 Private Sub コマンド45_Click() On Error GoTo Err_コマンド45_Click If Me![txt_入力] = "" Then MsgBox "データをいれろ" End If 以下省略 ""をNULLにしても出来ません。お願いします。

  • Access2000でリスト指定の印刷

    現在Access2000で顧客管理のデータベースを作成しています。 指定したレコードだけを印刷する、指定レコード印刷フォームを作成しようと思い、フォームにリストボックスを貼り付け、そのフォームに印刷ボタンを作成しました。 その、印刷ボタンのプロパティ(クリック時)のイベント設定は、次のように設定したのですが、うまく動きません。 Private Sub 印刷ボタン_Click() On Error GoTo Err_印刷ボタン_Click Dim stDocName As String Me.Visible = False stDocName = "kokyaku_report" DoCmd.OpenReport stDocName, acNormal, , "id = " & id Exit_印刷ボタン_Click: Exit Sub Err_印刷ボタン_Click: MsgBox Err.Description Resume Exit_印刷ボタン_Click End Sub ちなみに、テーブルの主キーは「id」としております。 申し訳ありませんが、お分かりの方がいらっしゃったら宜しくお願い致します。

  • サブフォームのテキストボックスにフォーカスを戻す

    Access2010です。 メインフォームにいくつかのテキストボックスやコンボボックスと「登録」ボタンがあり、メインフォームの中には帳票形式のサブフォームがあります。 サブフォームには ・数量 ・単価 ・金額 のテキストボックスがあります。 フォーカスがサブフォームのいずれかのテキストボックスにある状態で、「登録」ボタンをクリックするとYES/NOボタンがある確認画面が表示されます。 そこでNOを選択した場合に、直前までフォーカスがあったサブフォームのテキストボックスへフォーカスを戻すにはどうしたら良いでしょうか?

  • テキストボックスからコンボボックスへ自動入力したい

    AccessVBA初心者です。 Access2003を使用しています。 formAフォーム上の非連結textBテキストボックスに英字を入力 して、exe実行ボタンをクリックしたら、Cテーブルに連結した cmbCコンボボックスに該当文字列を表示したいです。 Private Sub exe_Click() If Me.textB.Value = "A" Then Me.cmbC.Value = 1 Else Me.cmbC.Value = 2 End If End Sub 実行ボタンをクリックしても、コンボボックスの内容は変わり ません。 if文にブレークポイントを設定してステップインで一行ずつ実 行するとコンボボックスに数字にあった文字列が表示できます。 うまく表示できるように、よろしくお願い致します。

  • テキストボックスに入力すると、コンボボックスが出現する

    いつもお世話になっています。 ExcelVBAについてなのですが、あるシート上にテキストボックスを作っておきます。 で、それに何か語句が入力されたら、テキストボックスの右にコンボボックスが出現するというのを作りたいのです。 そのコンボボックスで何かが選ばれたら、更にその下にテキストボックスが現れるというのが理想です。 並び順は テキストボックス1   コンボボックス1 テキストボックス2   コンボボックス2 テキストボックス3   実行ボタン 最初にあるのは「テキストボックス1」と「実行ボタン」のみです。その他の4つは隠れています。 テキストボックス1→コンボボックス1→テキストボックス2→コンボボックス2→テキストボックス3の順で出現するのを作りたいのです。 そういうことって可能でしょうか? あらかじめ作っておき、各々のプライベートでvisibleでfalseにして作ったのですが、テキストで「入力したら」とか、コンボで「選んだら」というのができませんでした。 よろしければお知恵をお貸しください。よろしくお願いします。

  • Access テキストボックスとコンボボックス

    Access初心者で、勉強がてらデータ登録フォームを作成しています。 フォーム上にコンボボックスを設置し、 テーブルに保存されているデータを検索できるようにしたのち、 テキストボックスのコントロールソースには簡単に 「=[コンボボックス].[column](2)」としています。(それぞれの名前は仮称です) 後から、テキストボックスひとつで 「コンボボックスからの検索結果を表示させる」と 「テキスト入力も可能とする」 を共存させたいと思い始めたのですが、可能になりますでしょうか。 ただし「コンボボックスからの検索結果表示」をしたテキストボックスに対し、 その情報をフォーム上で書き換えたとしても、テーブル側のデータ書き換えは行いたくありません。 よろしくお願いいたします。

  • 効率の良いテキストボックスの検知について

    VB6の初心者です。質問させていただきます。 画面上に5つのテキストボックス(TEXT1、TEXT2、TEXT3、TEXT4、TEXT5)と 1つのコマンドボタン(Cmd_SAVE)があり、 画面上の5つのテキストボックスをすべて記入し、 コマンドボタンを押すと、登録確認のメッセージボックスが表示され、 OKボタンを押すと、サーバへ転送され、 画面上のテキストボックスにひとつでも空欄があると、どのテキストボックスが 空欄であるかを示すメッセージが表示される処理をさせています。 そこで質問なのですが、今、メッセージボックス、登録処理は出来るようになったのですが、 とても処理の効率が悪い、もっと空欄を確認するのにすっきりとしたコードはある、と知り合いに言われました。 おそらく、繰り返し等を用いると思うのですが、メッセージにそれぞれのオブジェクト名を代入するやり方がわかりません。 下記が今のコーディングです。 Private Sub Cmd_SAVE_Click()   If TEXT1.Text = "" Then      MsgBox "TEXT1が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT2.Text = "" Then      MsgBox "TEXT2が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT3.Text = "" Then      MsgBox "TEXT3が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT4.Text = "" Then      MsgBox "TEXT4が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT5.Text = "" Then       MsgBox "TEXT5が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If MsgBox("入力データを登録しますか?", vbOKCancel, "登録確認") = vbCancel Then     Exit Sub   End If   End If ~登録処理~ End Sub どのような書き方がきれいで、効率的なコーディングなのでしょうか? ご教示お願いします!

  • アクセスのイベント記述について。

    アクセスで登録ボタンをコントロールウィザードで作ったのですが、登録と同時にそのフォームを閉じるにはどうしたらよいでしょうか。現在の登録ボタンのイベント記述は下記のとおりです。よろしくお願いいたします。 Private Sub 登録_Click() On Error GoTo Err_登録_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_登録_Click: Exit Sub Err_登録_Click: MsgBox Err.Description Resume Exit_登録_Click End Sub

  • リストボックスの内容をテキストボックスに表示する。

    タイトルどおりなんですが、リストボックスの内容をテキストボックスに表示することが出来ません。 といっても、普通に表示することは出来たのですが、 今やっていることは、テキストボックスの中にある文章を表示しておいてカーソルがある部分にリストボックスの内容を表示する。。というものです。 (例) テキストボックスの中身が 「おはようございます。今日の天気はです。」 リストボックスの中身が 晴れ・曇り・雨 このとき「~天気は(ここにカーソルがある)です」 あるボタンを押すことで(ダブルクリックでもどちらでも良い) テキストボックスの内容が 「~天気は晴れ(リストボックスで選択したアイテム)です。」 と表示できるようにしたいのです。どうしても文末にしか表示することが出来ませんでした。長文で分かりづらい点が多々あると思いますが、 良い方法があれば教えてください。

専門家に質問してみよう