sql >> Databasteknik >  >> RDS >> Access

Undvik detta vanliga fel när du kör lagrad procedur i MS Access

Undvik detta vanliga fel vid exekvering av lagrad procedur i MS Access

Vi älskar att köra lagrade procedurer från vår VBA-kod, men det finns ett problem du måste se upp med:Att köra en procedur som påverkar data som redan laddats på ditt formulär. Om du inte är försiktig får du följande meddelande:

Lyckligtvis är det en enkel lösning, här är några förslag:

  • Stäng formuläret och kör sedan din lagrade procedur. Detta förutsätter att du kanske inte vill granska de ändrade uppgifterna på samma formulär.
  • Ställ in formulärpostkällan till ingenting, ställ sedan tillbaka den till den ursprungliga datakällan (se koden nedan).

Stäng formuläret och kör sedan den lagrade proceduren

Här är lite pseudokod för att komma igång:

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

Inte bekant med ExecuteMyCommand? Du kan slå upp det här.

Ställ in formulärets postkälla till 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

Häng med mig den 9 mars med specialgästen Ebo Quansah!

Kom och lär dig det senaste om Microsoft Access med Ebo, produktchefen för Access-gruppen. För mer information klicka här:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- produkthanterare/


  1. Hur man infogar en sträng i en annan sträng i SQL Server med STUFF()

  2. SQL VÄLJ SUMMA

  3. Hur man byter namn på en primärnyckel i Oracle så att den kan återanvändas

  4. PHP SUB - Antal rader