[Access 2000][Formulaire] help!!!!!!!!!!!!

salut!!
j'ai vraiment besoin d'aide, c'est assez urgent !!!!
alors voila, j'ai un formulaire qui permet de chercher un dossier soit par son nom soit par son numéro
le numéro est précis mais si la recherche se fait par le nom c'est inéxacte c'est à dire que je peux taper h et avoir tous les noms qui sont composés de h
alors je devrai faire cela dans une requete que j'appelle à l'aide d'un bouton
au fait je travail sur access 2000
merci de repondre

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. j'étais entrain de tester, et donc j'ai fait 2 requetes diferentes mais dans le code du formulaire j'ai fait une condition, selon ce qui est saisie ouvrir telle requete
    voila merci encore
    bye
    1. Salut nad,

      Je te donnes un exemple:

      gLink = "[DR-NOM] Like " & " '* " & Me![Nom].Value & " * ' " DoCmd.OpenForm stDocName, , , gLink

      !!! Attention aux single et double quotes
      Explication: gLink est le string contenant le critère de sélection. [DR-NOM] est le nom du champ "nom" dans ma table contenant les données. Me![Nom].Value est le champ "nom" de mon formulaire.

      DoCmd.OpenForm stDocName, , , gLink donne l'instruction d'ouvrir le form en utilisant comme critère de sélection gLink.

      Bonne chance

      Rien n'est plus dangereux qu'une idée quand on a 
      qu'une idée  :-)
      1. Le plus simple, c faire 2 champs de recherche : 1 pour le nom et un pour le numéro.
        Le plus compliqué, c de vérifier la saisie, du genre si le champ contient un chiffre, c une recherche par numéro donc requête numéro, sinon, c une recherche par nom, donc recherche par nom.
        Je ne vois pas comment faire d'autre sur le coup.
        @+
        1. au fait j'ai encore un petit hic pour ma requete
          SELECT dossier.numdos, dossier.numcarton, dossier.date_envoi, LigneCommande.date_reception, LigneCommande.date_Renvoi, TypePiece.lib_typepiece, Commande.date_cmde, Commande.date_réalisation, Utilisateur.nom, Utilisateur.prénom, Utilisateur.service, dossier.nomdos
          FROM Utilisateur INNER JOIN (TypePiece INNER JOIN (dossier INNER JOIN (Commande INNER JOIN LigneCommande ON Commande.num_cmde = LigneCommande.num_cmde) ON dossier.numdos = LigneCommande.numdos) ON TypePiece.code_typepiece = LigneCommande.code_typepiece) ON Utilisateur.code_u = Commande.code_u
          WHERE (((dossier.numdos)=[Formulaires]![recherchedos]![Nudosrecherche])) or (((dossier.nomdos) Like "*" & [Formulaires]![recherchedos]![Ndosrecherche] & "*"));

          Les deux conditions ne sont pas réalisées, il y en a qu'une qui se realise c'est celle avec le nom.
          Si j'essaie avec le numéro, ça m'affiche tous les dossiers et pas seulement le dossier que j'ai demandé
          voila merci
          1. Tu me rassures que ça marche.
            Essaies-ça :

            WHERE (((dossier.nomdos) Like "*"&[Formulaires]![recherchedos]![Ndosrecherche]&"*"));
            1. super ça marche !!!
              merci beaucoup
            2. Excuses, je le savais aussi mais j'avais oublié des bribes au passage... Cela ne pouvait qu'être cela voyons!

              Et 1 tournevis, 1.
              Quand bnb picole, Les autres racollent!
          2. Et si tu essayais 1 truc du style: WHERE (((dossier.nomdos) Like '*[Formulaires]![recherchedos]![Ndosrecherche]*'));

            OU BIEN

            Et si tu essayais 1 truc du style: WHERE (((dossier.nomdos) Like "*[Formulaires]![recherchedos]![Ndosrecherche]*"));

            Et 1 tournevis, 1.
            Quand bnb picole, Les autres racollent!
            1. non les 2 ne marchent pas
          3. Si dans ton formulaire du tapes dup*, ça marche pas ?
            1. oui ça marche, mais le probleme c'est que l'utilisateur devra taper à chaque fois *, on peut faire quelque chose dans le sql pour que l'utilsateur n'ait pas à le saisir
          4. Et si dans ton champs de formulaire tu mets une * soit avant, soit après, soit les 2 ?
            exemple tu cherches tous les noms commençant par DUP, tu saisis DUP*.
            1. Et si tu essayais 1 truc du style: WHERE (((dossier.nomdos) Like *[Formulaires]![recherchedos]![Ndosrecherche]*));

              Et 1 tournevis, 1.
              Quand bnb picole, Les autres racollent!
              1. j'ai une erreur du genre "operateur absent dans l'expression
            2. j'explique ce que doit faire mon formulaire
              soit l'utilisateur entre le nom du dossier cherché soit son numéro
              la recherche concernant le numéro doit être exacte mais celle concernant le nom peut être approximative

              ce que j'attends de vous c'est une aide pour pouvoir faire cette recherche approximative
              come j'ai un bouton dans le formulaire qui execute une requete je vous montre ce que j'ai fait
              SELECT dossier.numdos, dossier.numcarton, dossier.date_envoi, LigneCommande.date_reception, LigneCommande.date_Renvoi, TypePiece.lib_typepiece, Commande.date_cmde, Commande.date_réalisation, Utilisateur.nom, Utilisateur.prénom, Utilisateur.service, dossier.nomdos
              FROM Utilisateur INNER JOIN (TypePiece INNER JOIN (dossier INNER JOIN (Commande INNER JOIN LigneCommande ON Commande.num_cmde = LigneCommande.num_cmde) ON dossier.numdos = LigneCommande.numdos) ON TypePiece.code_typepiece = LigneCommande.code_typepiece) ON Utilisateur.code_u = Commande.code_u
              WHERE (((dossier.nomdos) Like [Formulaires]![recherchedos]![Ndosrecherche]));
              pour l'instant j'essaie de faire la recherche approximative
              mais avec ça ça ne marche pas alors voila
              merci
              1. J'ai pas compris la question.
                Il est où ton problème ? Tu as ton formulaire, c quoi que tu attends de nous ?