Vermijd deze veelvoorkomende fout bij het uitvoeren van de opgeslagen procedure in MS Access
We houden ervan om opgeslagen procedures vanuit onze VBA-code uit te voeren, maar er is één probleem waar u op moet letten:het uitvoeren van een procedure die van invloed is op gegevens die al op uw formulier zijn geladen. Als u niet oppast, krijgt u de volgende melding:
Gelukkig is het een gemakkelijke oplossing, hier zijn enkele suggesties:
- Sluit het formulier en voer vervolgens uw opgeslagen procedure uit. Dit veronderstelt dat u de gewijzigde gegevens misschien niet op hetzelfde formulier wilt bekijken.
- Stel de formulierenrecordbron in op niets en zet het dan terug naar de originele gegevensbron (zie onderstaande code).
Sluit het formulier en voer de opgeslagen procedure uit
Hier is wat pseudo-code om u op weg te helpen:
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
Niet bekend met ExecuteMyCommand? Je kunt het hier opzoeken.
Stel de recordbron van het formulier in op 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
Vergezel mij op 9 maart met speciale gast Ebo Quansah!
Kom en leer het laatste nieuws over Microsoft Access met Ebo, de productmanager voor de Access-groep. Klik hier voor meer informatie:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- productmanager/