Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 2014
-
1 mai 2006 à 15:28
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 2014
-
2 mai 2006 à 21:06
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
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...
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 1 mai 2006 à 21:10
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
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 1 mai 2006 à 19:35
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
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 1 mai 2006 à 19:55
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
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 1 mai 2006 à 20:22
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!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 2 mai 2006 à 19:43
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.
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 2 mai 2006 à 20:48
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..
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 2 mai 2006 à 21:06
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)