Frage

Ich versuche, einen Re-Cord in Access VBA zu erstellen, die mir alle Datensätze in einer Tabelle auf den aktuellen Datensatz eines Formulars im Zusammenhang zeigen. Meine aktuellen Code sieht wie folgt aus:

Private Sub Form_Load()

    Dim rst As Recordset

    Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = [Forms]![Order Data Entry Header]![ID]))")

    rst.MoveLast
    Forms![Order Data Entry Header].LineNum = rst![Ln]

End Sub

Ich tue dies so, dass, wenn neue Datensätze hinzufügen, können sie nacheinander nach der höchsten Zahl nummeriert. Wenn ich das Formular ausführen es „Laufzeitfehler:‚3061‘hat zu wenige Parameter Erwartete 1..“ Get auf dem Set ersten Zeile.

Jede mögliche Hilfe würde geschätzt.

War es hilfreich?

Lösung

Das Problem ist die Tatsache, dass die Zeichenfolge, die Sie dort sehen, ist genau das, was an den Fahrer weitergegeben wird immer.

Sie müssen "aufbauen" die Zeichenfolge, etwa so:

Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = " & [Forms]![Order Data Entry Header]![ID] & "))")

Sehen Sie, um sicherzustellen, dass [Formulare]! [Order Data Entry Header]! [ID] ist sicher Inhalt, da Sie eine SQL-Anweisung aufzubauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top