Connexion à une bd avec ado

hasyoun Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 12 décembre 2008 - 12 déc. 2008 à 18:04
hasyoun Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 12 décembre 2008 - 12 déc. 2008 à 23:16
Bonjour à tous le monde,

bon j'ai un problème pour se connecter à une bd access 2000 avec un mot de passe en utilisant ADO

le problème est comme suit :

 pour se connecter à la base de données j'utilise la chaîne suivante est ca fonctionne :

Public Function GetConnectionString() As String
'GetConnectionString = "Provider=Microsoft.Jet.OlEDB.4.0;data source=" & App.Path & "\gstock.mdb"
' GetConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=gstock;User Id=ADMIN;Password=12300;"
' cette linge fonctionne correctement
GetConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\gstock.mdb;Uid=Administrateur;Pwd=12300;"
End Function

mais pour crystal report 9 ca fonctionne pas
j'ai donnée le chemin de la bd dans une boite de dialogue (OLE DB)
il y a deux zone de texte pour saisir le :
Password :
Jet Data Password :

j'ai saisi le mot de passe mais rien ne s'affiche à l'écran sauf un message d'erreur :

logon faild
source : microsoft jet data engine
description : mot de passe non valide

Note : quand je tape le mot de passe en mode creation il me donne ce message "Data Base update"
mais le password ne se conserve pas il faut le retapez chaque fois en mode création et ca fonctionne pas à l'execution

bon voila le code pour imprimer le report :
Private Sub mnjh_Click()
Dim rs As New ADODB.Recordset

sSQL = "SELECT * FROM Fournisseurs"
Set rs = RunSQLAction(sSQL)

    If Not (rs.BOF And rs.EOF) Then
        ReportFr.DiscardSavedData
       
        Screen.MousePointer = vbHourglass
       
        RptFrs.CRViewer1.ReportSource = ReportFr
        RptFrs.CRViewer1.ViewReport
        RptFrs.CRViewer1.Zoom (75)
       
       
        Screen.MousePointer = vbDefault
        RptFrs.Show
Else
    MsgBox "la tables des fournisseurs est vide!!...", vbExclamation, "Fournisseurs"
End If

merci pour votre aide c'est urgent

6 réponses

cs_zet63 Messages postés 5 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 15 décembre 2008
12 déc. 2008 à 19:41
Bonjour,

Je ne suis pas sur de bien avoir compris ta question.

Il me semble que lorsque tu defini ton mot de passe en mode création tu utilise le gestionnaire de base de donnée de vb.net, en conséquence, il te fait automatiquement l'initialisation de ta source de donnée et ,sauf erreur, cette derniere est accessible directement dans ton code sans passer par une ConnexionString et OleDB.Connect.
En gros si tu as un initialisation par vb qui est engendrée par l'utilisation des outils bdd en mode création et un début d'initialisation manuelle dans ton code tu as peut etre un conflit a ce niveau la.

Si ton probleme est un probleme de mémorisation aprés avoir modifié des données dans ton recordset (qui est une 'image' objet de ta base de donnée mais qui n'y est pas reliée) tu dois bien passer par un recordset.AcceptChanges et utiliser un Dataadapter.Update pour enregistrer. (Ton dataadapter fera la mise a jour entre l'image en mémoire de ta base et le fichier de base de donnée)
0
hasyoun Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 12 décembre 2008
12 déc. 2008 à 20:41
merci pour votre réponse.

mais c pas ca le problème. en plus je travaille sous vb6. et le mot de passe de la base de données je l'ai définis en ms access2003.

alors comme j'ai déja signaler le problème se situe au niveau d'impression c-a-d :
pour créer un etat j'utilise crystal report 9 et dans ce dernier il faut donner le chemin de la bd après ya en dessous deux zones de texte pour saisir le mot de passe de la bd, je l'ai fait mais quand j'exécute le programme et lancer l'aperçu de l'etat il m'affiche un message (celui ci est signalé en dessus dans le prmier msg)
quand je retourne sous vb6 et je fait un clique droit sur le crystalReport(mode création) et je clique sur "Vérifier la bd) je constate que le mot de passe que j'ai saisi n'est enregistrer (le mot de passe pour accéder à la bd)

ce que je demande est c qu'il ya une autre solution par exemple utiliser ODBC.
mais je sais pas comment ca fonctionne
merci encore une fois pour votre aide
 
0
cs_zet63 Messages postés 5 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 15 décembre 2008
12 déc. 2008 à 20:58
Si j'ai bien compris le probleme est une demande d'identification / perte de droits non pas lors de la connexion mais lors de la demande de génération / impression du rapport.

Avec la chaine suivante :

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
vous chargez un driver ODBC justement !

Par contre il y a quelques subtilités au niveau des acces partagés et de la sécurité, exemples ici : http://www.connectionstrings.com/access, c 'est peut etre la qu'il faut chercher.
Bon courage :)
0
hasyoun Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 12 décembre 2008
12 déc. 2008 à 22:06
merci beaucoup, c bon c fait
merci encore une fois pour votre aide. vraiment c très gentil de ta part

For i = 0 to 1000000000
             merci
Next i
0

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

Posez votre question
cs_zet63 Messages postés 5 Date d'inscription lundi 8 décembre 2008 Statut Membre Dernière intervention 15 décembre 2008
12 déc. 2008 à 23:02
C'était donc un paramètre de la chaine de connexion ?
0
hasyoun Messages postés 4 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 12 décembre 2008
12 déc. 2008 à 23:16
oui est excactement le site que tu m'a donné contient des chaînes de connexion avec des parametres tel que (Exclusive) et (ExtendedAnsiSQL)
et bien sure j'ai fait d'autres recherche et d'autres modifications
allez merci et bonne fin journé
0
Rejoignez-nous