次のコードで迷ってます。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 転記について 2 2023/02/28 08:34
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript WordPressのコンタクトフォーム7にて送信者の位置情報を送らせたい 2 2022/09/14 23:28
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
6
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
7
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
8
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
9
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
10
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
11
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
12
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
13
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
14
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
15
エクセルVBAでパスの¥マークについて
Access(アクセス)
-
16
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
17
【Access】Dcount関数の複数条件で順位を付ける方法について
Access(アクセス)
-
18
ACCESSでコントロールソースの変更
Access(アクセス)
-
19
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
-
20
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
Msgboxの×が押されたとき
-
Left関数とRight関数を合わせた...
-
同一セル内に関数と文字列を同...
-
Excelで3E8を3.00E+8にしない方...
-
変数内に入った文字列の結合 UWSC
-
エクセルで文字列をtxtファイル...
-
MS SQLServer のSQLで文字列の...
-
CSV書込みの際、カンマで位置が...
-
テキストエディタで複数行にわ...
-
excel vba 17桁の数字が表示で...
-
vlookup関数 文字列と数値は別...
-
エクセルで文字列の最大値を抽...
-
[大学数学 形式言語]回文を受理...
-
OnTime 使用時のプロシージャへ...
-
16進数を10進数に簡単に変換す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Msgboxの×が押されたとき
-
Excelはなんで先頭の0を消すん...
-
16進数を10進数に簡単に変換す...
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
おすすめ情報