Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: katharina_eckert am Juni 28, 2021, 11:38:07

Titel: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 11:38:07
Hallo Liebe Community,
Ich möchte anhand eines Nachschlagefeld neue Datensätze herstellen. Jedoch wenn ich zum Beispiel einen neuen Kunden oder Maschinentyp anlegen möchte, entsteht dauernd diese Anweisung. Woran könnte das liegen ?
Private Sub Kombinationsfeld90_NotInList(NewData As String, Response As Integer)
Dim db As DAO.Database
    Dim lngID As Long
    Dim strMeldung As String
    Dim bolAnlegen As Boolean
   
    strMeldung = "'" & NewData & "' Neuer Maschinen Typ anlegen?"
    bolAnlegen = MsgBox(strMeldung, vbYesNo, "Neuer Maschinen Typ?") = vbYes
    If bolAnlegen = True Then
        Set db = CurrentDb
        db.Execute "INSERT INTO Tbl_Maschinen_Typ (txtMaschinen_Typ)" _
                & " VALUES ('" & NewData & "')", dbFailOnError
        lngID = db.OpenRecordset("SELECT @@IDENTITY").Fields(0)
        With Me.Controls("cboFeld")
            .Undo
            .Requery
            .Value = lngID
        End With
        Set db = Nothing
        Response = acDataErrAdded
      Else
        Response = acDataErrContinue
    End If
End Sub

Mfg
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 11:42:08
Hallo,
der Fehler dürfte durch das Nachschlagefeld zu Stande kommen.
In Tabellen sollten keine Nachschlagefelder verwendet werden, die gehören ausschließlich in Formulare.
Ändere das Nachschlagefeld in der Tabelle in ein normales Textfeld und übergebe dann den entsprechenden Schlüsselwert.
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 11:44:52
hallo Klaus,
danke für Ihre Information. Ich habe auch kein Nachschlagefeld benutzt in der Tabelle. in der Tabelle habe ich den Typ kurzer Text benutzt.
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 11:55:31
Hallo,
zeige bitte mal ein Bild des Beziehungsfensters.
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 11:59:01
Hallo Klaus

hier bitteschön :)
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 12:10:33
Hallo,
was ist denn MaschTypID, ein Autowert ?
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 12:13:27
Hallo,

Ja indem Fall ist mein MaschTypID ein Autowert. wenn ich halte neue maschinentypen über die Tabelle erstelle dann klappt das. Sobald ich das über mein Formular versuche, entsteht die Anweisung.

Mfg
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 12:31:07
Hallo,
erstelle mal einen String mit der SQL Anweisung und lasse Dir den mit Debug.Print ausgeben.
Bitte das in den Code einfügen (nach Set CurrentDb):
Dim strSQL As String
strSQL="INSERT INTO Tbl_Maschinen_Typ (txtMaschinen_Typ)" _
                & " VALUES ('" & NewData & "')"
Debug.Print strSQL
Stop
Die Ausgabe mit Debug.Print fügst Du dann man in eine Abfrage ein und probierst.
Zeige auch hier mal die Ausgabe.

PS:
Der Rückgabewert von VbYes ist nicht True, sondern eine Zahl nämlich 6. Boolean ist hier falsch, das funktioniert nur zufällig weil alles >-1 als True interpretiert wird.

So ist es besser:
Dim intAnlegen As Integer
 strMeldung = "'" & NewData & "' Neuer Maschinen Typ anlegen?"
    intAnlegen = MsgBox(strMeldung, vbYesNo, "Neuer Maschinen Typ?") = vbYes
    If intAnlegen = 6 Then 'oder If intAnlegen = vbYes
Oder noch einfacher auf intAnlegen verzichten:
strMeldung = "'" & NewData & "' Neuer Maschinen Typ anlegen?"
    If MsgBox(strMeldung, vbYesNo, "Neuer Maschinen Typ?") = vbYes Then
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: Beaker s.a. am Juni 28, 2021, 12:55:50
Liegt wohl daran, dass das Tabellenfeld nicht "txtMaschinen_Typ" heisst.
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 13:00:46
Hallo,
5x nachgesehen und nicht aufgefallen. Ekkehard hats gefunden.  ;D
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: Beaker s.a. am Juni 28, 2021, 13:05:38
Manchmal sind Fehlermeldungen eben doch hilfreich  ;)
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 13:24:27
ohh mann hahahahahahaahahahahaahahh Vielen Dank euch beiden :)

Ich habe es leider auch verpeilt ich habe gedacht, es heißt so haha.

Mfg
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 13:33:31
Hallo Ihr beiden,

Die Fehlermeldung erscheint nicht mehr, jedoch möchte er den Maschienentyp nicht neu anlegen. Woran könnte denn das liegen. Ich habe den Tabellennamen überprüft.
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: katharina_eckert am Juni 28, 2021, 13:36:43
hier die tabelle maschinen_typ
Titel: OT
Beitrag von: Beaker s.a. am Juni 28, 2021, 13:49:43
@klaus
Zitatweil alles >-1 als True interpretiert wird.
Ich habe mich bisher immer darauf verlassen, dass alles "<> 0" True
zurück gibt. Liege ich da False.
gruss ekkehard
Titel: Re: INSERT INTO -Anweisung enthält den folgenden unbekannten Feldnamen
Beitrag von: MzKlMu am Juni 28, 2021, 14:12:12
@Ekkehard
Zitat von: undefineddass alles "<> 0" True
ja, habe ich ja auch sinngemäß geschrieben.
Aber im Zusammenhang mit der MsgBox ist das falsch. Die MsgBox gibt je nach Auswahl eine Ganzzahl (1-7) zurück. Und spätestens wenn man je nach Auswahl verschiedene Rückgabewerte auswerten muss, fällt einem True/False auf die Füße.
Titel: OT
Beitrag von: Beaker s.a. am Juni 28, 2021, 14:23:20
Hallo Klaus,
Das mit der MsgBox ist klar, darum ging es mir nicht.
Zitatja, habe ich ja auch sinngemäß geschrieben.
Na ja, ">-1" ist schon was anderes als "<> 0", denn soweit
ich mich erinnern kann ist die 0 grösser als -1.

gruss ekkehard