通常、DateTime
の問題はVBA
とSQL
にありますが、この場合は壁に当たっています。VBAへのアクセス:文字列tablefieldを含むSQL文字列を日付として変換します
私は私が欲しいことをすることができるかどうかもわかりません。
I等のフィールドF1、F2、と一時テーブルを有する
フィールドF7は、文字列のn形式DD/MM/YYYYのように日付を含みます。
今、テンポラリテーブルのデータを、フィールドF7のデータをDate/Time
フィールドに格納するテーブルにコピーします。このフィールドの形式は、短い日付(dd-MM-yyyy)です。
私は##で私の日付データをパディングし、私のテーブルfieldname
にブラケット[]を追加するとともに、単独で、及びいくつかの組み合わせでCDate()
、Format()
とTrim()
を使用してみましたが、私は単純に正しい組み合わせを見つけることができません。
これは私のコードです。私は変数を使用しているので、importedDate
は正常に動作します。しかし、フィールドF7のために、私はVBA
日付変換でSQL
クエリを混合していて、それは私のために働いていません。
Sub MoveImportedData()
Dim SQLStr As String
SQLStr = "INSERT INTO TblDebitorSaldoListe " _
& "(CompanyCode,CompanyName, CustomerNumber, CustomerName, OneTimeCustomerName, TermsOfPayment, NetDueDate, Reference, " _
& "DunningBlock,Comment, ReminderOne, ReminderTwo, DebtCollection, TotalAmountDKK, TotalNotYetDueDKK, TotalOverdueDKK, " _
& "ReminderOneFile, ReminderTwoFile, NoReminder, ImportedDate) " _
& "SELECT F1, F2, F3, F4, F5, F6, #" & CDate("F7") & "#, F8, F9, '', '', '', '', F10, F11, F12, '', '', 0, '" & CDate(Date) & "' " _
& "FROM TEMP WHERE Len(F1)=4" _
MsgBox SQLStr
DoCmd.RunSQL SQLStr
End Sub
任意の助けもいただければ幸いです。私はAccess 2013を使用しています。
ありがとうございました。
'DataType'の変換に使用したコードを追加できますか?ここで使用していたコードに何か問題があった可能性がありますか? – David
私はこの組み合わせを試してみました:& "F1、F2、F3、F4、F5、F6、" CDate(フォーマット(Trim(F7)、 "&Chr(34)&" dd-mm-yyyy "&Chr F10、F11、F12、 ''、 ''、0、 '"&CDate(Date)&"' "、" F8、F9、 _ – ahsoe
'DateTime'の型として変数(' newDate'など)を宣言できますか? 'SELECT'クエリを実行してF7の値を取得し、次にVBA Convertコマンドを実行して、この方法で挿入しますか?それは、各行に対してそれを行うためにループを必要とする可能性があります。最も効率的な方法ではなく、それを確認するだけです。 – David