Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur d'exécution '3021'

1 réponse
Avatar
joguy4
Bonjour,

Je suis novice dans l'utilisation d'access et de visual basic.

Voilà mon problème :

dans un base de donnée de location de camping cars il y a deux tables
dont les noms sont 'Propriétaire' et 'Véhicule'

Je voudrait faire un formulaire pour chaque table me permettant de
modifier ou supprimer leurs différents enregistrements.

Je sélectionne les enregistrements à modifier/supprimer à l'aide de
liste déroulantes. Après mise à jour de cette liste, je voudrait voir
apparaitre toutes les infos de l'enregistrement en question dans le
formulaire à l'aide de zones de texte.

Voici le code vb dans l'évènement "After Update" des zone de liste :

Propriétaire :
--------------

Private Sub RecherchePropriétaire_LD_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[PR_ID] =" & Me![RecherchePropriétaire_LD]
Me.Bookmark = rs.Bookmark
End Sub


Véhicule :
----------

Private Sub RechercheVéhicule_LD_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[VL_ID] =" & Me![RechercheVéhicule_LD]
Me.Bookmark = rs.Bookmark

End Sub


Comme vous pouvez le voir, le code est identique pour chacune des
tables.

Le problème, c'est que dans un cas (Propriétaire) ça fonctionne très
bien et dans l'autre (Véhicule) ça ne marche pas du tout et j'ai ce
message d'erreur à l'exécution :

"erreur d'exécution 3021 : aucun enregistrement en cours."


Pourquoi le même code fonctionne-t'il dans un cas et pas dans l'autre
?

Si quelqu'un peut me donner un coup de main...

1 réponse

Avatar
Raymond [mvp]
Bonjour.

ces 2 procédures ayant été générées automatiquement par l'assistant, il n'y
a pas d'erreurs dans les fonctions, sauf si tu as modifié quelque chose dans
la procédure ou le type de données dans la tables. s'il ne trouve pas
d'enregistrement courant, c'est qu'il ne trouve pas d'égalité. essaie par
une requête si tu trouves une égalité. Si oui, vérifie si tout est bien
numérique car tu recherches une clé numérique. si non ta bles n'a pas les
bonnes correspondances de clés.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jonathan Guyot" a écrit dans le message de
news:
Bonjour,

Je suis novice dans l'utilisation d'access et de visual basic.

Voilà mon problème :

dans un base de donnée de location de camping cars il y a deux tables
dont les noms sont 'Propriétaire' et 'Véhicule'

Je voudrait faire un formulaire pour chaque table me permettant de
modifier ou supprimer leurs différents enregistrements.

Je sélectionne les enregistrements à modifier/supprimer à l'aide de
liste déroulantes. Après mise à jour de cette liste, je voudrait voir
apparaitre toutes les infos de l'enregistrement en question dans le
formulaire à l'aide de zones de texte.

Voici le code vb dans l'évènement "After Update" des zone de liste :

Propriétaire :
--------------

Private Sub RecherchePropriétaire_LD_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[PR_ID] =" & Me![RecherchePropriétaire_LD]
Me.Bookmark = rs.Bookmark
End Sub


Véhicule :
----------

Private Sub RechercheVéhicule_LD_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[VL_ID] =" & Me![RechercheVéhicule_LD]
Me.Bookmark = rs.Bookmark

End Sub


Comme vous pouvez le voir, le code est identique pour chacune des
tables.

Le problème, c'est que dans un cas (Propriétaire) ça fonctionne très
bien et dans l'autre (Véhicule) ça ne marche pas du tout et j'ai ce
message d'erreur à l'exécution :

"erreur d'exécution 3021 : aucun enregistrement en cours."


Pourquoi le même code fonctionne-t'il dans un cas et pas dans l'autre
?

Si quelqu'un peut me donner un coup de main...