
VBA内でSQLを使って抽出後更新するというシンプルな処理に、
ココに注意
「抽出条件でデータ型が一致しません」
っとなって中々先に進めませんでした。
いつものように、カンマやダブルコーテーションの問題になるのですが、過去の備忘録にもない方法だったので追加備忘録です。
文字列か数値かで記述が違う
過去の備忘録から文字列か、数値かで書き方が違う事は知っていましたので、表示上は数値ですが、文字列フィールドになっていることは分かっていました。
-
参考複合機FAX【シャープMX-2630FN】で受信したFAXデータをペーパーレス化(パソコンで確認)
実際にやりたかったのは、 ココがポイント 複合機FAXで受信した内容を、社内のNASに蓄積させて、更に自動でGoogleドライブにも反映 させて外出先でも見られるようにしたいという内容になります。 ...
続きを見る
文字列でのSQLでの抽出なので下記のようにしました。
SQL = "SELECT * FROM dbo_order WHERE arrange_date = " & Me!arrange_id & ""
「抽出条件でデータ型が一致しません」
となりました。
debug.print SQL で確認すると、
SELECT * FROM dbo_order WHERE arrange_date = 20200806113923
となっています。
ちゃんと数値も入って検索できるはずだと思いますが、何で???
試しに、数値型で実行しても同じエラーで先に進めません。
SQL = "SELECT * FROM dbo_order WHERE arrange_date = " & arrange_id
結局、今回はシングルコーテーデョン
結局今回は、シングルコーテーションを入れることで回避できました。
SQL = "SELECT * FROM dbo_order WHERE arrange_date = '" & arrange_id & "'"
'" & arrange_id & "'"
という感じですね。
同じく
debug.print SQL で確認すると、
SELECT * FROM dbo_order WHERE arrange_date = 20200806113923
エラーが出た時と同じじゃねぇ!
ココがポイント
デバッグでの表示内容は、同じなのに、エラーがでる場合と出ない場合との違いがある
のです。
次から無駄な時間をかけないように、この方法も備忘録に残しておきます。