プロが教えるわが家の防犯対策術!

毎度、お世話になります。
Access2000でMsgboxに、テーブル作成クエリーで抽出したレコード名を表示させたいのです。

テーブルAのBフィールドに入っているB'というレコードです。
おわかり頂けましたでしょうか?
最終的には
Msgbox(B' & "です。")としたいのですが・・・

よろしくお願いします。

A 回答 (4件)

データベースの構造をテキストで伝えるって


難しいですよね。お気になさらず。

例えば、一度テーブルAは無視して、
 [マスタテーブル]   [テーブルC]
  商品コード-----→商品コード
  商品名
こういうリレーションを作り、これそのものを
1つのクエリにしてみてください。
このクエリをフォームのレコードソースにして、
フォームの構造は前の解答と同様とします。
これでどうでしょう?

エクセル書き出し時は、以下のような感じで。

  DoCmd.OutputTo acOutputQuery, "クエリ名", acFormatXLS, , True

商品コードまで書き出されてしまうのが問題であれば、
クエリを入れ子にすれば大丈夫かと思います。

これだと、テーブルCにある全レコードに一致する
商品名が書き出されますが、もしこれが意図した動作と
違ったら、お手数ですがもう一度ご返信ください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
最後まで私の下手な説明に付き合ってくださってホント、涙ものです。これからも、ど素人級な質問をすると思いますがまたお付き合いお願いします。
ホント、助かりました。
まだまだ、日本も捨てたもんじゃないですね。
Thank you!です。

お礼日時:2003/08/05 19:17

こんにちは。



こんな感じでどうでしょうか?

Msgbox("商品名は[" & Dfirst("B","テーブルA") & "]です。")

テストしていないので何とも言えませんが・・・

ではでは・・・
    • good
    • 0
この回答へのお礼

ありがとうございました。できました。
でも、今回は最初から一生懸命付き合って頂いた
11n_kacieさんに20ポイントお渡ししたいと思います。
ホント、たすかりました。

お礼日時:2003/08/05 19:14

まだちょっと自信が無いので、解釈を間違ってたら


言ってください。

テーブルCを商品マスタ、テーブルAを商品に対する
何らかの履歴(例えば発注など)のような感じに
解釈しました。
リレーションは以下のようになっているかと思います。
 [テーブルC]     [テーブルA]
  商品コード-----→商品コード
  商品名

■対処法
フォーム上にテキストボックスを2つ用意して、
片方を商品コード、もう一方は商品名に連結して下さい。
入力可能にするのは商品コードの方のみです。
この時点で、商品コードを入力すると、
自動的に商品名も表示されるはずです。

ここまでで問題なければ、MsgBox表示のためには、
 1.商品名テキストボックスを非表示にする
 2.商品コードの更新時処理のコードにMsgBoxを書き込む
で問題ないと思います。

この回答への補足

何度もすいません。パソコン勉強する前に国語を勉強します。ペコリ・・・
リレーションは以下のようです。
「テーブルC」    「マスタテーブル」   「テーブルA」
商品コード----商品コード
           商品名-----→ 商品名

テーブルCとテーブルAは直接リレーションしてません。
Msgboxに表示させたいのは「テーブルA」に落ちた商品名です。最終的にはテーブルAをエクスポートしてエクセル形式にするのでその前にUserに商品名で確認させたいのですが・・・。
文章能力がなくてすいませんがもう一度、ご教授ください。お願いします。

補足日時:2003/08/05 18:00
    • good
    • 0

状況が把握しきれないので申し訳ありませんが……。


これは「テーブルAの、とある1件のレコードの、フィールドBの値を表示したい」ということでしょうか。
それと、その値を得る方法ですが、レコードセットオブジェクトを使って抽出したり、
そのフィールドに連結されたテキストボックスの値を持ってきたりといろいろ方法があると思います。
どれが適切かは場合によるので、どのような状況で表示させたいのか、もう少し詳しくご説明いただけるとありがたいです。

この回答への補足

説明不足でごめんなさい。
フォームに商品コード「123」を入力します。(ここではあくまでコード入力です。)このコード「123」をキーとしてテーブルC(このテーブルは大元のテーブルです。)から抽出を掛けます。できたテーブルがAです。コード「123」に対してはこのクエリー上でマスタテーブルとリレーションして商品名(例えば"鉛筆")をテーブルAに落とします。(これがフィールドBです。)フォーム上でコード入力をさせているので確認の為、商品名を表示させたいと考えています。なので、テーブルA内のフィールドB’の値はすべて同じです。これでわかっていただけましたでしょうか?
こんな初歩的な質問でごめんなさい。
よろしくお願いします。

補足日時:2003/08/05 16:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A