Difficultées avec un formulaire Ms access

Tilk -  
zenon Messages postés 729 Statut Membre -
Bonjour,

je suis en face d'un formulaire sous microsoft access qui contient deux objets : une zone de texte independante et un bouton de commande qui doit ouvrir un formulaire.

je voudrais que le bouton de commande n'ouvre son formilaire qu'apres test et validation de l'entrée de la zone de test !!!

Comment faire ?

4 réponses

  1. darwin42 Messages postés 265 Statut Membre 67
     
    salut, si j'ai bien compris ce que tu voulais :

    précision --> je ne me souviens plus vraiment de la syntaxe VBA, mais ça doit donner un truc du style...

    If Text1.Text<>"" Then
    Docmd.Open "MonFormulaire"
    End

    ou si l'utilisateur doit rentrer une valeur particulière dans le champs :

    If Text1.Text="mavaleur" Then
    Docmd.Open "MonFormulaire"
    End
    0
  2. Tilk
     
    Slt darwin42 !

    j'ai testé ton code mais il me renvoi une erreur
    "impossible de faire reference à une propriete ou de la definir pour un controle si ce dernier n'est pas activé"
    voici la procedure en question
    "Private Sub Commande2_Click()
    On Error GoTo Err_Commande2_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    If Texte0.Text = "private" Then
    DoCmd.OpenForm "Menu"
    End If
    Exit_Commande2_Click:
    Exit Sub
    Err_Commande2_Click:
    MsgBox Err.Description
    Resume Exit_Commande2_Click

    End Sub

    Que faut il faire? une idée ?

    merci à tous
    0
    1. darwin42 Messages postés 265 Statut Membre 67
       
      au lieu de : If Texte0.Text = "private",


      met plutot

      If Texte0= "private" j'ai testé, ça marche
      0
  3. Tilk
     
    Merci Darwin42

    c'est bon merci baucoup ca marche
    Mais je voudrais aller plus loin !
    je voudrais qu'au lieu de faire la comparaison avec la valeur fixe "private" dans le code, que cette comparaison soit faite avec une valeur dans un champs d'une table par ex: le champs "Nom" de la table "CLIENT"
    comment s'y prendre ?

    Merci
    0
    1. Utilisateur anonyme
       
      Bonjour,

      il faut que tu utilises la fonction dlookup.

      DLookup("ton_champ", "ta_table", "ton_critère")
      0
  4. zenon Messages postés 729 Statut Membre 180
     
    On peut faire mieux, je pense

    Par exemple en créant avec l'assistant une zone de liste modifiable fondée sur la table clients (incluant au moins la clé primaire (cachée) et le nom du client)

    et, dans les propriétés, sur clic, une macro ou du code permettant d'ouvrir le formulaire client au bon enregistrement:

    DoCmd.OpenForm "NomDuFormulaire",,"Forms!NomDuFormulaire!N°Client=ListeModifiable"
    0