Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2011, 17h54   #1
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Par défaut Passage de 2003 a 2007 et erreur 13 incompatibilte de type

Bonsoir,
Je viens de passer une base de 2003 mdb à 2007 accdb.
J'envoi un fichier Excel dans cette base au moyen de cette macro :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub Export_Vers_Access()

Dim db As DAO.Database
Set db = DBEngine.OpenDatabase("\\Chemin\Mensuel.accdb", False, False, ";pwd=xx")
 
Dim Plage As Range
Dim Array1 As Variant
Dim db1 As Database
Dim Rs1 As Recordset

Set db1 = DBEngine.OpenDatabase("\\Chemin\Mensuel.accdb")

Set Rs1 = db1.OpenRecordset("T_BPSR_BPMR_PAMR", dbOpenDynaset)
Set Plage = Worksheets("Export Access").Range("A2").CurrentRegion.Offset(1, 0)
Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
Plage.Select

Array1 = Plage.Value

T_BPSR_BPMR_PAMR
For x = 1 To UBound(Array1, 1)
With Rs1
.AddNew
.Fields("Année") = Array1(x, 1)
.Fields("Mois") = Array1(x, 2)
.Fields("Banque") = Array1(x, 3)
.Fields("Code Dépositaire") = Array1(x, 4)
.Fields("montant €") = Array1(x, 5)

.Update
End With
Next x

db1.Close

ActiveWorkbook.Save

Range("A2").Select

MsgBox "Les données sont exportées", vbOKOnly

End Sub
Par F8 j'ai une erreur "Erreur d'execution 13 Incompatibilité de type" sur cette ligne :
Code :
Set Rs1 = db1.OpenRecordset("T_BPSR_BPMR_PAMR", dbOpenDynaset)
Dans les références j'ai bien
Microsoft Office 12.0 Access database engine object library de coché.
Je n'arrive pas a trouver mon erreur.
Merci pour l'aide au cas ou ..
Bonne soirée
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 18h39   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
Bonsoir,

Il vaut mieux préciser comme pour db :
Code :
1
2
Dim db1 As dao.Database
Dim Rs1 As dao.Recordset
Mais par ailleurs que représente "T_BPSR_BPMR_PAMR" ???
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 19h39   #3
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Bonsoir nico84

Merci pour l'aide, T_BPSR_BPMR_PAMR représente la table access ou doit etre injecté les données de ce fichier excel.
Je teste cela demain matin, et je te tiens informé.
Merci encore et bonne soirée.
Cordialement
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 20h25   #4
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 258
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 258
Points : 1 877
Points : 1 877
Je mets toujours au minimum
Code :
Set Rs1 = db1.OpenRecordset("select * from T_BPSR_BPMR_PAMR", dbOpenDynaset)
Je découvre donc qu'il est possible de faire plus simple, au moins en version 2000
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 07h49   #5
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Bonjour nico84

Merci pour avoir trouvé mon problème. Tout fonctionne correctement.

Bonne journée.
Cordialement
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h13.


 
 
 
 
Partenaires

Hébergement Web