Undgå denne almindelige fejl ved udførelse af lagret procedure i MS Access
Vi elsker at køre lagrede procedurer fra vores VBA-kode, men der er et problem, du skal være opmærksom på:Udførelse af en procedure, der påvirker data, der allerede er indlæst på din formular. Hvis du ikke er forsigtig, får du følgende besked:
Heldigvis er det en nem løsning, her er nogle forslag:
- Luk formularen, og kør derefter din lagrede procedure. Dette forudsætter, at du måske ikke ønsker at gennemgå de ændrede data på den samme formular.
- Indstil formularpostkilden til ingenting, og sæt den derefter tilbage til den oprindelige datakilde (se koden nedenfor).
Luk formularen, og kør derefter den lagrede procedure
Her er noget pseudo-kode for at komme i gang:
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
Ikke bekendt med ExecuteMyCommand? Du kan slå det op her.
Indstil formularens registreringskilde til 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
Kom med mig den 9. marts med den særlige gæst Ebo Quansah!
Kom og lær det seneste om Microsoft Access med Ebo, produktchefen for Access-gruppen. For detaljer, klik venligst her:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- produkt-manager/