Problème de requete avec DSN

Résolu
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009
- 3 juil. 2009 à 09:55
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009
- 3 juil. 2009 à 11:27
Bonjour,

Je suis en train de développer une application qui doit chercher des informations dans une base de donnée en utilisant DSN.
Avec DAO tout fonctionnais bien mais là j'ai le droit a des erreurs.

Voici le code en question:

    Dim sql As String
    Dim m_AdoCnn As ADODB.Connection
    Set m_AdoCnn = New ADODB.Connection
    Dim rs As New ADODB.Recordset

    m_AdoCnn.Provider = "Microsoft.Jet.OLEDB.4.0"
    m_AdoCnn.ConnectionString = BaseChoisie.Caption
    m_AdoCnn.CursorLocation = adUseNone
    m_AdoCnn.Open

     sql = "SELECT CodeArticle, NumeroLigne, Designation, DateDocument FROM LigneFacture WHERE CodeArticle LIKE '" & texte_rech & "*'"

     rs.Open sql, m_AdoCnn, adOpenDynamic

     MsgBox rs.Fields(0).Count, vbInformation, "test"   ' Retourne 4
     MsgBox rs.Fields(0).Name, vbInformation, "test"   ' Retourne CodeArticle
     MsgBox rs.Fields(0).Value, vbInformation, "test"

rs.Close
m_AdoCnn.Close

Arrivé a la 4eme box j'ai cette erreur : BOF ou EOF est égal à true ou l'enregistrement actuel à été supprimé.

Je sais que dans ma base j'ai le code que je recherche.

Merci

9 réponses

cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009

3 juil. 2009 à 11:18
J'ai trouvé, avec DSN il faut remplacer les * par des % pour la recherche avec LIKE =)

Merci
3
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
3 juil. 2009 à 10:46
Avant le deuxième MsgBox, fait MsgBox rs.EOF
Si c'est = à true, c'est que l'enregistrement est vide.
0
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009

3 juil. 2009 à 10:48
Oui dans mon code j'y ai pensé je l'ai mis sauf que... j'ai aucune donnée retrounée... alors que avec DAO je les avais...

Donc d'ou viens le problème ?
0
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
3 juil. 2009 à 10:55
La condition du WHERE n'est pas respectée ...
Ta base n'est pas vide, par hasard ?
0

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

Posez votre question
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009

3 juil. 2009 à 10:56
Non j'ai ouvert ma base avec MS ACCESS et j'ai pris directement le code dedans... j'ai une version avec DAO et une version avec DSN, avec DAO j'ai des résultats...
0
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009

3 juil. 2009 à 11:03
En faisant des test je vois que ça viens du LIKE... il y a t-il une syntaxe differente ?
0
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
3 juil. 2009 à 11:17
Que contient texte_rech ?
C'est un textbox ? Si c'est le cas, utilise texte_rech.Text ...
D'autre part, s'il y a des guillemets, tu dois les doubler :

Public Function Pure(S As String) As String
 Pure = Replace(S,"'","''")
End Function
...
sql = "SELECT CodeArticle, NumeroLigne, Designation, DateDocument
FROM LigneFacture WHERE CodeArticle LIKE '" & Pure(texte_rech.Text) & "*'"
0
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
3 juil. 2009 à 11:22
Avec ADODB, plutôt.
C'est logique, et le pire c'est que je m'en sers ...
Accepte ton dernier post, ça permettra aux autres de ne plus faire la même erreur !
0
cs_donutz
Messages postés
9
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
3 juillet 2009

3 juil. 2009 à 11:27
Au passage, j'aurais une autre question, comment faire pour afficher une image dans un bouton lorsqu'il est désactivé ?
Merci
0