[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

  1. J'ai pas compris la question.
    Il est où ton problème ? Tu as ton formulaire, c quoi que tu attends de nous ?
    1. 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. 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. 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. 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
        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. 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!
        4. 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. 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. 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. 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