Ich habe vor kurzem mit dem Zugriff begonnen. Ich versuche, ein paar Zeilen in die Datenbank einzufügen. Ich bin jedoch festgefahren, da es einen Fehler auslöst:
Zu wenige Parameter.
Ich habe einen Tabellentest mit nur einer Spalte namens start_date. Ich möchte alle Datumsangaben zwischen zwei Datumsangaben einfügen. Zum Beispiel, wenn ich den 07.01.2014 bis 07.03.2014 in Betracht ziehe, benötige ich Datumsangaben als 07.01.2014,2/7/2014,3/7/2014 in meiner Tabelle, aber ich habe Probleme beim Einfügen des von mir verwendeten Codes ist wie folgt
Private Sub createRec_Click()
Dim StrSQL As String
Dim InDate As Date
Dim DatDiff As Integer
Dim db As database
InDate=Me.FromDateTxt
'here I have used a code to find out the difference between two dates that i've not written
For i = 1 To DatDiff
StrSQL = "INSERT INTO Test (Start_Date) VALUES ('" & InDate & "' );"
StrSQL = StrSQL & "SELECT 'Test'"
db.Execute StrSQL
db.close
i=i+1
next i
End Sub
Mein Code wirft einen Fehler in der Zeile Db.Execuite StrSQL .__ als zu wenige Parameter . Hoffe, jemand könnte mir bei diesem Problem helfen . Vielen Dank Im Voraus
da Sie bereits erwähnt haben, dass Sie noch relativ neu sind, musste ich Sie einladen, zuerst die Fehler im Code (die unvollständige for-Schleife und die SQL-Anweisung) zu entfernen. Ansonsten benötigen Sie sicherlich die for-Schleife, um Datumsangaben in einem bestimmten Bereich einzufügen.
Verwenden Sie nun den folgenden Code, um die Datumswerte in Ihre Tabelle einzufügen. Ich habe den Code getestet und er funktioniert. Sie können es auch versuchen. Fügen Sie danach Ihre for-Schleife hinzu, um sie an Ihr Szenario anzupassen
Dim StrSQL As String
Dim InDate As Date
Dim DatDiff As Integer
InDate = Me.FromDateTxt
StrSQL = "INSERT INTO Test (Start_Date) VALUES ('" & InDate & "' );"
DoCmd.SetWarnings False
DoCmd.RunSQL StrSQL
DoCmd.SetWarnings True
Sie können nicht zwei SQL-Anweisungen so ausführen, wie Sie es tun.
Sie können eine Auswahlabfrage nicht "ausführen".
db ist ein Objekt und Sie haben noch nichts festgelegt: (z. B. set db = currentdb)
In VBA können Integer-Typen maximal 32767 aufnehmen - ich würde versucht sein, Long zu verwenden.
Vielleicht möchten Sie etwas genauer zu dem Datum, das Sie einfügen, ein wenig genauer sein:
INSERT INTO Test (Start_Date) VALUES ('#" & format(InDate, "mm/dd/yyyy") & "#' );"
zusammenfassend: Entfernen Sie die beiden obigen Codezeilen, und Ihre Einfügeanweisung funktioniert einwandfrei. Sie können den Code später an Ihre speziellen Anforderungen anpassen. Übrigens, manchmal müssen Sie Datumsangaben in Pfund-Zeichen wie # einfügen.