Vermeiden Sie diesen häufigen Fehler beim Ausführen gespeicherter Prozeduren in MS Access
Wir lieben es, gespeicherte Prozeduren aus unserem VBA-Code auszuführen, aber es gibt ein Problem, auf das Sie achten müssen:Ausführen einer Prozedur, die sich auf bereits in Ihr Formular geladene Daten auswirkt. Wenn Sie nicht aufpassen, erhalten Sie die folgende Meldung:
Glücklicherweise ist es eine einfache Lösung, hier sind einige Vorschläge:
- Schließen Sie das Formular und führen Sie dann Ihre gespeicherte Prozedur aus. Dies setzt voraus, dass Sie die geänderten Daten möglicherweise nicht auf demselben Formular überprüfen möchten.
- Setzen Sie die Datensatzquelle des Formulars auf nichts und setzen Sie sie dann wieder auf die ursprüngliche Datenquelle zurück (siehe Code unten).
Schließen Sie das Formular und führen Sie dann die gespeicherte Prozedur aus
Hier ist etwas Pseudo-Code, um Ihnen den Einstieg zu erleichtern:
Private Sub RunSomeProcedure() Dim lngOrderID as Long 'Assuming you need to pass information from your form to the stored procedure, for example, an OrderID lngOrderID = Me.OrderID 'If you don't store the info it will not be available after closing the form DoCmd.Close acForm, Me.Name 'This closes the form ExecuteMyCommand "uspStoredProcedureName " & lngOrderID End Sub
Nicht vertraut mit ExecuteMyCommand? Sie können es hier nachschlagen.
Setzen Sie die Datensatzquelle des Formulars auf null
Private Sub RunSomeProcedure() Dim lngOrderID as Long Dim strRecordSource as String 'Assuming you need to pass information from your form to the stored procedure, for example, an OrderID lngOrderID = Me.OrderID 'If you don't store the info it will not be available after closing the form strRecordSource = Me.RecordSource 'Store the recordsource for later use Me.RecordSource = vbNullString ExecuteMyCommand "uspStoredProcedureName " & lngOrderID Me.RecordSource = strRecordSource 'Restore the form so that the user can see the updated data End Sub
Begleite mich am 9. März mit Special Guest Ebo Quansah!
Lernen Sie mit Ebo, dem Produktmanager der Access-Gruppe, das Neueste über Microsoft Access kennen. Für Details klicken Sie bitte hier:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- Produktmanager/