Incompatibilité ou incompréhension totale

evilrico Messages postés 33 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 août 2011 - 19 août 2004 à 10:19
evilrico Messages postés 33 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 août 2011 - 3 sept. 2004 à 17:08
bonjour à tous et à toutes
je vais être bref et clair
et je remerci énormément d'avance tous ceux qui peuvent m'aider

voilà je travail sur excel je tente de me connecter à une base access mais j'ai le message suivant erreur d'exécution "13" incompatibilité de type

et j'ai cette ligne qui est incriminé surligné en jaune :
Set Rs1 = Db1.OpenRecordset("Intervention", dbOpenDynaset)
à autres précisions j'ai bien coché dans outil, référence ms DAO 3.6 object library

voici mon code

Sub WritingWorksheetData_DAO()

Dim Plage As Range

Dim Array1 As Variant

Dim x As Variant

Dim Db1 As Database

Dim Rs1 As Recordset

' Ouverture de la base de données Commandes.mdb

Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "\Car.mdb")

' Ouverture de la table Factures

' Un objet Recordset représente les enregistrements d'une table

Set Rs1 = Db1.OpenRecordset("Intervention", dbOpenDynaset)

' Détermination de la taille de la plage à envoyer vers Access

Set Plage = Worksheets("DAOSheet").Range("A1").CurrentRegion.Offset(1, 0)

Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)

Plage.Select

' Lecture de la plage pour renvoyer une valeur contenant un tableau

Array1 = Plage.Value

' Ecriture des données depuis Excel vers les enregistrement de la table Factures

For x = 1 To UBound(Array1, 1)

With Rs1

.AddNew

.Fields("chssis") = Array1(x, 1)

.Fields("destinataire") = Array1(x, 2)

.Fields("finition") = Array1(x, 3)

.Fields("date_retour") = Array1(x, 4)

.Update

End With

Next

' Fermeture de la base Commandes.mdb

Db1.Close

' Effacement des données copiées vers la base (sauf les titres)

With Selection.CurrentRegion

Intersect(.Cells, .Offset(1)).Select

End With

Selection.ClearContents

End Sub

merci encore

3 réponses

RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 10:31
Hello...

Si tu as également référencé ADO dans ton projet, tu dois déclarer tes variables comme suit :

Dim Rs1 As DAO.Recordset

... et si tu n'as pas référencé ADO, alors je ne sais pas.

RicoNuch
0
Zigarn Messages postés 106 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 janvier 2005
19 août 2004 à 17:00
Et si tu mets une requete SQL en premier paramètre de ton OpenRecordSet, du genre "SELECT * FROM [Intervention]" ?
-------------------------------------------------
Débutant ... mais pas pour longtemps !
0
evilrico Messages postés 33 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 août 2011
3 sept. 2004 à 17:08
salut les gars désolé de ne pas vous avoir remercié plutôt car je m'étais coupé de mes pc pour un petit temps
les 2 méthodes sont bonnes alors je tiens à vous remercier du fond du coeur
merçci encore j'espere vous aider aussi prochainement
slt
0
Rejoignez-nous