Normalerweise finde ich meine DateTime
Probleme inund SQL
durch Versuch und Irrtum, aber in diesem Fall habe ich eine Wand getroffen.Access VBA: SQL-String mit Zeichenfolge Tabelle als Datum konvertiert
Ich bin nicht einmal sicher, dass ich tun kann, was ich will.
Ich habe eine temporäre Tabelle mit Feldern F1, F2, usw.
Feld F7 ein Datum als Zeichenfolge n Format TT/MM/yyyy enthält.
Jetzt möchte ich die Daten aus der temporären Tabelle in eine Tabelle kopieren, in der die Daten in Feld F7 in einem Feld Date/Time
gespeichert werden sollen. Das Format dieses Felds lautet Kurzes Datum (TT-MM-JJJJ).
Ich habe versucht, mit CDate()
, Format()
und Trim()
allein und in verschiedenen Kombinationen, zusammen mit meinen aktuellen Daten mit ## Klotzen und das Hinzufügen von Klammern [] an meinen Tisch fieldname
, aber ich kann einfach nicht die richtige Kombination finden.
Dies ist mein Code. Die importedDate
funktioniert gut, weil ich eine Variable verwende. Aber für das Feld F7, ich bin Mischen die SQL
Abfrage mit der VBA
Datumsumstellung, und es funktioniert nicht für mich:
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
Jede Hilfe wäre sehr geschätzt. Ich benutze Access 2013.
Danke.
Können Sie den Code hinzufügen, mit dem Sie versucht haben, den 'DataType' zu konvertieren? Es könnte sein, dass etwas mit dem Code, den du hier benutzt hast, nicht stimmt? – David
Ich habe diese Kombination unter anderem ausprobiert: & "SELECT F1, F2, F3, F4, F5, F6, CDate (Format (Trim (F7)," & Chr (34) & "TT-MM-JJJJ" & Chr (34) & "))", F8, F9, '', '', '', '', F10, F11, F12, '', '', 0, '"& CDate (Datum) &"' " _ – ahsoe
Können Sie eine Variable deklarieren, zB 'newDate' als Typ von' DateTime'. Führen Sie eine SELECT-Abfrage aus, um den Wert von F7 zu erhalten, führen Sie dann einen VBA-Konvertierungsbefehl für den Wert aus und fügen Sie ihn dann auf diese Weise ein. Es kann eine Schleife erfordern, um es für jede Zeile zu tun, also nicht der effizienteste Weg, sondern nur um zu überprüfen, ob es funktioniert. – David