• 締切済み

No.836の質問をもう一度します。

No.836の質問はどうも、かなり分かりずらい説明でした。 私がわからないことは以下の通りですので、整理します。 1.今、フォームForm1上にコンボボックスCombo1があります。 Combo1を開いたとき、 横浜市 |●●町 |×× ・・・(1) 北九州市|▲▲▲村|■■ ・・・(2) ・・・・・・ というように、複数の列で表れ、例えば(2)を選択したときに、テーブル(Accessなど)のフィールドAに北九州市、Bに▲▲▲村、Cに■■を保存することは出来るのでしょうか? 2.さらに下のようなテキストファイルがあり、 横浜市,●●町,××  ひなた市,▲▲▲村,■■ ・・・・・ Form1を開くと、自動的にCombo1のリストが 横浜市 |●●町 |××  北九州市|▲▲▲村|■■  ・・・・・・ と、以前のリストを上書きすることが出来るでしょうか? よろしくお願いします。 関連URL : http://www.okweb.ne.jp/kotaeru.php3?qid=211084

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 もし支障がなければ、Accessで作成してはどうですか。 Accessなら、コンボボックスが複数列指定出来ますし、コンボのRowSourceにテーブルを指定出来ます。 2.についても、Form1の読込み時(Loadイベント)などで、テキストファイルをインポートして、テーブルを更新すれば、自動的にコンボの内容も更新されます。 どうしても、VBでないとダメということなら、No.1の方の言うようにグリッドコントロールなどを使ってそれらしく作るしかないですね。 では。

takamana
質問者

お礼

ありがとうございました!

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

1について。 Comboに複数列の設定はできないんじゃないでしょうか。 グリッドコントロールを使用して、データを列ごとに格納することになる かと思います。 その上で、 >(2)を選択したときに、テーブル(Accessなど)のフィールドAに北九州市、 >Bに▲▲▲村、Cに■■を保存することは出来るのでしょうか? データベースと接続して、SQLを発行すれば保存できます。 何かしら用意されたAPI関数等を使用して格納することはできません。 2について。 >リストを上書きすることが出来るでしょうか? Combo1コントロールのclearメソッドを実行して、 新しいデータをロードすることになります。 でも >Form1を開くと、自動的にCombo1のリストが >横浜市 |●●町 |××  >北九州市|▲▲▲村|■■  とはならないです。

takamana
質問者

お礼

ありがとうございました!複数列が出来ないのは残念ですが、他の方法を考えてみます。

関連するQ&A

  • フォームのコンボボックスのチェンジイベントがエラー

    フォームのコンボボックスのチェンジイベントがエラーになってしまいます フォームのコンボボックスで値が変更するたびに コンボックスのリストを絞り込むようにしたいので フィールド1 1111 1112 1113 1211 1212 フォーム1を作成しコンボボックスを設置し 値集合ソースを SELECT テーブル1.フィールド1 FROM テーブル1 WHERE (((テーブル1.フィールド1) Like "*" & [テーブル1]![フィールド1] & "*")); として コンボボックスの変更時イベントに Private Sub コンボ0_Change() Form_フォーム1.コンボ0.Requery End Sub としました。 そしてこのコンボボックスに 「2」というように値を入力すると 「実行時エラー '2118' "Requery/再クエリ"アクションを実行する前に、カレンとフィールドを保存する必要があります。」 となってしまいます。 やりたいことは コンボボックスに「2」を入力すれば テーブル1の「2」が含まれるものが抽出され 1112 1211 1212 がコンボボックスの ▼マークをクリックした後のリストに表示されるようにしたいのですが どうすればいいでしょうか? よろしくお願いします。

  • コンボボックスの値リストをクエリーでも表示する方法?教えて

    フォームにコンボボックスを作ったのですが、コンボボックスの値リストを表示するフィールドをクエリのフィールドでもリストを表示選択できるようにする方法を教えていただけませんか?

  • 年を条件にデータを抽出するには?

    フィールド1 2012/01/01 2012/01/02 2011/01/01 2011/01/02 2010/01/01 2010/01/02 と言うデータがあり、それをもとに表形式でフォームを作りました。 フォームヘッダーにコンボボックス(名前:コンボ3)を作り、 値集合タイプ:値リスト 値集合ソース:"2012";"2011";"2010" にしました。 コンボボックスのAfterUpdateイベントでコンボ3に表示されている値を年を抽出したいのですが vbaでどうやればいいのでしょうか? クエリは作りません。 Private Sub コンボ3_AfterUpdate() Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "# And #" & Me.コンボ3.Value & "#" & "'" Me.Form.FilterOn = True End Sub や Private Sub コンボ3_AfterUpdate() Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "/01/01" & "# And #" & Me.コンボ3.Value & "/12/31" & "#" & "'" Me.Form.FilterOn = True End Sub にすると 実行時エラー クエリ式 <式> の <メッセージ> (エラー 3075) 入力した式が、メッセージに示されている原因によって無効です。フィールド名と区切り記号を正しく入力していることを確認してから、もう一度実行してください。 となってしまいます。 2010/01/01と2010/01/02を抽出させたいです。 ご回答よろしくお願いします。

  • アクセスで3つのフィルターを連携させたい

    3つのコンボックスがあります Combo1 → 都道府県 Combo2 → 市区 Combo3 → 町村 都道府県と市区までは正常にフィルター出来るのですが、町村を選ぶと都道府県や市区も 同じ町村の名前のデータを引っ張ってきてしまいます。 ボタンを付けることも考えましたが、VBAの能力があまりないので、失敗ばかりしています。 良い知恵を教えて頂けないでしょうか。 Private Sub Combo1_AfterUpdate() Dim Strkubun As String Strkubun = Me.Combo1 Me.Filter = "[都道府県]= '" & Strkubun & "'" Me.FilterOn = True Me.Requery End Sub Private Sub Combo2_AfterUpdate() Dim Strkubun As String Strkubun = Me.Combo2 Me.Filter = "[市区]= '" & Strkubun & "'" Me.FilterOn = True Me.Requery End Sub Private Sub Combo3_AfterUpdate() Dim Strkubun As String Strkubun = Me.Combo3 Me.Filter = "[町村]= '" & Strkubun & "'" Me.FilterOn = True Me.Refresh End Sub

  • Access vba 教えてください。 初心者です

    以下のような テーブルT_ソフトリスト、テーブルT_ソフト フォームF_入力 があったときに、フォームの使用者のコンボボックスに入力をしたときに、 T_ソフトから使用者を探して、ソフトリストIDを取得し、そのソフトリストIDを元にT_ソフトソフトのソフト名をフォームのコンボボックスに表示させるようにしたいのですが、 どの様なソースコードを書けばよいでしょうか? 「T_ソフトリスト」←テーブル ================================== ID  | ソフト名 | ────────────── 1   | A |  2  | B |  3  | C |  4  | D |  5  | E |  ================================== 「T_ソフト」←テーブル ================================== ID |ソフトリストID | 使用者 | ─────────────────── 1 |  4     | 佐藤  | 2 |  2     | 鈴木  | 3 |  5     | 斉藤  | 4 |  1     | 佐藤  | 5 |  3     | 田中  | ================================== 「F_入力」←フォーム ================================== 使用者  [コンボボックス]←Combo_UserType ソフト名 [コンボボックス]←Combo_User ==================================

  • コンボボックスのリストに、テキストファイルを取り込む方法は?

    こんにちは。初めて質問します。 実は昨日からVisualBasicを購入して、データベースに取り組んでいます。 ところで、コンボボックスのリストに、テキストファイルのデータを随時取り込む方法はあるんでしょうか? 例、C:\町名.txt ●●市,▲▲町, ××市,××村,

  • オートナンバー型はフィルタはかけられないのですか?

    ●テーブル1 フィールド1/テキスト型(主キー) フィールド1 20130128ダイエー ●テーブル2 ID/オートナンバー型(主キー) テーブル1の主キー/テキスト型 内容/テキスト型 ID   テーブル1の主キー   内容 1   20130128ダイエー   牛乳 2   20130128ダイエー   鶏肉 ●クエリ1 SELECT テーブル1.*, テーブル2.* FROM テーブル1 INNER JOIN テーブル2 ON テーブル1.フィールド1 = テーブル2.テーブル1の主キー; ●フォーム1 そのなかにクエリ1に紐づいたサブフォームを設置(データシートビュー) フォーム1にコンボボックスを設置して、 Private Sub コンボ1_AfterUpdate() With Me.Controls("クエリ1").Form .Filter = "ID = '" & Me.コンボ1.Value & "'" .FilterOn = True End With End Sub このような構成なのですが フィルタを掛けようとすると、 実行時エラーで 抽出条件でデータ型が一致しません。(エラー 3464) となってしまいます。 これはフィルタを掛けようとしているデータ型がオートナンバー型だからでしょうか?

  • Access2000でテーブル内のフィールド値を全部読み取ってフォームのコンボボックスにリストとして取り込めるか

    こんにちは Access2000でテーブル内のフィールド値を全部読み取ってフォームのコンボボックスにリストとして取り込めるでしょうか。 フィールドの値は数値で、数値の範囲は変動します。

  • Excel ユーザーフォームのコンボボックスについて

    始めまして、マクロに関してはまだまだ勉強中なのですが、ユーザーフォームのコンボボックスについてつまづいてしまい、皆さんにご教授頂ければと思います。 一つユーザーフォームを作成後、そのフォーム内にコンボボックスを配置し、リストから項目を選択できるようにしたいと考え下記のように記述したのですが、ユーザーフォームを実行してもフォームは表示されてきますが、ボックスを選択してもリストに項目が表示されてきません。 Private Sub cmd入力_Click() End Sub Private Sub 選択グループCombo_Change() With 選択グループCombo .AddItem "初級" .AddItem "中級" .AddItem "上級" Private Sub cmd閉じる_Click() Unload Me End Sub この記述自体が間違っているのでしょうか。 宜しくお願いします。

  • アクセス チェックボックスとクエリ

    いつもお世話になっております。アクセス初心者です。 あるフォームのチェックボックスのオンオフとコンボボックス、 クエリの選択条件が思うように連携できなくて困っています。 やりたいことは、、、フォームのチェックボックスが、 ON(True)ならば、 フィールドにコンボボックスのキーワードを含むレコードおよびフィールドが空白のレコードを抽出し、 OFF(False)ならば、 フィールドにコンボボックスのキーワードを含むレコードのみでフィールドが空白のレコードは抽出しない、 としたいのですが…。 IIfやSwitchで式を書きましたが、チェックを入れても外しても、どちらも抽出件数が0件になります。 クエリの実行は、コマンドボタンで別のフォームを開いています。 (IIfでは、エラーが出ているのか、チェックを入れた時『~キャンセルされました』と出ます。  IIf(…,…,IIf(…,…,…)) という感じで書きました。) Switchの時のクエリの抽出条件の式は、次のような感じです。 Switch([Form]![チェックボックス]=True,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*" Or Is Null,[Form]![チェックボックス]=False,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*") ( Like の前の『([テーブル名].[フィールド名])』は、式をビルドすると、勝手に追加されてきます。) このようなことはできないのでしょうか? 別の方法が必要でしょうか? すみませんが、教えてください。宜しくお願い致します。