Problème VB erreur 3021 : Aucun enregistrement en cours
Vinceg76
Messages postés19Date d'inscriptionmercredi 4 novembre 2009StatutMembreDernière intervention20 mai 2010
-
15 avril 2010 à 18:41
titi875
Messages postés10Date d'inscriptionmercredi 21 avril 2010StatutMembreDerniè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 !
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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
titi875
Messages postés10Date d'inscriptionmercredi 21 avril 2010StatutMembreDerniè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.