-PR-
解決済み

Access97のフォーム(リストボックス)について

  • すぐに回答を!
  • 質問No.17189
  • 閲覧数162
  • ありがとう数5
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 80% (4/5)

Access97のフォームについてです。リストボックスで複数選択設定した場合,その選択項目をテーブルに反映させる方法を教えて下さい。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル8

ベストアンサー率 23% (7/30)

以下のような方法はどうでしょうか?

フォーム「F_都道府県」と選択したデータを一時的に
格納するワークテーブル「W_選択都道府県」をまず用意。
※(都道府県のデータがあるテーブルとワークテーブル
  にはそれぞれ都道府県番号と都道府県名という
  項目があるものとする)
「F_都道府県」の中にデータの複数選択が可能な
リストボックス「選択」とコマンドボタン「実行」を
貼り付ける。

「実行_Click」に以下のような記述をする。

------
Dim frm As Form    'F_都道府県
Dim ctl As Control   'リストボックス
Dim varItm As Variant  '選択したデータ
Dim rec As Variant    'ワークテーブル

Set frm = Forms!F_都道府県
Set ctl = frm!選択
Set rec = CurrentDb.Openrecordset("W_選択都道府県")

  '選択したデータのインデックス番号を
  'ワークテーブルに格納する
For Each varItm In ctl.ItemsSelected
rec.AddNew
rec!都道府県番号 = Val(ctl.ItemData(varItm))
rec.Update
Next varItm

  'ワークテーブル内の都道府県番号と一致する
  '番号を持つデータを抽出するクエリを実行する
DoCmd.OpenQuery "クエリ1"
-----

ちょっとごちゃごちゃとしてしまいましたが、これで
一応リストボックスで選択した複数の都道府県データを
最終的にクエリーで表示することが出来ます。
ただ、これはワークテーブルを使わなければならないので
一回ずつワークテーブルのデータを初期化する処理なども
必要になるのが難点です。

最後に実行するクエリーの条件として直接選択したデータ
の情報が渡せれば一番スマートなんでしょうけど・・・
その方法はちょっとわかりませんでした。
どなたか分かる方、よろしくお願いします。
お礼コメント
fuyuko

お礼率 80% (4/5)

プログラムまで付けて頂いてありがとうございました。
皆様のご回答を参考にプログラミングさせていただきます。
投稿日時 - 0000-00-00 00:00:00
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

fuyukoさん、こんにちは。 「その選択項目をテーブルに反映させる」について、も少し詳しく、どのようなことがなさりたいのかを教えていただけますでしょうか? この文だと、あまりにあいまいすぎて(^^;; ...続きを読む
fuyukoさん、こんにちは。
「その選択項目をテーブルに反映させる」について、も少し詳しく、どのようなことがなさりたいのかを教えていただけますでしょうか?

この文だと、あまりにあいまいすぎて(^^;;
補足コメント
fuyuko

お礼率 80% (4/5)

お返事ありがとうございます。
確かに曖昧ですね。
「選択した複数の項目(都道府県名)をテーブルに落とす手段」
これでお分かり頂けますでしょうか?
最終的には,リストボックスで選んだ項目(複数)を元にデータを抽出させたいのです。(クエリーにて)
ですので,テーブルを使用せずに済む方法があるのでしたら,それでも良いのです。
宜しくお願いします。

 
投稿日時 - 2000-12-08 09:15:51


  • 回答No.3
レベル13

ベストアンサー率 46% (643/1383)

あー、はいはい。選択項目を一旦ワークテーブルに落として、リレーションを使ってデータを絞り込みたいと。 私もしばらく考えてみたんですが、tepapapaさんの#2のご回答でバッチリだと思います。 >最後に実行するクエリーの条件として直接選択したデータ >の情報が渡せれば一番スマートなんでしょうけど・・・ これについても少し考えてみたんですが、私の知識の範囲+10分程度の試 ...続きを読む
あー、はいはい。選択項目を一旦ワークテーブルに落として、リレーションを使ってデータを絞り込みたいと。

私もしばらく考えてみたんですが、tepapapaさんの#2のご回答でバッチリだと思います。

>最後に実行するクエリーの条件として直接選択したデータ
>の情報が渡せれば一番スマートなんでしょうけど・・・

これについても少し考えてみたんですが、私の知識の範囲+10分程度の試行錯誤では見つけることが出来ませんでした。

クエリ使わずに、VBA中でSQL組み立てる方式なら、可能なんですけどねぇ。(もし私が作るなら、多分そうする…)
お礼コメント
fuyuko

お礼率 80% (4/5)

グラフの件に引き続きご回答ありがとうございました。
ARCさんからのご指摘のお陰で複数の回答が頂けました。
ARCさんはAccessにかなりお詳しい様で心強い限りです。
本当にありがとうございました。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.4
レベル7

ベストアンサー率 10% (1/10)

僕も同じようなことで悩んだ者です。 VBAを使うのは普段エクセルで精一杯の僕などには小難しすぎるので、色々試行錯誤した結果が以下のとおりです。 まず、「顧客リスト」と「都道府県」というテーブルがあるとして、顧客リストと複数の都道府県を関連させたいとしますよね。 ここでもう1つ「テーブル1」を作り、その中に「顧客リストID」「都道府県ID」というフィールドを作成し(テーブル1の主キーもオートナンバ ...続きを読む
僕も同じようなことで悩んだ者です。
VBAを使うのは普段エクセルで精一杯の僕などには小難しすぎるので、色々試行錯誤した結果が以下のとおりです。

まず、「顧客リスト」と「都道府県」というテーブルがあるとして、顧客リストと複数の都道府県を関連させたいとしますよね。
ここでもう1つ「テーブル1」を作り、その中に「顧客リストID」「都道府県ID」というフィールドを作成し(テーブル1の主キーもオートナンバー型で作成しとく)、それぞれの主キーとリレーションをはるんです。
つまり、2つのテーブルの間にもう1つテーブルをはさむんです。
そして「顧客リスト」のフォームに、「テーブル1」のサブフォームを挿入したら、複数の都道府県が選択できて、テーブルには反映されませんが、クエリ等で活用する事ができるようになります。

いやしかし、文字で説明するのは難しいですね(^^ゞ
お礼コメント
fuyuko

お礼率 80% (4/5)

私もVBAは全くの素人でして・…今回に限ってはもうVBA以外の手段は無いであろうと思ってました。
ご回答ありがとうございました。
投稿日時 - 0000-00-00 00:00:00
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ