Access
 sql >> Datenbank >  >> RDS >> Access

Vermeiden Sie diesen häufigen Fehler beim Ausführen gespeicherter Prozeduren in MS Access

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/