Problème VB erreur 3021 : Aucun enregistrement en cours

Vinceg76 Messages postés 19 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 20 mai 2010 - 15 avril 2010 à 18:41
titi875 Messages postés 10 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 3 mai 2010 - 3 mai 2010 à 09:24
J'ai un soucis, quand j'exécute ceci, il m'envoie l'erreur 3021



Public Sub essai()
Dim dbs As Database, rst As dao.Recordset
Dim xl_app As New Excel.Application
Dim objexcel As Object
Dim xl_feuille As Object
Dim wshnetwork As String
'Set wshnetwork = WScript.CreateObject("WScript.Network")
'User = wshnetwork.UserName
'Chemin = InputBox("Entrer le chemin d'enregistrement des données", , "C:\My Documents\User")
With xl_app
Set objexcel = xl_app.Workbooks.Open("D:\test.xls")
Set xl_feuille = objexcel.Sheets("feuil1")
End With
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("rpqs_test")
rst.Edit 'Il s'arrète ici... "erreure 3021 : Aucun enregistrement en cours"
rst![nom_de_la_collectivite] = xl_feuille.Range("B6:B6").Value
rst.Update
xl_app.ActiveWorkbook.Close
xl_app.Quit
Set xl_app = Nothing
Set objexcel = Nothing
End Sub


On m'a parlé de rst.movefirst, ce qui donne ceci mais...

Set rst = dbs.OpenRecordset("rpqs_test")
rst.MoveFirst '...même erreure, mais ici maintenant...
rst.Edit
rst![nom_de_la_collectivite] = xl_feuille.Range("B6:B6").Value
rst.Update
xl_app.ActiveWorkbook.Close
xl_app.Quit
Set xl_app = Nothing
Set objexcel = Nothing
End Sub


En espérant que quelqu'un puisse éclairer ma lanterne, je vous remercie d'avance !

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 avril 2010 à 18:46
Salut,

Teste le nombre d'enregistrement :
if rst.RecordCount <= Then 'aucun enregistrement
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Vinceg76 Messages postés 19 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 20 mai 2010
15 avril 2010 à 20:00
Merci, mais, j'incorpore cela comment ? Je n'arrive pas à visualiser
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 avril 2010 à 20:04
Salut,

Et bien :
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("rpqs_test")
if (rst.recordCount > 0) then
rst.Edit 'Il s'arrète ici... "erreure 3021 : Aucun enregistrement en cours"
else
rst.addNew
end if
rst![nom_de_la_collectivite] = xl_feuille.Range("B6:B6").Value
rst.Update

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Vinceg76 Messages postés 19 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 20 mai 2010
15 avril 2010 à 20:06
Merciiiii
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titi875 Messages postés 10 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 3 mai 2010
3 mai 2010 à 09:24
Bonjour tout le monde!

Alors moi j'ai le meme problème que vinceg76 mais avec un code sous access. J'ai rajouté le teste mais ca me met toujours la meme erreur. Voici le code:

'Mise à jour de l'indice dans la table des produits.
Private Sub Indice_AfterUpdate()
Dim indice_map As String
Dim rec As DAO.Recordset
Dim criteria As String


indice_map = Forms!F_Map!F_Map_Produit.Form![Indice]
'Set rec DoCmd.RunSQL("SELECT Indice FROM PRODUIT_produit WHERE N°produit " & Forms!F_Map!F_Map_Produit.Form![N°de produit])
Set rec = CurrentDb.OpenRecordset("T_Produit", DAO.dbOpenTable)
'criteria "[N°produit] " & Forms!F_Map!F_Map_Produit.Form![N°de produit]
'rec.FindFirst criteria
rec.Index = "PrimaryKey"
rec.Seek "=", Forms!F_Map!F_Map_Produit.Form![N°de produit]
If rec.NoMatch Then

If (rec.RecordCount > 0) Then
rec.Edit 'c'est ici que ca plante
Else
rec.AddNew
End If

rec!Indice = indice_map
rec.Update
End If


rec.Close
Set rec = Nothing
End Sub

Je tiens à préciser que j'ai récuperé ce code d'une autre personne et que je debute en programmation VBA access.

Merci
0
Rejoignez-nous