Access
 sql >> Base de données >  >> RDS >> Access

Éviter cette erreur courante lors de l'exécution d'une procédure stockée dans MS Access

Évitez cette erreur courante lors de l'exécution d'une procédure stockée dans MS Access

Nous adorons exécuter des procédures stockées à partir de notre code VBA, mais il y a un problème auquel vous devez faire attention :l'exécution d'une procédure qui affecte les données déjà chargées sur votre formulaire. Si vous ne faites pas attention, vous obtiendrez le message suivant :

Heureusement, c'est une solution facile, voici quelques suggestions :

  • Fermez le formulaire, puis exécutez votre procédure stockée. Cela suppose que vous ne souhaitiez peut-être pas revoir les données modifiées sur le même formulaire.
  • Définissez la source d'enregistrement des formulaires sur rien, puis redéfinissez-la sur la source de données d'origine (voir le code ci-dessous).

Fermer le formulaire puis exécuter la procédure stockée

Voici un pseudo-code pour vous aider à démarrer :

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

Vous n'êtes pas familier avec ExecuteMyCommand ? Vous pouvez le consulter ici.

Définissez la source d'enregistrement du formulaire sur 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

Rejoignez-moi le 9 mars avec l'invité spécial Ebo Quansah !

Venez découvrir les dernières nouveautés sur Microsoft Access avec Ebo, le chef de produit du groupe Access. Pour plus de détails, veuillez cliquer ici :https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- chef de produit/