2016-08-30 6 views
0

私は、case select文を使用して複数のレコードセットをループし、VBAイミディエイトウィンドウに文字列を表示するアクセス関数を使用しています。関数の出力に基づいてテーブルを更新する方法

誰でも、現在VBAの直接ウィンドウに表示されている結果を使ってテーブルを更新するために使用される方法について知ることができますか?

これまでのところ、私の検索では、DoCmd.SQLが動作する可能性があることが示唆されています。

Case Is = "1"     ' 1 bottle 
     Debug.Print rsWCol!r4_wcol_outstring & rsBottl!bottleoutstring 

     displays the string below in the immediate window: 

     R41602T50 1 00 62 710 C 1120 9800 550  1 00S #135      0 

私は、次の

Dim writeRecSQL As String ' used to append records to a temp table 
writeRecSQL = "INSERT INTO tbl_R_export_TEMP (R_str) select rsWCol!r4_wcol_outstring & rsBottl!bottleoutstring;" 


     Case Is = "1"     ' 1 bottle 
     ' Debug.Print rsWCol!r4_wcol_outstring & rsBottl!bottleoutstring 
     DoCmd.RunSQL writeRecSQL   

ようなものを使用できるようにしたいと思い、私のSQL文の一部を選択し、値を取得していないようです。 私は、通常、それが何かselect fieldX from tablex 好きで、私の文はもっと似ているということであるかもしれないということを理解する:select rs!foo「と入力パラメータの値」メッセージボックスがr4_wcol_outstring の値を求めて提起され

FROMが私のSQLのSELECTに続いてVB "Run-time error '3134' syntax error in INSERT INTO statement."を呼び出す)

私のレコードセットのパラメタとなるSQL文を書く方法のアドバイスや例を使うことができますr値。

答えて

0

開始するには良い場所は、Microsoftのサイトです: https://msdn.microsoft.com/en-us/library/bb208861(v=office.12).aspx

しかし、あなただけのレコードから値を挿入したい場合は、単にエスケープされた二重引用符内の別のテーブル
トライラッピングフィールドに検索し、外の値をconcetantingハードコーディングされた文字列。同様に


writeRecSQL = "INSERT INTO tbl_R_export_TEMP ([R_str]) VALUES (""" & rsWCol!r4_wcol_outstring & rsBottl!bottleoutstring & """);"

Docmd.RunSQL加えて、あなたもCurrentDB.Executeを見ることができますし、クエリ定義を使用して事前に定義されたパラメータクエリは

+0

あなたの提案オブジェクト:「エスケープされた二重引用符内のフィールドをラップし、値を連結ハードコーディングされた文字列の外に "私の問題を解決し、仕事を美しく完了させます。 – beng

+0

ありがとうございます - 私はあなたが新しいポスターだと思っています。それがあなたの問題を解決した答えだった場合、または参考になった場合は、そのようにマークしてください。それは私たちが手伝ってくれることから得られる少しの報酬です。あなたは他の質問と同様のアップ投票をして、このサイトで興味をそそるか役立つものを見つけることができます – dbmitch

関連する問題