Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: bejay am Juni 13, 2012, 07:44:37

Titel: (ACC00) 1 Parameter erwartet, zuwenige übergeben
Beitrag von: bejay am Juni 13, 2012, 07:44:37
Ich erhalte obenstehende Fehlermeldung und rätsel wo ich den Fehler gemacht habe:


Public Sub Inventurbuchung()
Dim db As DAO.Database
Dim RN As Long 'Referenznummer
Dim RB As String 'Referenzbezeichnung
Dim AI As Long 'Adressschlüssel
Dim M As Integer 'Menge
Dim D As Long 'DID
Dim S As Long 'SizeKey
Dim Q As Long 'Qualität
Dim V As Long 'Verpackungseinheit
Dim C As Date 'Charge
Dim T As Date 'Datum
Dim SQLinsert As String

Set db = CurrentDb
RN = 0 'Inventurbuchung immer 0
RB = "Inventurbuchung"
AI = 0 'Inventurbuchung immer 0
M = Forms![Bestand1]![txtMenge]
D = Forms![Bestand1]![cmbDesign]
S = Forms![Bestand1]![cmbSize]
Q = Forms![Bestand1]![cmbQuality]
V = Forms![Bestand1]![cmbPack]
C = Forms![Bestand1]![txtCharge]
T = Now
SQLinsert = "INSERT INTO Warenbewegung (RefNr, RefBez, AdressID, Menge, DID, SizeKey, QUID, VEID, Charge, Datum)" & _
            "VALUES (" & RN & "," & RB & "," & AI & "," & M & "," & D & "," & S & "," & Q & "," & V & ",'" & C & "','" & T & "')"
db.Execute (SQLinsert), dbFailOnError


Die Formularfelder mit dem Prefix txt sind Textfelder, mit dem Prefix cmb sind Combos die ihren Inhalt aus Selects der entsprechenden Tabellen erhalten.


Gruß bejay
Titel: Re: (ACC00) 1 Parameter erwartet, zuwenige übergeben
Beitrag von: database am Juni 13, 2012, 08:22:37
Hallo,

Wenn zum Zeitpunkt des Zusammensetzens des SQL-Strings ALLE Variablen mit Daten befüllt sind (überprüfen!)
liegt es möglicherweise am Format des Datums das du an den SQL-String übergibst.

T = Str(CDbl(Now))

Versuche bei Fehler in dieser Variante auch mal hier die Hochkommata wegzulassen ( ... ,'" & T & "')"

siehe dazu auch http://www.donkarl.com?FAQ6.8 (http://www.donkarl.com?FAQ6.8)
Titel: Re: (ACC00) 1 Parameter erwartet, zuwenige übergeben
Beitrag von: DF6GL am Juni 13, 2012, 15:53:09
Hallo,

wenn  "Charge" (?!)  und "Datum" Datumsfelder ( und ohne Uhrzeit) sind, dann sollte das so lauten:


Dim M As LONG 'Menge


T = Date
SQLinsert = "INSERT INTO Warenbewegung (RefNr, RefBez, AdressID, Menge, DID, SizeKey, QUID, VEID, Charge, Datum)" &  _
            " VALUES (" & RN & ",     '" & RB & "'       ," & AI & "," & M & "," & D & "," & S & "," & Q & "," & V & "," & Format(C,"\#yyyy-mm-dd\#")  & "," & Format(T,"\#yyyy-mm-dd\#")   & ")"



und Hochkommata um "RB" herum beachten!
Titel: Re: (ACC00) 1 Parameter erwartet, zuwenige übergeben
Beitrag von: database am Juni 13, 2012, 19:20:17
Hallo,

....   Format(C,"\#yyyy\-mm\-dd\#")  & "," & Format(T,"\#yyyy\-mm\-dd\#")   & ")"

Hmmm.... funktioniert das ohne die Backslashes vor den Minus?
Titel: Re: (ACC00) 1 Parameter erwartet, zuwenige übergeben
Beitrag von: DF6GL am Juni 13, 2012, 20:00:54
Hi,

ja...