Se connecter avec
S'enregistrer | Connectez-vous

Problème d’accès à une BDD Access sur certains OS !

Dernière réponse : dans Programmation

Bonjour à tous,
J’ai développé une application en vb6 utilisant une base de données Access. Lors de son déploiement sur certains postes, la connexion à la BDD échoue. Cela ne fonctionne pas du tout avec windows 98, mais fonctionne un peu mieux avec Win98 SE. Le problème se pose parfois même sur certains ordinateurs équipés de Windows XP ou Vista !
Voici le code utilisé pour la connexion à la BDD :

Set My_Connection = New ADODB.Connection
My_Connection.ConnectionTimeout = 15
My_Connection.CommandTimeout = 30

Str_connexion = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" + App.Path + "\" + Nom_BDD + ";Uid=;Pwd=" + Mot_De_Passe_BDD + ";"

If My_Connection.State = adStateOpen Then
My_Connection.Close
End If

My_Connection.Open Str_connexion

While (My_Connection.State = adStateConnecting)
DoEvents
Wend

Pour le déploiement de l’application, j’utilise « Inno Setup Compiler 5.1.6 », et je doute un peu que c’est la source du problème, mais je ne vois d’où ça peut venir. J’utilise bien MDAC. Voici le contenu du fichier de déploiement :
[Tasks]
Name: MDAC; Description: Microsoft Data &Access Components; GroupDescription: Compléments:; Flags: checkedonce restart; MinVersion: 4.0,4.0; OnlyBelowVersion: 0,5.0

[Files]
; [Bootstrap Files]

Source: Fichiers2\COMCAT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
Source: Fichiers2\msvbvm60.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
Source: Fichiers2\Vb6fr.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile onlyifdoesntexist


; @vbscript.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,19/08/04 2:09:48 PM,417792,5.6.0.8820
Source: Fichiers2\vbscript.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
; @mscomctl.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),3/8/04 11:00:00 PM,1081616,6.1.97.82
Source: Fichiers2\mscomctl.ocx; DestDir: {sys}; Flags: promptifolder regserver sharedfile
; @MSWINSCK.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/23/98 11:00:00 PM,108336,6.0.81.69
Source: Fichiers2\MSWINSCK.OCX; DestDir: {sys}; Flags: promptifolder regserver sharedfile
; @tabctl32.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/5/00 6:00:00 PM,209608,6.0.90.43
Source: Fichiers2\tabctl32.ocx; DestDir: {sys}; Flags: promptifolder regserver sharedfile
; @MSFLXGRD.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/7/99 12:00:00 AM,244232,6.0.84.18
Source: Fichiers2\MSFLXGRD.OCX; DestDir: {sys}; Flags: promptifolder regserver sharedfile
Source: Fichiers2\mshtml.tlb; DestDir: {sys}; Flags: uninsneveruninstall regtypelib

; [Setup1 Files]
Source: Fichiers2\MDAC_TYP.EXE; DestDir: {app}; Flags: promptifolder deleteafterinstall nocompression; Tasks: MDAC

; @bdd.mdb,$(AppPath),,,12/6/05 2:53:46 AM,659456,0.0.0.0
Source: bdd.mdb; DestDir: {app}; Flags: promptifolder
; @Appli.exe,$(AppPath),,,12/6/05 7:28:02 AM,929792,1.0.0.0
Source: \ Appli.exe; DestDir: {app}; Flags: promptifolder sharedfile ignoreversion

;Uniquement Windows XP et Sup
Source: Fichiers2\asycfilt.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\oleaut32.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\olepro32.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist; MinVersion: 0,5.01.2600
Source: Fichiers2\stdole2.tlb; DestDir: {sys}; Flags: regtypelib ; MinVersion: 0,5.01.2600

;Uniquement avant Windows XP
Source: Fichiers2\Avant_WinXP\asycfilt.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers2\Avant_WinXP\oleaut32.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers2\Avant_WinXP\olepro32.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist; OnlyBelowVersion: 0,5.01.2600
Source: Fichiers2\Avant_WinXP\stdole2.tlb; DestDir: {sys}; Flags: regtypelib; OnlyBelowVersion: 0,5.01.2600

[Registry]
;MDAC 2.0+
Root: HKCU; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce; ValueType: string; ValueName: MDAC_Setup; ValueData: """{%TEMP}\mdac_typ.exe"" /Q /C:""setup /QT"""; MinVersion: 4.0,0; Tasks: MDAC

[Run]
; START MDAC 2.0+
Filename: {app}\mdac_typ.exe; Parameters: "/Q /C:""setup /QNT"""; WorkingDir: {tmp}; Flags: skipifdoesntexist; Tasks: MDAC; MinVersion: 4.1,0


Si vous avez une idée de la source du problème je suis preneur car je suis
un peu à cours d'idées en ce moment.
J'aimerai bien pouvoir supprimer MDAC pour le remplacer par des fichiers
moins lourds, mais ce n'est pas une priorité.
Merci de jeter un coup d'oeil également sur le fichier de déploiement pour
voir si ça vous semble correct.

Merci d'avance et bonne fin de journée.
Lassé par la pub ? Créez un compte

Salut
Tu nous donnes le code, tu nous dis que ça ne marche pas, mais aucune info sur l'erreur en question (n°, libellé, ligne qui bug supposément).
Ceci dit, le « Microsoft Access Driver » utilise-t-il vraiment le MDAC ou bien juste le Jet Engine d'Access (qui n'est pas mis à jour par le MDAC je crois) ?
Expert Programmation

En plus, tu as oublié de respecter le règlement.
Va le lire et mets ton premier message en conformité !!!!!!

L'utilisation de la balise [code] te permettra d'ailleurs de nous dire à quelle ligne se trouve l'erreur.

Ça y est play2001, tu vas nous énerver le zeb :) 
Pense à ses artères, faut le ménager, il peut encore servir :p 

Sinon, si tu as MS Office sur un poste de travail où tu as constaté l'erreur, ouvre un classeur Excel, va dans l'éditeur de code (ALT+F11) et dans le menu Outils/Références.
Là dis nous si tu trouves « Microsoft Activex Data Objects 2.x Library » et si tu peux l'exploiter.
Logiquement si ton code précédent plante sur la création de ADODB, ça devrait se voir sous Excel.
Vérifie que la version sur ce poste correspond à la version de ton kit de déploiement.
Lassé par la pub ? Créez un compte