2016-10-18 5 views
0

Ich versuche eine Bedingungsprüfung zu schreiben, die überprüft, ob der Datensatz existiert: Wenn es das tut, dann öffnet es ein Formular, während es zuerst einen Datensatz hinzufügt und dann öffnet bilden.Hinzufügen Datensatz, wenn es nicht existiert

Ich habe die Bedingungsprüfung funktioniert, aber ich kann nicht herausfinden, wie Sie einen Datensatz zur Tabelle hinzufügen.

Die Tabelle hat nur zwei Spalten (ID, ID zu Link). ID ist eine automatische Nummer und ist der Primärschlüssel. ID zu Link dient nur dazu, Budgetdaten mit dem entsprechenden Konto zu verknüpfen.

Der Code führt zu einem Laufzeitfehler (3134, Syntaxfehler in INSERT INTO-Anweisung).

Private Sub Test_Budget_Click() 

    If IsNull(DLookup("[ID to Link]", "TEST_Budget Information", "[ID to Link] = " & _ 
    [Forms]![Award Information]![Internal ID to Link] & "")) Then 

     DoCmd.RunSQL "INSERT INTO TEST_Budget Information([ID to Link])" & _ 
     "VALUES ('" & [Internal ID to Link] & "')" 
     MsgBox "Record does not exist" 
    Else 
     MsgBox "Record Exists" 
    End If 

End Sub 

Antwort

2

Sie sollten TEST_Budget Information in eckige Klammern umbrechen und es fehlen ein paar Leerzeichen. Versuchen Sie folgendes:

DoCmd.RunSQL "INSERT INTO [TEST_Budget Information] ([ID to Link])" & _ 
       " VALUES ('" & [Internal ID to Link] & "')" 

Ich würde das in der Zukunft empfehlen vermeiden Sie Leerzeichen in Tabellen- und Spaltennamen aufweisen, da sie Probleme verursachen können.

+0

Das funktionierte einwandfrei. Ich danke dir sehr. Ich bin eigentlich ein Student im zweiten Studienjahr Informatik zu studieren und wenn es eine Sache gibt, die ich gelernt habe, ist es nie Namen mit Leerzeichen. Ich habe diese Datenbank nicht gemacht, aber immer noch verfolgen mich Spaces. –

+0

Gut zu hören, dass es funktioniert hat. Stört es Sie, es als die akzeptierte Antwort zu markieren? – Orilux

Verwandte Themen