• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessのDebug.Printで…)

AccessのDebug.Printで値の置換がうまくいかない

このQ&Aのポイント
  • AccessのDebug.Printを使用して、テーブルの値を置換しようとしていますが、うまくいきません。
  • 値の置換には数値が正しく反映される一方、テーブルの値が変わりません。
  • この問題は、テーブルに多くの値があり、個別に置換することが難しいから起こる可能性があります。

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

  • ベストアンサー
回答No.2

#1のものです。 直接テーブルの値を参照したいわけではなく ここで作ったcondValueの文字列を レコードの検索・抽出条件として使用しているという事ですよね? それならばプログラムの書き方も、Debug.Printで表示される内容も 特に問題はないと思われますよ。 後は何が不安なのか良く分かりませんが 「検索条件とはこのように書くものだ」と理解して頂くしかなさそうですね(^^; 検索条件の基本的な形は  テーブル名.フィールド名 = 比較する値(もしくは参照式) というものです。 具体的な値と比較したいのであれば  テーブルA.フィールド1 = 10 フォーム上の値などと比較したいのであれば  テーブルA.フィールド1 = Forms!フォーム1!テキスト1 などと書くことになります。 最初の質問を拝見して 「Me!Value_1, Me!Value_2の部分はプログラムにより数値に置き換わるのに  テーブル名のところが数値に変わらないのはなぜ?」 という事を尋ねているかと思いましたので。

w-inty
質問者

お礼

回答ありがとうございました。 普段Debug.Printをあまり使わないもので、エラーになり不安になって、debug.printをやったところ変わるところと 変わらないところができて、不安になって質問させていただきました(^^; 問題なさそうですので、やはり別のところに問題があるですね。 別に質問をしようと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

まず一番基本的な事として、AccessなどのVBAでは ダブルクォーテーション( " )で挟まれたものはすべて 「ただの文字列」と見なされます。 例えばイミディエイトウィンドウで  Debug.Print Chr(65) と打ち込んで実行すると  A という値が表示されます(Chrは渡された数字に対応する文字を返す関数) でも  Debug.Print "Chr(65)" と打ち込むと、表示されるのは  Chr(65) になります(" "で括られているので文字列と見なされる) 質問の書き方だと "(Val(Mid(T_テーブル.値,9)) between " の部分が「画面に打ち込んだ通りのただの文字」と判断されてしまい 関数名やテーブル名とは見なされないわけです。 そして、単純に テーブル名.項目名 と打ち込んだだけでは テーブルの中のデータを見に行く事はできません。 Dlookup関数などを使ってみてはいかがでしょうか? Helpで調べてみてください。

w-inty
質問者

お礼

回答ありがとうございます。 すいません、書き方が悪かったですね。 作業してるのは書いた2行だけではなく、検索をボタンによって、行っているんです。 その中の一部(この2行)を書いたのです。 今まで他のところで""を使っているので、これはこれで多分あってるとは思うのですが…

すると、全ての回答が全文表示されます。

関連するQ&A