Access2003で、2種類のキーワードを取得するときに2つ目を動的にリストにしたいです。
http://okwave.jp/qa/q5912564.html こちらで解決した問題の続きになるのですが、
下のような構造で印刷できるようにはなりましたが、キーワード取得用フォームに
おいて、商品番号を選択した瞬間に、全てのサブテーブルの、その商品番号がもつ
日付Xを日付X入力コンボボックスでリストにできますでしょうか。
(実際にはサブテーブルは5個あります)
可能であるならばその方法を教えてください。よろしくお願いいたします。
【テーブル構造】
基本テーブルは、 商品番号、商品名 内容
サブ1テーブルは、 商品番号、日付A 日付X
サブ2テーブルは、 商品番号、日付B 日付X
------------------------------
【キーワード取得用フォーム】
[1]商品番号入力コンボボックス→商品番号「001」が選択されたとします
[2]日付X入力テキストボックス→日付「2010年6月5日」が選択されたとします
[送信ボタン]
------------------------------
【全体書類印刷用レポート】
---基本情報---
(商品番号001の基本情報)
001:シャープペンシル 斬新なデザインで芯が減らないシャーペン
---サブ情報---
(商品番号001で日付Xが2010年6月5日のサブ1テーブルの日付A例)
2010年2月10日
2010年3月3日
(商品番号001で日付Xが2010年6月5日のサブ2テーブルの日付B例)
2010年2月20日
2010年4月5日
------------------------------
No.4ベストアンサー
- 回答日時:
失礼しました。
私も読み間違えていた部分があるようです。
手順は以下です。設定の方法は同じですが、場所と
クエリの参照部分を変更します。
(1)
「商品番号入力コンボボックス」の設定は、できているものと
します。一応、「基本テーブル」を値集合ソースに選択し、
商品番号が「基本テーブル」の最初に設定されているなら、
列数1、列幅1cm、連結列1で設定。一応こちらの設定です。
seroteepuさんの環境にあわせてください。(3)でもう一度
設定が出てきます。
(2) クエリの作成
Q日付X:
SELECT サブ1テーブル.商品番号, サブ1テーブル.日付X
FROM サブ1テーブル
GROUP BY サブ1テーブル.商品番号, サブ1テーブル.日付X
HAVING (((サブ1テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![商品番号入力コンボボッ
クス]))
UNION
SELECT サブ2テーブル.商品番号, サブ2テーブル.日付X
FROM サブ2テーブル
GROUP BY サブ2テーブル.商品番号, サブ2テーブル.日付X
HAVING (((サブ2テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![商品番号入力コンボボッ
クス]))
UNION
SELECT サブ3テーブル.商品番号, サブ3テーブル.日付X
FROM サブ3テーブル
GROUP BY サブ3テーブル.商品番号, サブ3テーブル.日付X
HAVING (((サブ3テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![商品番号入力コンボボッ
クス]))
UNION
SELECT サブ4テーブル.商品番号, サブ4テーブル.日付X
FROM サブ4テーブル
GROUP BY サブ4テーブル.商品番号, サブ4テーブル.日付X
HAVING (((サブ4テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![商品番号入力コンボボッ
クス]))
UNION SELECT サブ5テーブル.商品番号, サブ5テーブル.日付X
FROM サブ5テーブル
GROUP BY サブ5テーブル.商品番号, サブ5テーブル.日付X
HAVING (((サブ5テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![商品番号入力コンボボッ
クス]));
(3) 商品番号入力コンボボックスの設定
「商品番号入力コンボボックス」のプロパティシートから
「商品番号入力コンボボックス」の更新後処理に、
Private Sub 商品番号入力コンボボックス_AfterUpdate()
Me!日付X入力テキストボックス.Requery
End Sub
になるように設定して保存してください。
(4) 日付X入力コンボボックスの設定
プロパティシートで、値集合ソースに「Q日付X」を設定します。
列数 2
列幅 0cm;2cm
連結列 2
を設定します。
以上で、変更の終了です。確認してみてください。
ありがとうございました。
できました。
物わかりが悪い上に、クエリでコンボボックスの名前を間違えておりましたためにできなかったようです。
感謝ですm(_ _)m。
この先まだ解けない問題がありそうな気がします。
その節もどうかよろしくお願いいたします。
どうもありがとうございました。
No.3
- 回答日時:
前回の続きということで、
(1) クエリの作成
以下のSQL文でクエリを作ります。テーブルが5個あるらしいので
5個のテーブルを取り込んでいます。状況に応じて変更してください。
クエリ名をQ日付Xとします。日付が重複する場合は一つにする
処理をしています。Q日付Xはユニオンクエリで、以下の長いSQL文は
一つのクエリです。エラーが出ないようにコピーし、新しい
クエリのSQLビューに貼り付け、保存してください。
Q日付X:
SELECT サブ1テーブル.商品番号, サブ1テーブル.日付X
FROM サブ1テーブル
GROUP BY サブ1テーブル.商品番号, サブ1テーブル.日付X
HAVING (((サブ1テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![日付X入力テキストボッ
クス]))
UNION
SELECT サブ2テーブル.商品番号, サブ2テーブル.日付X
FROM サブ2テーブル
GROUP BY サブ2テーブル.商品番号, サブ2テーブル.日付X
HAVING (((サブ2テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![日付X入力テキストボッ
クス]))
UNION
SELECT サブ3テーブル.商品番号, サブ3テーブル.日付X
FROM サブ3テーブル
GROUP BY サブ3テーブル.商品番号, サブ3テーブル.日付X
HAVING (((サブ3テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![日付X入力テキストボッ
クス]))
UNION
SELECT サブ4テーブル.商品番号, サブ4テーブル.日付X
FROM サブ4テーブル
GROUP BY サブ4テーブル.商品番号, サブ4テーブル.日付X
HAVING (((サブ4テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![日付X入力テキストボッ
クス]))
UNION SELECT サブ5テーブル.商品番号, サブ5テーブル.日付X
FROM サブ5テーブル
GROUP BY サブ5テーブル.商品番号, サブ5テーブル.日付X
HAVING (((サブ5テーブル.商品番号)=[Forms]![キーワード取得用フォーム]![日付X入力テキストボッ
クス]));
(2) コンボボックスの設定
コンボボックスのプロパティシートを開きます。
値集合ソースにQ日付Xを設定します。
列数を2にします。
列幅を 0cm;2cm にします。
列数を2にします。
保存します。
(3) テキストボックスの設定
テキストボックスのプロパティシートを開きます。
更新後処理の右端のところをクリックして
コードビルダを選択してクリックし、コード表を
開きます。
コード表が表示されると、
Private Sub 日付X入力テキストボックス_AfterUpdate()
End Sub
というコードが表示されます。その中に、
Me!商品番号入力コンボボックス.Requery
を入れます。
Private Sub 日付X入力テキストボックス_AfterUpdate()
Me!商品番号入力コンボボックス.Requery
End Sub
のようにします。
保存します。
以上で準備は終了です。
たぶん、大丈夫かなという感じですが。
アドバイスありがとうございます。m(_ _)m
やってみたのですが、うまくいきませんでした。その理由は、私の説明が間違っていたのだと思いました。
【キーワード取得用フォーム】
[1]商品番号入力コンボボックス→商品番号「001」が選択されたとします
[2]日付X入力テキストボックス→日付「2010年6月5日」が選択されたとします
[送信ボタン]
このように最初と同じように書いてしまいましたが、正しくは、
【キーワード取得用フォーム】
[1]商品番号入力コンボボックス→商品番号「001」が選択されたとします
[2]日付X入力コンボボックス→日付「2010年6月5日」が選択されたとします
[送信ボタン]
であり、商品番号を選択した瞬間に、全てのサブテーブルの、その商品番号がもつ日付Xを日付X入力コンボボックスでリストにしたいので、実際には「日付X入力テキストボックス」というものは存在しないのです。
知識がないために教えていただいたことの応用もできず恥ずかしいのですが、もう一度教えてください。
よろしくお願いいたします。
No.1
- 回答日時:
基本的にはできますが、テキストベースでは伝えにくいです。
VBAでコードを書く方法しかわかりませんので、それを
お伝えします。
まず、デザインビューでフォームを作り、コンボボックスの名称を
コンボ1:商品番号
コンボ2:日付A
コンボ3:日付B
とします。(実際は何でもいいです)
コンボ1を右クリックし、イベントのビルドで、
afterupdateイベントで、コンボ2のソースリストに
目的の日付が入るようにコードを書きます。
アドバイスありがとうございます。
AccessのVBAを使ったことがないので、どうすればよいのかわからないのです。
せっかくいただいたアドバイスですのに申し訳ありませんm(_ _)m。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- その他(ネットショッピング・通販・ECサイト) 11月1日に中国サイトで品物を購入しました私は何度もメールしていて4日に発送するとメールがあり5日の 6 2022/11/08 10:24
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- ヤフオク! 関税 詐欺でしょうか?ヤフオク 3 2023/06/25 11:22
- 迷惑メール・スパム 【JP POST】よりのショートメール 6 2023/04/22 16:03
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス 部分一致の抽出
-
2つのテーブルに共通するレコ...
-
ACCESS テーブルを見比...
-
Accessのリンクされたテーブル...
-
Acccessで2つのテーブルから1...
-
ACCESSでテーブルをコピーしよ...
-
ACCESSユニオンクエリから新テ...
-
Accessでリストの並び順を変更...
-
アクセスの更新クエリについて...
-
テーブルに表示されているもの...
-
accessのテーブルを閉じたとき...
-
アクセスのリストボックス内の...
-
アクセスでデータ型を一括変換...
-
ACCESS初心者 - 同一テーブルの...
-
accessについて(超初心者です)
-
外部MDBのリンクテーブルの...
-
最新日のデータのみ抽出するク...
-
AccessでのリンクテーブルとADO...
-
Accessでテーブルのリンクを範...
-
Access 2000、ユニオンクエリー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
Acccessで2つのテーブルから1...
-
テーブルに表示されているもの...
-
Accessでリストの並び順を変更...
-
Accessのリンクされたテーブル...
-
クエリで同一テーブルの複数回...
-
access vbaにてテンポラリーテ...
-
Accessのテーブルで、リンク?...
-
ACCESS テーブルを見比...
-
ACCESSユニオンクエリから新テ...
-
accessのテーブルを閉じたとき...
-
アクセス2016 チェックボックス...
-
アクセス 部分一致の抽出
-
Accessで使用しているリンクテ...
-
ACCESSのODBCリンクテーブルの...
-
アクセス2000でのリンク先...
-
Microsoft Access 「Form」のボ...
-
ACCESSでリンクテーブルのデー...
-
access2000・・テーブルをデー...
おすすめ情報