- コンパイルエラー
- 1
最新トピック
1
27 日前
排他制御 27 日前
2
1 ヶ月前
Hatena様にご質問 1 ヶ月前
6
4 ヶ月前
モジュールでカレントフォームのコントロールを使うには 4 ヶ月前
7
4 ヶ月前
日付のテキストボックスからフォームが開けません 4 ヶ月前
9
4 ヶ月前
レポートにおける数値の間隔を広げる方法 4 ヶ月前
12
4 ヶ月前
リストボックスから複数選択しそれをテーブルに格納したい 4 ヶ月前
タグリスト
Markdown テーブル生成
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
行連結文字
VBAは基本的に1行1命令です
行を続けて1命令とする場合には
_([スペース]+[アンダースコア])を最後の行を除いた各行の行末に記述しますStrSQL = "SELECT TOP 1 基4, 変位4, №" & _
"FROM T_01_地耐力"
"WHERE T_01地耐力.№ Between 1 And 9" &
"ORDER BY T_01_地耐力.変位4 DESC , T_01_地耐力.№ DESC;"
質問のコードでは1行目に続けて2行目までは1命令として処理されますが、3行目・4行目はそれぞれ独立した1命令と処理されるため不正なコードとしてコンパイルエラーになります
ついでにですが、そのまま質問のコードのような連結を行うとクエリとして実行できないSQL文になります
そのままVBAで連結された場合
SELECT TOP 1 基4, 変位4, №FROM T_01_地耐力WHERE T_01地耐力.№ Between 1 And 9ORDER BY T_01_地耐力.変位4 DESC , T_01_地耐力.№ DESC;
となります。VBAでは文字列に改行をそのまま入力することはできません
のように、改行を含んだ文字列とするためには改行を入れる部分に代替のコードを記述する必要があります。たとえば
vbNewLineを使いますhirotonがSQL文をVBAで作る場合は簡単なものであれば次のような記述にしたりします
・1行目は代入する文字を記述せず、
_で即座に終えます・2行目のSQLの開始行にも先頭に空白スペースを入れます
・改行コードは使いません
これで、目的のSQL文をそっくりそのまま使いつつ、VBA記述のルールから逸脱せず、ミスしにくい記述ができます