Vb6, access 2002, et des tas de questions!!!

Résolu
Signaler
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
-
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
-
Salut à tous
J'essaie désespérément de connecter ma bdd access avec un projet vb6, sans résultat.
J'ai bien entendu regarder les tutoriaux proposés sur le site (et même sur d'autres, désolé pour la trahison), et celui qui semblerait le mieux marcher est le suivant (j'ai pas retrouvé la référence, alors je le livre tel quel)
Public Sub ConnexionBase(Optional ByVal cheminBase As String)
Dim ChaineConnexion As String

If cheminBase <> vbNullString Then URL_BASE = cheminBase

On Error GoTo erreur
ChaineConnexion = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" & _
URL_BASE & ";Persist Security Info=False;" & _
"JetOLEDB:Database Password=" & dbPassWord
cnx.Open ChaineConnexion

Exit Sub

erreur:
If cnx.State Then cnx.Close
MsgBox "Erreur de connexion à votre base " & vbCrLf & URL_BASE, vbCritical, _
"Echec Connexion"
End Sub

' Permet de définir le mot de passe pour se connecter à la base
Public Sub setPasswordBase(Optional s As String ""): dbPassWord s: End Sub

' Permet de définir le chemin d'accès à la base
Public Sub setURLase(Optional s As String ""): URL_BASE s: End Sub

Seulement, lorsque je le lance, il me souligne la ligne
"cnx.Open ChaineConnexion", et me dit qu'il manque le pilote ISAM
En fait, j'ai plus ou moins réussi à connecter ma bdd, mais sans code, juste en la reliant avec un fichier .dsr. J'arrive alors à lire ce qu'il y a dessus, mais pas à écrire...

Merci à tous

8 réponses

Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
Voila ma chaine de connection sur une de mes appli qui marche bien sur
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\API-Guide\jmb\api.mdb; Persist Security Info=False"
OLEDB.4.0 car j'ai access 97

Maintenant il faut ajouter la réfétence  par Projet Références
c:\program files\fichiers communs\system\ado\msado15.dll

s'il n'existe pas télécharger MDAC_TYP_2-7.exe chez microsoft et l'installer

Un moyen bon de récupérer la chaine de connection:

Mettre sur le bureau un fichier texte test.txt
le renommer en .udl
double cliquer dessus
Définir la connection à la base de données
Tester la connection
Ensuite ouvrir le fichier test.udl
récupérer la chaine de connection (c'est du texte)

Pas obligé de mettre la connection dans un module mais cela vaut mieux et la déclarer Public pour
accessibilité dans toute l'application.

Je précise que VB VB.NET et les bases de données SQL, Access sont mes spécialité en
conséquence ce que j'indique doit marcher.

Voici un moduler qui contient tout

Option Explicit
Global gConn  As New ADODB.Connection

Sub init
 ConnectStringData = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\inventaire.mdb;Persist Security Info=False"
    Set gConn = New ADODB.connection
    gConn=ConnectStringData
    gConn.Open
end sub

ensuite par exemple dans une sub

Sub machin
 DIM rsBiblio                     As New ADODB.Recordset
 rsBiblio.ActiveConnection = gConn
 rsBiblio.CursorType = adOpenStatic


    
 rsBiblio.Open "select * from Biblio" 
ou bien ce qui evient au même
rsBiblio.Open "select * from Biblio", gConn, adOpenStatic

' faire ce que l'on doit
End Sub

labout
3
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
la chaine de connection est mal définie et mal utilisée

Voici le code
Dim connectionString as string
Dim cnx as ADODB.Connection
connectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\adresse\tabase.mdb; Persist Security Info=False

cnx.connection=ConnectionString
 cnx.open
Il faut incluse la référence
Microsoft Activex data Objects 2.8 Library   ou une version inférieure
Par Projet / Références

Bon courage
labout
0
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
2
Merci de la réponse, malheureusement, ça ne marche pas (quand je le dis que les ordinateurs me maudisent!!!)
Il y a un problème sur la définition de connectionString, je pense que tu as oublié les guillemets, et lorsque je les rajoute, il me dit que la procédure de sortie est invalide
Si je les enlève, il apprécie pas du tout le OLEDB.4.0, et me dit qu'il attend une fin de statement(je traduis, le logiciel est en anglais)
Je sais que c'est chiant, et j'en suis désolé, mais ça fait deux semaines que je cherche, et rien n'a marché jusqu'à maintenant
0
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
2
Bon, j'ai finalement compris qu'il fallait mettre ces instructions dans un sub, malheureusement, ça ne suffit pas, il refuse de faire la connexion si l'objet n'est pas ouvert, et si j'ouvre d'abord l'objet, il me dit ne pas trouver le pilote ISAM, on s'en sort pas!!!!
0
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
2
ok, merci de la réponse si complète!!!
La, je vais me coucher, mais j'essaierai dès demain, je te tiens au courant
Encore merci
0
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
2
C bon, ça marche
Je me permet cependant de faire de petites corrections:
Chez moi, le global, il en veut pas, par contre, Public passe sans problème
Ta chaine de connexion ne marchait pas non plus, mais le truc pour en récupérer une personnalisée est parfaite
Enfin, je ne doute pas une seule seconde que tu sois spécialisé dans ce domaine, mais je doute fort que tu sois le marabout que j'attend, seul capable de résorber la malédiction dont je suis atteint ;-)))

Toujours est-il que je te remercie, je vais envin pouvoir continuer mon travail.
0
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2006
8
très bien, mais je crois que tu as beaucoup à apprendre mais ce n'est plus à moi de le faire
puisque je n'y connais rien et ma chaine de connection ne marche pas c'est.une nouveauté et je ne m'en suis pas aprcçu, un nain doit la corriger en douce.. 

Quant à Global ne marche pas, je te conseilles d'acheter un bouquin de vulgarisation.
VB pour les nuls serait parfait..

labout
0
Messages postés
264
Date d'inscription
dimanche 14 avril 2013
Statut
Membre
Dernière intervention
23 mai 2014
2
Désolé si tu l'as mal pris, le marabout, c'était juste pour rigoler!!!
Et pour me faire pardonner, sache que ta chaine a finalement marché (pas la première fois, mais la deuxième, je cherche pas à comprendre)
Mais global, je suis désolé, il le refuse, il donne une raison que j'ai oubliée. Maintenant, comme j'ai oublié de le préciser (et je m'en excuse) je suis débutant en VB, il est possible que tu ne m'aies pas précisé certaines choses évidentes pour toi, mais qui ne me viendraient pas à l'esprit (en l'occurence, je pense au coup du sub, la première fois, mais j'ai certainement fait d'autres erreurs depuis)
0