Comment exporter une base de données Acces en VB6 sur un poste ne possèdant pas

lefoimpeur Messages postés 22 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 13 février 2006 - 7 sept. 2005 à 16:08
lefoimpeur Messages postés 22 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 13 février 2006 - 7 sept. 2005 à 20:42
Bonjour tout le monde,




Dans mon programme j'ai fais une fonction d'exportation et lorsque je
l'installe sur un poste qui ne possède pas access, elle ne fonctionne pas.




Après analyse, j'ai trouvé que ça bloquait sur la fonction OpenCurrentDatabase dans le code suivant:




Public Sub exporter()

Dim chemin As String

Dim cheminExport As String

Dim nom As String

Dim catalogBdd As ADOX.Catalog

Dim tblList As ADOX.Table

Dim ouvert As Boolean

Dim vide As Boolean

Dim exportation As Boolean

Dim db As Access.Application



'Initialisations

exportation = False

Set db = New Application

Set catalogBdd = New ADOX.Catalog



'Si la base de donnée est fermée on l'ouvre

If cnxBdd.State = adStateOpen Then

ouvert = True

Else

If ouvrirBdd Then

ouvert = True

Else

ouvert = False

End If

End If



If ouvert Then

'Récuperation du chemin et du nom de la base

chemin = lireChemin

nom = Mid(chemin, 1, Len(chemin) - 4)

'Ouverture pour l'exportation

db.OpenCurrentDatabase (chemin)

'Ouverture de la boite de dialogue pour choisir le chemin d'ou seront stockées

'les tables exportées

cheminExport = SelectFolder("Sélectionnez un répertoire de
destination pour exporter la base de données :", frmPrincipal.hwnd)

If cheminExport <> "" Then

'On liste le nom de toutes les tables dans la base de données

'afin de voir si le nom passé en paramètre ne correspond pas à une table déjà existante

catalogBdd.ActiveConnection =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin &
";Jet OLEDB:Database Password=;"

For Each tblList In catalogBdd.Tables

If tblList.type = "TABLE" Then

exportation = True

'Si le port com est ouvert, on le ferme

PortSerie.fermerCom frmPrincipal.MSComm

frmPrincipal.Toolbar1.Buttons("btnEnregistrer").Enabled = False

'Exportation de la base

db.Visible = False

DoCmd.TransferText acExportDelim, , tblList.Name, _

IIf(Right(cheminExport, 1) = "", cheminExport & tblList.Name &
".csv", _

cheminExport & "" & tblList.Name & ".csv"), True

End If

Next

Set catalogBdd = Nothing

db.CloseCurrentDatabase

Set db = Nothing

frmPrincipal.Toolbar1.Buttons("btnEnregistrer").Enabled = True

If exportation Then

MsgBox "Exportation de la
base terminée.", vbOKOnly + vbInformation, "Logiciel Environnement"

Else

MsgBox "La base de données
est vide.", vbOKOnly + vbInformation, "Logiciel Environnement"

End If

Else

CloseCurrentDatabase

End If

End If

End Sub




Existe-t-il une autre méthode afin que je puisse exporter les ma base au format csv? Si oui comment?





Merci d'avance à tous ceux qui pourront m'aider ;)

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 sept. 2005 à 18:44
Fais ton fichier à exporter en local, ensuite CopyFile et delete le local.

ciao...
BruNews, MVP VC++
0
lefoimpeur Messages postés 22 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 13 février 2006
7 sept. 2005 à 18:58
Merci bien!

Mais qu'entends-tu par "exporter en local"?

Je ne comprend pas ta solution, pourrais-tu me donner des détails stp?



En tout un grand merci car si cela fonctionne, ça me soulagerais ;)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 sept. 2005 à 19:22
A te relire je me demande si j'ai bien compris ta question...

Ce code tourne dans Access (je vois DoCmd), il est donc clair qu'il ne tournera pas hors d'Access. Donc tu le mets en marche sur ton poste qui a Access et tu fais ta copie de base sur le même pc, ensuite en 2 coups d'API tu l'envoies sur un autre pc.

ciao...
BruNews, MVP VC++
0
lefoimpeur Messages postés 22 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 13 février 2006
7 sept. 2005 à 19:37
Bé nan, j'ai développé mon appli en VB6....

Zut, moi qui me faisait une joie d'avoir enfin une soluce!
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 sept. 2005 à 19:47
Mais ça reste du code Access, qu'il soit fait par automation comme ici ou direct dans Access, ça reste du Access, il est donc hors de question de pouvoir trouver une solution. Ecris de l'ADO et ça passera.

ciao...
BruNews, MVP VC++
0
lefoimpeur Messages postés 22 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 13 février 2006
7 sept. 2005 à 20:42
Bé jvx bien faire de l'ado, jen ai fai pr le reste, ms comment tu fais pour exporter?

Si tu me dis comment faire là chu preneur!
0
Rejoignez-nous