2016-06-17 5 views
0

Ich habe an dem Erstellen einer extrem einfachen Datenbank mit nur 4 Tabellen und nur wenigen Informationen pro Spalte gearbeitet. Eine meiner Tabellen heißt "Kunde" und innerhalb dieser Tabelle gibt es 4 Spalten für Informationen. enter image description hereInsert-Anweisung in Zugriff gibt Fehler

Ich habe eine Taste auf meiner „AddCustomerForm“, das den folgenden Befehl ausführt

Private Sub cmdadd_Click() 
CurrentDb.Execute "INSERT INTO Customer(Customer ID, Email, Identifier) " & _ 
= VALUES(Customer ID, Email, Identifier) 
End Sub 

Kundenformular hinzufügen Meine sieht wie folgt aus: enter image description here

Könnte jemand bitte darauf hinweisen, was ich vermasselt ? Der Fehler, den ich erhalte, ist:

Syntaxfehler.

+0

Position Feld entspricht entweder Colorado Springs oder Denver. Diese Auswahlmöglichkeiten sind basierend auf einer Business-Tabelle verfügbar, die eine Geschäfts-ID von 1 oder 2 für diese Standorte definiert. – bluerojo

+0

@miroxlav Ich habe einige Änderungen vorgenommen und die VALUES hinzugefügt, ich habe es einfach nicht geschafft, es zu schreiben. Ich habe die Frage aktualisiert. – bluerojo

+0

Ich habe auch versucht, den Standort einzufügen, weil ich diese Tabelle einer ID zugeordnet habe, die eine Position in einer anderen Tabelle darstellt. – bluerojo

Antwort

1

Zugriff erfordert Klammern um jeden Feldnamen mit einem Leerzeichen. Ich löschte auch die = vor VALUES und änderte die Werte, um Ihre Formularsteuerelemente zu verweisen, die Sie entsprechend benennen müssen. Sie benötigen außerdem ein Semikolon, um die Anweisung abzuschließen, und müssen Ihre doppelten Anführungszeichen schließen.

This Seite könnte bei der Syntax helfen.

+0

Ich habe getan, was Sie vorgeschlagen haben und das ist, was ich mir ausgedacht habe. 'CurrentDb.Execute" INSERT INTO Kunde ([Kundennummer], E-Mail, Kennung) VALUES ([Formulare]! [AddCustomerForm]! [Kundennummer], [Formulare]! [AddCustomerForm]! [Email], [Formulare]! [ AddCustomerForm]! [Identifier]); " – bluerojo

+0

Ich erhalte den Fehler" Zu wenige Parameter erwartet 3 ". Das verwirrt mich, wie ich explizit 3 rief (Kundennummer, E-Mail und Bezeichner) – bluerojo

+0

@bluerojo stellen Sie sicher, dass Ihr Formular in der Formularansicht ist und alle referenzierten Steuerelemente nicht null sind. – MoondogsMaDawg

3

Es gibt ein paar Probleme, die ich sehe - ist [Kunden-ID] ein Auto-Nummer-Feld? Wenn ja, schließe es nicht ein.

Auch - wenn Sie eine manuelle Einfügung ausführen Ich nehme an, dass Ihr Formular nicht an Ihre Tabelle gebunden ist, obwohl ich mich frage, warum Kunden-ID im Formular als bearbeitbar angezeigt wird?

Schließlich sieht es aus wie Ort eine numerische ID Zugehörigkeit zu ID-Feld der Lage Dropdown ist die

im Business-ID-Feld füllt

Dies wird Ihnen helfen Debuggen von SQL und zeigen Sie uns, was falsch ist

es hinzufügen auf Ihre Schaltfläche und zeigen uns, den Wert in Direkt-Fenstern angezeigt, wenn der Code

Dim strSQL as string 
    strSQL = "INSERT INTO Customer ([Customer ID], Email, Identifier) VALUES (" _ 
    & me.[Customer ID] & ",""" & Me.[Email] & """,""" & Me.[Identifier] & """)" 
    Debug.print strSQL 

    CurrentDb.Execute strSQL 

Wenn der Kunde ID stoppt wird Autowert diese stattdessen versuchen (unter der Annahme Form ungebunden ist) und Location-ID-Wert der ersten Spalte der Dropdown ist

Dim strSQL as string 
    strSQL = "INSERT INTO Customer (Email, Identifier) VALUES (" _ 
    & me.[Customer ID] & ",""" & Me.[Email] & """, & Me.[Identifier] & ")" 
    Debug.print strSQL 

    CurrentDb.Execute strSQL 
+0

Danke für die Hilfe. Konnte das nicht funktionieren, so fasse ich es mit meinem Mangel an Wissen und Verständnis zusammen. Sobald ich meine Datenbank durchgegangen bin und die Tabellen/Zeilen überarbeitet und die einzelnen Teile neu gelernt habe, werde ich gerne wiederkommen und eine Antwort akzeptieren. Bis dann +1 :). Danke für deine Unterstützung! – bluerojo

+0

Ich habe ein Paar doppelte Anführungszeichen hinzugefügt, um den E-Mail-Wert zu umbrechen - vielleicht ist das das Problem? – dbmitch