sql >> Database teknologi >  >> RDS >> Access

Undgå denne almindelige fejl, når du udfører lagret procedure i MS Access

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/


  1. Opgrader rækker kun ved appopgradering

  2. 4 måder at finde rækker, der indeholder små bogstaver i MariaDB

  3. Tilføjelse af en ny værdi til en eksisterende ENUM-type

  4. Sådan konverteres en postgres-database til sqlite