
次のコードで迷ってます。
InputBoxに入力した、都道府県と同一ものだけをレポートに表示させるものです。(ちなみにこのコードは正しく動きます。)
Private Sub コマンド2_Click()
Dim myStr As String
myStr = InputBox("抽出する都道府県は?")
DoCmd.OpenForm FormName:="顧客マスタ表形式フォーム", _
WhereCondition:="[都道府県]='" & myStr & "'"
End Sub
この、 "[都道府県]='" & myStr & "'" が理解できません。
(一番外の”は、WhereConditionの条件を示すのは分かります。)
ただ、'や&がなぜ必要で、このコード内ではどのような役割をしているのか分かりません。(’や&を消すとエラーになるので、この書き方が正解なのでしょうけど、理解できずに困っています。)
そもそも、データ型が文字列でも、変数には&のような文字列連結演算子が必要なのか?
なぜ、’が必要なのか?
No.2ベストアンサー
- 回答日時:
「一番外の"」というのが勘違いの元で、引用符は括弧と違って入れ
子にならないんです。だから"[都道府県]='" & myStr & "'"は、
「[都道府県]='」という文字列の後ろにmyStr変数の中身を繋げて、
さらに「'」という文字列を追加しましょう。
と読んでください。てなわけでmyStrに東京都を入力すると、
WhereConditionは [都道府県]='東京都' となります。
No.1
- 回答日時:
> データ型が文字列でも、変数には&のような文字列連結演算子が必要なのか?
データ型が文字列とか、「&」がどうとか、「’」がどうではなく、
どういうやり方であろうとも、「Accessが認識可能な(そして、貴方が望んでいる)SQL文」が作れればよいのです。
逆に言えば、「Accessが認識できない(又は、貴方が望んでいる)SQL文」を作っても無意味です。
例えばInputBoxで「東京都」と入力された場合、
> "[都道府県]='" & myStr & "'"
で作られるSQL文は、
"[都道府県]='東京都'"
となり、「カラム『都道府県』が文字列『東京都』と等しい」と言うSQL文になります。
#多分貴方の望んでいるものでしょう。
「'」が無い場合、例えば
> "[都道府県]=" & myStr & ""
とすると、作成されるSQL文は
"[都道府県]=東京都"
となり、「カラム『都道府県』がカラム『東京都』と等しい」と言う意味のSQL文になり、テーブルに『東京都』と言うカラムが無ければエラーになります。
#『東京都』と言うカラムがあれば、エラーにはならない(かも)しれませんが、
#多分貴方の望む結果ではないでしょうね。
「&」も同じ。&が無ければそもそも『東京都』と言う入力文字列を渡せません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
-
4
Access2010 「演算子がありません」エラー
その他(データベース)
-
5
2つ目のレコードの値を取得するには?
Access(アクセス)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
8
falseとtrue 0,1,-1 の意味が知りたいです
PowerPoint(パワーポイント)
-
9
iif関数で3つ以上条件を抽出したい場合
IT・エンジニアリング
-
10
「フォームを作成できませんでした」
Access(アクセス)
-
11
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
-
12
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
13
VBとアクセスでSQL文に変数を使いたいのですが
Visual Basic(VBA)
-
14
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
15
ACCESS2003 でクエリの抽出条件に変数を代入したい。
その他(データベース)
-
16
アクセスVBAのMe!と[ ]
Access(アクセス)
-
17
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
18
Null値を並べ替えで・・・
Access(アクセス)
-
19
Access サブフォームでの選択行の取得
その他(データベース)
-
20
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBの「As String * 128」とは?
-
エクセルでアルファベットか数...
-
同一セル内に関数と文字列を同...
-
VBAでの Replace関数で、ワイル...
-
CStringの文字列検索&抜き出し...
-
“丸(〇/○/◯)”に似た文字…
-
文字列からタブコードを取り除...
-
VBA2005 16進を2桁で表示したい。
-
VBscriptからバッチに変数を渡...
-
【C言語 再帰・メモ化】 C言語...
-
SQL の Update文(?) と ...
-
C言語の文字列の戻り値について...
-
EXCELで=より左の文字を一括で...
-
ACCESSのSQLでのカンマ’認識に...
-
変数内に入った文字列の結合 UWSC
-
Msgboxの×が押されたとき
-
aaa.bbb.ccc という、「ドット...
-
read()で読みこんだ文字列の比...
-
エクセル 数値データを桁をそ...
-
(エクセル)複数のセルの数値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
ORCLEでの小数の表示方法の変更...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
SQL の Update文(?) と ...
-
VBの「As String * 128」とは?
-
aaa.bbb.ccc という、「ドット...
-
同一セル内に関数と文字列を同...
おすすめ情報