Réglage d'un problème de compilation

cs_lecorse2b Messages postés 16 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 24 mai 2005 - 21 mai 2005 à 14:52
cs_lecorse2b Messages postés 16 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 24 mai 2005 - 23 mai 2005 à 19:57
Salut à tous,

Voici le code que j'ai écrit dans le bouton "recherche" depuis le formulaire Form4 (se composant de 2 check box et d'un bouton recheche) pour ouvrir la feuille nommée Form8 (liée à la base par une data) ou je veux avoir accès à toutes les données correspondant au nom ou au prénom entré par l'uilisateur::


Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim fld As ADODB.Field
Dim clause_where As String
Dim OK As Integer
Dim passage As Integer
Dim nb_trouver As Integer
Dim rep As Integer

OK = 0
passage = 0
nb_trouver = 0



'***Ecriture de la clause where en fonction des choix de l'opérateur
If Check1.Value = 1 Then
clause_where = "[Nom Du Client] LIKE'%" & Replace(Text1, "'", "''") & "%'"
passage = 1
End If

If Check2.Value = vbChecked Then
If passage = 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "[Prenom Du Client] LIKE '%" & Replace(Text2, "'", "''") & "%'"
Else
If passage = 0 Then
clause_where = clause_where & "[Prenom Du Client] LIKE '%" & Replace(Text2, "'", "''") & "%'"
passage = 1
End If
End If

If passage = 0 Then
rep = MsgBox("Vous avez mal formulé votre recherche", vbOKOnly + vbExclamation, "Erreur")
GoTo Fin
End If
'***Fin écriture clause WHERE*********
'***Ouverture de la connection***
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source= ".\Base.mdb;" 'erreur de syntaxe que je ne sais pas résoudre.

'***On regarde si la requete retourne un résultat***
rst.Open _
"SELECT * FROM [Fiche du client] where " & clause_where


If rst.RecordCount > 0 Then
Form8.Show
Form6.Hide
Else
rep = MsgBox("Aucun résultat ne correspond au(x) critère(s) de recherche", vbOKOnly + vbExclamation, "Aucun résultat")
End If


Fin:
End Sub

Auriez vous un conseil ou une solution? Merci par avance.

4 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
21 mai 2005 à 17:33
Salut, ton probleme vient du fait que tu ne peux pas mettre un simple " dans entre deux autres "
Par exemple: dodo = "titi" ' ça marche
mais: dodo="ti"ti" ne va pas marcher...
Il faut donc remplacer " par "": dodo = "ti""ti"

Je sais pas si j'ai été très clair lol. Mais pour résoudre ton pb, remplace:
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source= ".\Base.mdb;"
par:
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source= "".\Base.mdb;"""


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
cs_lecorse2b Messages postés 16 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 24 mai 2005
21 mai 2005 à 17:50
Salut Warning,



J'ai bien compris ce que tu as écrit, mais peut être me suis je mal exprimé. Le message que j'ai est le suivant :



Format of the initialization string does not conform to the OLE DB specification.



Je travaille avec access 2000 et la base est liée à Form8 avec une
data. Je ne comprends pas ce qui le gêne. As tu une idée de savoir
pourquoi un tel message? Peut être n'ai je pas spécifié quelque chose?
Pourrais tu m'aider?
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
21 mai 2005 à 19:40
Il y avait de toute façon une erreur de syntaxe a corriger avant d'obtenir celle que tu nous a montré là.
Essai ça:
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"


dbPath = App.Path & "\ Base.mdb"
cnn.ConnectionString = "Data Source=" & dbPath
cnn.Open


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
cs_lecorse2b Messages postés 16 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 24 mai 2005
23 mai 2005 à 19:57
Salut Warning,

Excuse moi de te déranger encore une fois mais j'ai encore un souci avec le code suivant :


Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim fld As ADODB.Field
Dim clause_where As String
Dim OK As Integer
Dim passage As Integer
Dim nb_trouver As Integer
Dim rep As Integer

OK = 0
passage = 0
nb_trouver = 0



'***Ecriture de la clause where en fonction des choix de l'opérateur
If Check1.Value = 1 Then
clause_where = "[Nom Du Client] LIKE'%" & Replace(Text1, "'", "''") & "%'"
passage = 1
End If

If Check2.Value = vbChecked Then
If passage = 1 Then
clause_where = clause_where & " AND "
clause_where = clause_where & "[Prenom Du Client] LIKE '%" & Replace(Text2, "'", "''") & "%'"
Else
If passage = 0 Then
clause_where = clause_where & "[Prenom Du Client] LIKE '%" & Replace(Text2, "'", "''") & "%'"
passage = 1
End If
End If

If passage = 0 Then
rep = MsgBox("Vous avez mal formulé votre recherche", vbOKOnly + vbExclamation, "Erreur")
GoTo Fin
End If
'***Fin écriture clause WHERE*********
'***Ouverture de la connection***
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source= ".\Base.mdb;"

'***On regarde si la requete retourne un résultat***
rst.Open _
"SELECT * FROM [Fiche du client] where " & clause_where


If rst.RecordCount > 0 Then
Form8.Show
Form6.Hide
Else
rep = MsgBox("Aucun résultat ne correspond au(x) critère(s) de recherche", vbOKOnly + vbExclamation, "Aucun résultat")
End If


Fin:
End Sub

Je ne comprends pas comment faire pour résoudre le problème (car aparamment, j'ai le même message). Peux tu m'aider une nouvelle fois?

Merci par avance.
0
Rejoignez-nous