Macro Export de donnees Acces vers Excel

pedro123456

XLDnaute Junior
Bonjour Bonjour!!!!


J,ai besoin de votre aide!!!!!

J'aimerais le code vba pour exporter mes donnes access vers Excel,

Apres quelques tours sur le forum voila ce que j'ai pu denicher,
Je precise que dans cette connexion il me faut un login et un password pour acceder a cette base de donnee

login=test
password=test
le nom de la base de donne est my_access_database.mdb
Le chemin est M:\my_access_database.mdb


voici le debut de code mais cela ne fonctionne pas
( pour l'instant comme cette macro est un test je veux juste afficher les valeurs de ma table PRENOM... pr la suite il me suffira de prendre cette valeur et de la mettre dans Excel....)


Dim dbsConn As ADODB.Connection
Set dbsConn = New ADODB.Connection
Dim connString As String

connString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= M:\my_access_database.mdb; Jet OLEDB:Database Password=test"

dbsConn.Open connString

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "PRENOM", dbsConn, adOpenKeyset, adLockOptimistic of the table

While Not rst.EOF
MsgBox (rst![PRENOM])
rst.MoveNext
Wend
dbsConn.Close
End Sub
 

michel_m

XLDnaute Accro
Re : Macro Export de donnees Acces vers Excel

Bonsoir Pedro, Chris

Pedro, tu as besoin d'aide, certes, mais quand tu en as reçu, plus de nouvelles, pas un coucou:
https://www.excel-downloads.com/threads/import-de-donnes-a-partir-dune-base-de-donnee.66392/

D'autre part tu ne précises pas où plante ton déboguage ni le message indiqué...

Ca donne hachement envie de chercher avec toi une solution

une idée quand même: l'utilisation de PRENOM me parait bizarre de même que "of the table"
Tu as le Wiki de MichelXLD pour l'exportation d'un champ access
 

pedro123456

XLDnaute Junior
Re : Macro Export de donnees Acces vers Excel

Bonsoir Michel!


Merci beaucoup pour la reponse! C'est vrai je n'en avais pas fait mais generalement je fait des Coucou apres avoir recu de l'aide!!! et surtout des MERCI!

Et quelques fois en messages prives car je trouve cela plus personnel bref....

Alors oui la ligne rst.Open "PRENOM", dbsConn, adOpenKeyset, adLockOptimistic of the table le ( of the table etait un comm que j'ai oublie dans le copier coller....)
A force de trop faire de CTRL C CTRL V on fait souvent plein d'erreurs en tout cas moi!

J'avais consulte le super MichelXLD wiki avant de poster mon message, mon gros probleme est dans l'acces a la base de donees access.

En effet, dans le wiki il n'y a pas de login ni de pass

Dans mon code, je n'ai que le pass et non de login....


Peut etre que cela fait une grosse part d'erreur dans le code, le debuggeur me dit que je n'ai pas l'authorisation necessaire, mais vu que je n'ai rentre nulle part de login ou de pass je pense que c'est pour cela....

De plus je ne sais pas vraiment comment acceder a la table Prenom, ni aux valeurs, je tatonne un peu....


Le seul code similaire que j'ai fait etait avec exportORACLE-->EXCEL voici comment le pass etait gere....ainsi que les tables et les valeurs

Dim cnOra As ADODB.Connection
Dim rsOra As ADODB.Recordset
Dim db_name As String
Dim UserName As String
Dim Password As String
Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset

db_name = "essai"
UserName = "rob"
Password = "rob"


cnOra.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" _
& Password + ";"
rsOra.CursorLocation = adUseServer

rsOra.Open "select prenoms from pedro.prenoms", cnOra, adOpenForwardOnly
While Not rsOra.EOF

Msgbox rsOra![Prenom] rsOra.MoveNext
Wend
rsOra.Close




Une idee pour mon probleme??/ Merci
 

michel_m

XLDnaute Accro
Re : Macro Export de donnees Acces vers Excel

ci joint une syntaxe pour base access sécurisée au niveau du partage: il existe un mot de passe mais donc pas d'identifiant;
noms de variable à adapter;

Dim source as new adodb.connection

Source.open “provider=Microsoft.jet.OLEDB.4.0;datasource= chemin et nom de ta base.mbd ;
Jet OLEDB : database password=tonmotdepasse ; "

Si ta base est sécurisée au niveau de l'utilisateur cela implique d'utiliser le groupe de travail system.mdw (voir si utiliser groupe de travail en cours) il faut alors insérer après Source.open “provider=Microsoft.jet.OLEDB.4.0.;

source.properties("jet oledb: systemdatabase")= C:\programfiles\microsoft office\office\system.mdw"
source.open "data source=tabase.mbd;user=id_administrateur; password= tonmot de passe

id_administrateur et tonmotde passe sont des variables

d'après doc microsoft migration dao ado



D'autre part il est conseillé de tester si ta requete est vide (pas de prénoms...)
d'après mon copain @+thierry:
if rsOra.eof then
msgbox " vide"
exit sub
end if

et tu initialise ton énumération par movefirst de préférence
 

pedro123456

XLDnaute Junior
Re : Macro Export de donnees Acces vers Excel

OK Michel Merci bcp! :p

Cependant j'ai encore des petits soucis!!
Pourrait tu avoir la gentillesse de mecrire le code concernant une ouverture de access, avec id et pass complet?


j'ai essaie l'ajout de tes commandes cependant visual basic n'aime pas trop et me met du rouge partout sur la ligne.... J'ai donc du faire une erreur quelque part....


Merci!!! BCP:) :)

A +!
 

MichelXld

XLDnaute Barbatruc
Re : Macro Export de donnees Acces vers Excel

bonjour Pedro, chere Chris et cher Michel

tu peux tester

Code:
Dim Cn As ADODB.Connection
 
Set Cn = New ADODB.Connection
 
With Cn 
  .Provider = "Microsoft.JET.OLEDB.4.0" 
  .Properties("Jet OLEDB:Database Password") = "monMotDePasse" 
  .Open "C:\maBase.mdb" 
End With


bonnne journée
MichelXld
 

pedro123456

XLDnaute Junior
Re : Macro Export de donnees Acces vers Excel

Hello MICHEL XLD, et mecri pour l'aide, de meme pour michel!

J'en reviens a mon probleme, je viens d'essaier ton code, ( cf lpus bas)
Car j'avais besoin dun user ID et d'un password, ma base etant protegee par ces dex choses...

Dim Cn As ADODB.Connection

Set Cn = New ADODB.Connection
id_administrateur = pedro123456
Password1 = "test"
With Cn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Properties "jet oledb: systemdatabase= C:\programfiles\microsoft office\office\system.mdw; user=id_administrateur; password= Password1"
.Open "M:\essai.mdb"
End With

End Sub


Cependant au debuggeur il me dit, invalid use of properties, et en me soulignant la ligne .Properties "jet oledb ......

Avez vous une solution???

Merci///!:( :(
 

pedro123456

XLDnaute Junior
Re : Macro Export de donnees Acces vers Excel

OKAy okay, c'est bon tout le monde, j'ai eu la solution!!

Encore un big big Merci a tous!!!

Code pour ceux qui un jour ont le meme probleme ctd avoir acces a la base de donnee, qui est protegee par lutilisateur




Dim MyConn As New ADODB.Connection


MyConn.Provider = "Microsoft.Jet.OLEDB.4.0"
MyConn.Properties("Data Source") = "M:\ma base.mdb"
MyConn.Properties("Jet OLEDB:System database") = "n:\ma base.mdw"
MyConn.Open UserId:="test", Password:="test"

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "select [utilisateur].[prenom], [utilisateur].[nom] FROM [ma abse]", MyConn


While Not rst.EOF
MsgBox (rst![prenom])
rst.MoveNext
Wend

MyConn.Close
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 396
Membres
103 534
dernier inscrit
Kalamymustapha