sql >> Database >  >> RDS >> Access

Vermijd deze veelvoorkomende fout bij het uitvoeren van de opgeslagen procedure in MS Access

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/


  1. Verbindingsreeksparameters voor Schema.ini

  2. Wat is de maximale grootte voor een varchar2 PL/SQL-subprogrammaargument in Oracle?

  3. Functie-geretourneerde record splitsen in meerdere kolommen

  4. dbms_output.put_line