2017-07-07 3 views
0

Ich versuche Datensätze aus dem Unterbericht zu löschen, die mit mehreren Tabellen Daten erstellt. Unten ist der Code ich für dieseLöschen eines Datensatzes aus Tabelle in MS ACCESS 2010

CurrentDb.Execute "DELETE FROM StateBudget " & " WHERE S_ID=" & ("SLELECT ID FROM States " & " WHERE State=" & Me.subformStateBudget.Form.Recordset.Fields("State")) 

Und Fehler erscheinen wie diese

Syntaxfehler (fehlender Operator) in Abfrageausdruck ‚S_ID = SELECT ID schreiben aus Staaten, in denen State = ??? ? ". diese

+1

Als allgemeine Regel tun Sie nicht = Unterabfrage. Verwenden Sie stattdessen "IN". – jarlh

+1

Sie können 'DLookUp' auch gehen (' DLookUp ("ID", "Staaten", "State =" & Me_formStateBudget.Form.Recordset.Fields ("State")) 'gibt genau das gleiche wie Ihre Unterabfrage. Access mag es nicht, wenn Sie sich auf mehr als eine Tabelle in einer Löschabfrage beziehen.Außerdem schreiben Sie 'SELECT' in Ihrer Unterabfrage falsch, was das auch erklären könnte. –

+0

Danke für den Rat, ich werde den Rechtschreibfehler beheben. –

Antwort

0

Check out

CurrentDb.Execute "DELETE FROM StateBudget WHERE S_ID IN (SELECT ID FROM States WHERE State=" & Me.subformStateBudget.Form.Recordset.Fields("State") & ")" 

Und übrigens Sie misspelling in ausgewählten bekommen haben, fügen Sie diese Zeichenfolge falsch. Diese Klammer vor der Auswahl sollte innerhalb der Zeichenfolge und viel mehr sein.

Verwandte Themen