IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Faire un formulaire de recherche


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut Faire un formulaire de recherche
    Bonjour à tous,

    Je souhaiterais réaliser une recherche dans mon formulaire, mais le seul hic, c'est que je n'en ai jamais fait (des recherches), et ne sait donc pas comment m'y prendre.

    Ce que je désirerais réaliser, est en fait un formulaire dans lequel l'utilisateur saisi soit le nom, soit le prénom ou alors les deux et après avoir pressé le petit bouton "rechercher", miracle, tout les enregistrements correspondant s'affichent dans une liste (située également dans le formulaire).

    Je m'imagine que je devrai faire appel à une requête, mais aurais-je meilleur temps de réaliser le tout en VBA ou bien il y a une façon simple d'y arriver? (dans le cas du VBA, je ne suis pas une star non plus donc n'hésitez pas à donner un max d'indications.)

    Merci bien à vous tous.

    Cyriusix

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Bonjour,
    pour ceci : une lecture s'impose
    http://cafeine.developpez.com/access...echerchemulti/

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Super, merci beaucoup.

    Je reviendrai si j'ai encore quelques doutes.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Première question:

    mon formulaire contient deux textbox (txtNumCamp et txtNomCamp) et je désirerai qu'un fois que je les remplis, (l'un ou l'autre), ma recherche s'effectue et affiche dans ma listebox le résultat..

    Malheureusement, ca m'affiche la ligne de code SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT NumCamp, NomCamp, DateCamp FROM tblCamp Where tblCamp!IDCamp <> 0 "
    Donc tout porte à croire qu'il me manque quelque chose d'essentiel afin que la requête s'effectue..

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub txtNumCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
     
    Private Sub txtNomCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
     
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT NumCamp, NomCamp, DateCamp FROM tblCamp Where tblCamp!IDCamp <> 0 "
     SQL = SQL & "And tblCamp!NumCamp = '" & Me.txtNumCamp & "' "
     SQL = SQL & "And tblCamp!NomCamp like '*" & Me.txtNomCamp & "*' "
     
     
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Me.lstListeCamps.RowSource = SQL
     Me.lstListeCamps.Requery
     
    End Sub
    Des suggestions?

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    J'ai trouvé la source de mon problème... c'était que ma listbox attendait une liste de valeur et non pas une requête.. donc ceci est réglé (merci Starec, j'ai trouvé ca grace à toi dans un vieux post.. )

    enfin bref.. mon formulaire ne marche pas pour autant..

    Voila ce que j'ai actuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub txtNumCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
     
    Private Sub txtNomCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
     
    Private Sub RefreshQuery()
     
     Dim SQL As String
     Dim SQLWhere As String
     
     Me.lstListeCamps.RowSource = "SELECT NumCamp, NomCamp, DateCamp FROM tblCamp Where tblCamp!IDCamp <> 0 And tblCamp!NumCamp = '" & Me.txtNumCamp & "' And tblCamp!NomCamp like'*" & Me.txtNomCamp & "*';"
     
     Me.lstListeCamps.Requery
     
    End Sub
    j'arrive à trouver un résultat dans ma ListeCamp, mais il ne correspond pas à ce que j'attend. Car il n'affiche que le NumCamp à la place d'afficher le numCamp, le NomCamp ainsi que la DateCamp.

    Et de plus, cela ne fonctionne plus ou moin qu'avec txtNumCamp car avec txtNomCamp, il n'affiche simplement rien.

    La clé du problème se trouve peut-être au point suivant, mais je n'arrive pas à le résoudre: quand j'ouvre mon formulaire, apparait un message d'erreur indiquant: "Erreur de syntaxe (virgule) dans l'expression '(NumCamp, NomCamp, DateCamp)'.

    Quelqu'un peut m'aider?

    Merci d'avance.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    Pour l'affichage c'est juste un problème de Nbre de colonnes affichées par la liste. Voir dans les propriétés.

    Les simples cote ' avec like à éviter, utiliser les double cote et les doubler.

    La langue française utilise la simple cote on l'appelle apostrophe (comme l'émission soporiphique éponime) se serait dommage d'y tomber dessus dans la table. Sauf moteur autre que Jet.

    Pour l'erreur de syntaxe il faut peut-être lui spécifier que tu vas avoir une source Table/Requete au lieu de Liste de valeur.

    Cordialement,

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    le nombre de colonnes.. aieaieaie.. et je n'y avais pas pensé. Merci beaucoup.

    Donc déja un bon point.. mais reste le message d'erreur et le fait qu'avec le NomCamp ça ne va toujours pas.

    J'ai essayé de remplacer les simple cote par les double, et ca m'envois en débogage.

    Une idée?

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Pour les doubles cotes c'est qu'elles sont mal placées ou pas compléte...

    Pour NumCamp si c'est du numérique il ne faut JAMAIS utiliser les cotes ou double cote... c'est pour le texte ou les dates

    Cordialement,

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Je n'ai que deux simple quote à remplacer.. je le fais simplement et ca me met automatiquement un espace de plus.

    Pour ce qui est du NumCamp, il est bien en texte.. je sais le nom n'est pas très explicite mais c'est histoire d'avoir un numéro d'immatriculation.

    En plus de cela, je ne comprend pas pourquoi, mais de temps en temps il y a un résultat et juste après, plus rien.. quelqu'un aurait-il quelques chose d'un peu plus fiable que la façon que j'utilise?

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Il faudrait voir ce qu'il te génère comme chaine SQL. Donc mettre un point d'arret sur la ligne recordsource et faire un debug.print de la variable contenant la dite chaine.

    là c'est un peu comme faire de la divination avec des entrailles de poulet...

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    J'aime bien l'idée de la divination.. ya-t-il des personnes pratiquante dans les environs?

    Mais y aurait-il quelqu'un qui pourait me proposer une autre solution? car de toute évidence ma façon de faire n'est pas terrible.. mais je vais quand meme faire un point d'arrêt histoire de voir ce qui sort.

    Merci bien Loufab.

  12. #12
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut
    Il n'y a PAS d'autre solution que de faire un debug.print!

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tAKAmAkA Voir le message
    Il n'y a PAS d'autre solution que de faire un debug.print!
    Si par une MsgBox, mais selon la longueur de la chaine, tu as le risque que celle-ci soit tronqué.
    Le but de est de voir, la chaine SQL définitive, avec les valeurs des paramètres, etc.. On voit mieux les erreurs (un espace, une quote, etc...)

    Starec

  14. #14
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Très bien merci, je vais voir ce que je peux faire. A plus tard

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bon de toute évidence je ne m'en sort pas. Alors si vous le permettez, je vais reprendre depuis le début.

    Objectifs: Je désire réaliser un formulaire de recherche qui me permettrait de rechercher des camps afin de pouvoir gérer le camp en question qui m'intéresserait.

    J'ai donc comme interface utilisateur la possibilité d'entrer soit le numéro d'immatriculation du camp (txtNumCamp (champ mis en texte)) soit le nom du camp (txtNomCamp) je désirerai que la recherche sur le numcamp soit uniquement ce qui est entré (c'est à dire que si je met "tac08" il ne me trouve que le camp "tac08" et pas de "tac081") et pour le nom camp, qu'il prenne tout ce qui commence par les données insérées par le client. (si "tac" écrit, ok pour "tachi" ou "tac08" par exemple)

    Une fois que les données pour la recherche sont inscrites, il faut que la recherche se fasse et qu'elle inscrive les champs "NumCamp, NomCamp, DateCamp" de la table "tblCamp".

    Pour le moment je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub txtNumCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
     
    Private Sub txtNomCamp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
     
    End Sub
    Pour que la recherche commence sans boutons

    et mes requêtes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub RefreshQuery()
     
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT NumCamp, NomCamp, DateCamp FROM tblCamp Where tblCamp!IDCamp <> 0"
     
     SQL = SQL & "And tblCamp!NumCamp = '" & Me.txtNumCamp & "' "
     
     SQL = SQL & "And tblCamp!NomCamp like ' * " & Me.txtNomCamp & " * ' "
     
     Me.lstListeCamps.RowSource = SQL
     
     Me.lstListeCamps.Requery
     
    End Sub
    Voila, étant donné que je ne m'en sort pas avec mon code, est-ce que quelqu'un pourait me proposer quelque chose?

    PS: je remarque que je parle plus de VBA que de formulaire en soit, alors s'il faut que je déplace mon post, dite le moi.. je ne voudrais pas embêter..

    Merci d'avance de toute aide.. j'en ai bien besoin.

    Cyriusix

  16. #16
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bon voila, dsl de vous avoir embêter.. j'ai résolu la situation en ajoutant simplement un petit bouton pour lancer la recherche et ensuite le reste est allé tout seul.

    Merci pour votre aide.

    Cordialement,
    Cyriusix

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire de recherche évolué : comment faire ?
    Par pontus21 dans le forum Spring Web
    Réponses: 3
    Dernier message: 24/04/2009, 15h38
  2. formulaire de recherche comment faire!
    Par sansancool dans le forum IHM
    Réponses: 6
    Dernier message: 15/04/2008, 22h17
  3. Réponses: 1
    Dernier message: 11/01/2008, 04h57
  4. Comment faire ??? Sous formulaire ? Autre ?
    Par Zotto dans le forum IHM
    Réponses: 11
    Dernier message: 14/06/2005, 15h53
  5. [VB.NET] [PPC] Comment faire un formulaire sur pls pages?
    Par papy27 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 03/06/2004, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo