none
requete qui ne fonctionne pas RRS feed

  • Question

  • Bonjour,

    Je travaille en vb.net avec une base access. C'est la raison pour laquelle je met aussi ma question sur ce forum.

    J'ai une base access dont je veux récupérer les valeurs nom d'une table client à l'aide d'un Like une valeur entrée préalablement par l'utilisateur dans mon appli. J'ignore si je suis très claire... en gros, vous tapez les premières lettre d'un nom, et la requête est censée récupérer tous les noms commençant par ces lettres dans la table client.

    Mon code est donc le suivant :

                sth = TextBoxRechercheCliInsertContrat.Text & "*"
                sthmaj = TextBoxRechercheCliInsertContrat.Text.ToUpper & "*"
                Maconnexion.Open()
                Marequete.Connection = Maconnexion
                Marequete.CommandText = "select FacNom From Client Where FacNom Like '" & sth & "' Or FacNom Like '" & sthmaj & "' Order by FacNom asc"
                Mesresultats = Marequete.ExecuteReader
                While Mesresultats.Read
                    nbligne = nbligne + 1
                    VueClientsNveauContrat.Rows.Add(Mesresultats.GetString(0))
                End While
                Mesresultats.Close()

    Le problème est que l'appli se comporte comme si il n'y avait aucun enregistrement! Dans le créa de requête d'Access, ça marche, il me retourne une quinzaine d'enregistrements, mais à partir de l'appli, il n'en retourne aucun.

    Dire que ça m'énèrve serait bien en deçà de la vérité, mais je tiens à rester polie.

    Quelqu'un aurait-il une idée de ce qui se passe???

    Cordialement


    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!
    jeudi 17 février 2011 16:30

Réponses

  • Bonjour,

    En fait, j'ai fini par trouver...

    Il faut remplacer les "*" par des "%"... Bizarrement, Access gère les "*" quand on crée une requête sql directement, mais pas quand elle vient d'un appli en vb...

    Allez comprendre! C'est encore pire qu'une crise existentielle ce truc!!!

    Cordialement


    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!
    • Marqué comme réponse guznat jeudi 17 février 2011 17:11
    jeudi 17 février 2011 17:10

Toutes les réponses

  • Bonjour Guznat,

    Je ne me casse pas la tête, j'utilise ADODB :

    Bien à tois,
    Blaise
    Dim CN As New ADODB.Connection

    Dim Rst As New ADODB.Recordset

    CN.Provider = "Microsoft.Jet.OLEDB.4.0"

    CN.Open("Chemin et nom de la base")

    Rst.Open("Table ou requête ou code SQL", CN, ADODB.CursorTypeEnum.adOpenStatic) 'openstatic pour le recordcount

    For J = 0 To Rst.RecordCount - 1

    ...

    next

    jeudi 17 février 2011 16:45
  • HEIN?????????????????????????????????
    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!
    jeudi 17 février 2011 16:54
  • Bonjour,

    En fait, j'ai fini par trouver...

    Il faut remplacer les "*" par des "%"... Bizarrement, Access gère les "*" quand on crée une requête sql directement, mais pas quand elle vient d'un appli en vb...

    Allez comprendre! C'est encore pire qu'une crise existentielle ce truc!!!

    Cordialement


    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!
    • Marqué comme réponse guznat jeudi 17 février 2011 17:11
    jeudi 17 février 2011 17:10
  • Hé là,

    On ne dit pas "HEIN", c'est pas poli ;-)

    ADO c'est « ActiveX Data Objects » : http://fr.wikipedia.org/wiki/ActiveX_Data_Objects

    Le code que je t'ai montré fonctionne fort bien, 24 X par jour, 7 jours sur 7.

    Maintenant, le " %" à la place de "*", c'est, il est vrai, vicieux.
    Pour mon info, le fichier Access est-il un ADP (lié à une base SQL Server) ?

    Bien à toi

    <guznat> a écrit dans le message de news: 1c8e817e-8b15-4bd6-8d2e-380409f234f1@communitybridge.codeplex.com...

    HEIN?????????????????????????????????


    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!

    jeudi 17 février 2011 18:00
  • Bonjour,

    Navrée pour mon impolitesse, heureusement non chronique et non contagieuse...

    Non, le fichier Access n'est pas lié à une base sqlserver. J'eusse préféré d'ailleurs travailler avec sqlserver que je trouve beaucoup plus simple à manipuler, mais que voulez-vous, la vie est parfois si dure...

    Cordialement


    Celui qui ne sait rien en sait autant que celui qui n'en sait pas plus!!
    vendredi 18 février 2011 09:33
  • Pour la simplicité, cela dépend d'où on vient :

    J'ai débuté en informatique en autodidacte à une époque où le réseau d'entreprise était quasi inexistant et largement hors de prix [et où les modems acoustiques étaient à 75/300 bauds à plus de 700 ? d'époque (début années 80)].
    Bon donc, la notion client / serveur j'ai commencé à l'appréhender dans la 1ère moitié des années 90, mais plutôt intéressé par le côté client.
    Et pour les SGBD(R) : "Profile" sur TRS-80, puis dBase, puis un creux et puis Access v2 ... 2007.  Sans compter une programmation de gestion de stock et de vente en QB 4.5, ancètre de VB 1 & C°

    Ayant dû migrer une base vers SQL Server, j'ai doulouresement remarqué que je n'avais plus la souplesse d'Access et ce, paradoxalement, dans un environnement multi-utilisateurs.  Bien entendu, la base est plus solide et sécurisée, mais, pour une bonne dizaine d'utilisateurs, les performances sont moindres.

    a+,
    Blaise

    vendredi 18 février 2011 17:58