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 :

Problèmes événement access


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2016
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problèmes événement access
    Bonjour ,

    Je débute dans le monde d' Access ,

    Et j'ai quelques petits problèmes dont je bloque depuis un bon moment dessus dont je n'ai aucune idée de comment les résoudre ,

    Alors voila, j'ai pour projet de crée un devis que je pourrait convertir en pdf par la suite . Après plusieurs essais j'ai vite comprit qu'il fallait que je fasse un état car il sont fait exprès pour.

    Mon projet est donc composée d'un formulaire et d'un état. Pour le convertir je cherche donc a "structurer" mon devis depuis le formulaire (rentrer les champs ) et que l'état puissent récupérer les champs .

    Mes problèmes sont les suivant :

    Le premier est que je ne sais pas comment enregistrer un événement , c'est a dire dans mon formulaire je fait en sorte que si le prix Ht est <= 5000€ alors mes conditions (dans un sous formulaire) ne s'affichent pas sinon elle s'affichent j'ai donc tapé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Prix_HT_AfterUpdate()
    If Me.Prix_HT >= 5000 Then
         Me.[T_Condition sous-formulaire].Form.Visible = True   (sous - formulaire ;) )
    Else
         Me.[T_Condition sous-formulaire].Form.Visible = False
    End If
    End Sub
    cela marche bien mais lorsque je ferme mon formulaire peut importe le prix(qui est bien rentrer dans la base de données) le sous-formulaire(avec les conditions) réapparaît je pense que c'est parce que je suit en après maj est qu'il attend mon clic du coup je ne sais pas quelle événement et le plus adapter pour cette situation ? (ex: si j'avais rentrer 20 € le devis , lorsque je r'ouvre le formulaire le sous formulaire n’apparaît pas ^^)

    Ensuite je veut faire la même chose pour l'état mais je n'est aucune idée de la structure de la fonction

    J'ai donc tenter de taper ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Prix_HT_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If [Prix_HT] <= 5000 Then
    [S/E_condition] .Visible = False   (le sous état ;))
    Else
    [S/E_condition].Visible = True
     
    End If
    End Sub
    encore une fois sans succès

    Enfin ma dernière question est , est ce qu'il est possible de récupérer la valeur d'un champ du formulaire depuis un sous formulaire ?
    Car je voudrait récupérer le nom de l'entreprise sur le formulaire "depuis" mon sous formulaire pour que mes champs se remplissent tous seul par rapport a l'entreprise récupérer dans le formulaire (pour sa j'ai crée un champs entreprise formulaire , et Entreprise pour le sous formulaires )

    Je suis vraiment dans la panade pour le coup , si vous avez une petite astuce ?

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 166
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour que le sous-formulaire ne s'affiche que dans le cas où une valeur supérieure à 5000 ait été encodée, il faut au niveau de la création du formulaire indiquer en propriété du sous-formulaire Visible: non
    Idem pour le sous-état.
    A noter, qu'une fois un "formulaire" fait, il est possible de le convertir en "état" en passant par le ruban: Fichier / Enregistrer l'objet sous ... et sélectionner En tant que: état.

    Récupérer la valeur d'un champ du formulaire depuis un sous formulaire.
    Assez inhabituel, mais possible. Après mise à jour du champ dans le sous-formulaire, utiliser la routine AfterUpdate() du champ NomSoc du sous-formulaire pour modifier la valeur du champ NomSociete qui se trouve dans le formulaire. Quelque chose de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomSoc_AfterUpdate()
       Me.Parent.NomSociete = Me.NomSoc
    End Sub
    Bonne continuation.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2016
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Re petit problèmes
    Bonjour,

    Avant tout merci pour avoir répondu

    Grâce à l'astuce du sous-formulaire non visible cela fonctionne bien

    Mais je n'ai peut-être pas compris ^^

    Y'a juste pour les sous-états que cela ne fonctionne pas

    J'ai donc tapé la fonction sur le Prix Ht (événement sur clik) suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Prix_HT_Click()
    If [Prix_HT] <= 5000 Then
    [S/E_condition] .Visible = False
    Else
    [S/E_condition].Visible = True
     End If
    End Sub
    Cela surbrille : .visible en disant révérence incorrecte ou non qualifiée ai-je fait une erreur de syntaxe ?

    J'ai bien mis le sous-état non visible


    Pour récupérer le champ du formulaire au sous formulaire , j'ai peut être mal taper ^^

    j'ai tapé ceci ^^ :

    Me.Parent.Entreprise(champ formulaire) = Me.Références(champ sous-formulaire)

    Dans le champs du sous-formulaire (après maj)


    Mais cela fait le contraire c'est a dire c'est le champ du formulaire qui change en fonction de ce que je rentre dans le champ du sous formulaire ^^

    Après c'est surement moi qui na pas su être clair sur ma précédente question
    Encore merci pour vos réponses

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 166
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour ce qui est d'afficher/masquer le sous-état, il faut mettre dans le code du sous-état:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Report_Open(Cancel As Integer)
       If Me.Parent.Prix_HT > 5000 Then
          Me.Visible = True
       Else
          Me.Visible = False
       End If
    End Sub
    Pour ce qui est de récupérer les valeurs entre formulaire et sous-formulaire, j'avais compris la demande dans l'autre sens !
    Aussi pour récupérer la valeur NomSociete indiquée dans le formulaire pour la placer dans le champ NomSoc du sous-formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomSociete_AfterUpdate()
       Me!NomSousForm.Form!NomSoc = Me!NomSociete
    End Sub
    mais cela n'est nécessaire que si ces 2 champs ne sont pas liés en tant que champ-père - champ-fils.

    Bonne continuation.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2016
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Avant tout merci pour vos réponses ^^

    Mais je vais paraître un peut pénible mais j'ai quelques petites erreur dont je ne vois pas du tout les causes ,

    Voila , pour ce qui est de l'état et de son sous état j'ai bien fait vous vous avez dit c'est a dire taper ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Report_Open(Cancel As Integer)
    If Me.Parent.Prix_HT >= 5000 Then
    Me.Visible = True
    Else
      Me.Visible = False
    End If
    End Sub
    Qui se trouvent dans l'événement sur ouverture mis j'ai bizarrement l'erreur suivante :

    erreur 2465
    Erreur définit par l'application ou par l'objet et lorsque je débeug la ligne :

    If Me.Parent.Prix_HT >= 5000 Then qui est surligner en jaune

    Est impossible de résoudre ce problème pourtant j'ai bien regardé comment s'orthographié Prix_Ht ,

    J'ai donc essayer de rendre visible le sous état et j'ai le même problème (qui ne tente rien n'a rien )



    Pour le problème d'afficher mon champs du formulaire a mon champs de sous formulaire j'ai bien rentré ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Entreprise_Click()
    Me!T_Conditions (nom sous formulaire).Form!Références(champ du sous formulaire) = Me!Entreprise(champ formulaire)
    End Sub
    Mais me surligne la 2éme ligne en jaune me disant qu'il ne trouve pas le champ 'T_conditions' alors que j'ai vérifié et revérifié l'orthographe de tous les éléments (j'ai bien essayer également après maj )

    Mes champs ne sont pas liés père-fils

    Est ce que c'est moi qui fait mal les choses ?^^ Désoler pour toutes ces questions ^^

    Merci pour vos réponses

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 166
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour ce qui de Me.Parent.Prix_HT, il faut commencer par vérifier que le champ qui contient Prix_HT est bien aussi le nom de ce contrôle texte (et pas un nom comme Texte12, auquel cas il faudrait indiquer Me.Parent.Texte12).

    Pour ce qui est de Me!T_Conditions.Form!Références = Me!Entreprise essayer en remplaçant les ! par des . (ce qui donne Me.T_Conditions.Form.Références = Me!Entreprise)

    Cordialement.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2016
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    Je vous remercie pour toutes vos réponses

    Mais malheureusement, j'ai toujours mes 2 irréductibles problèmes ^^

    Pour le problème du champ du sous-formulaire qui doit être le même que celui du formulaire, j'ai fait comme vous m'avez dit et tapé ce qui suit (« Entreprise » est mon champ du formulaire).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Entreprise_Click()
    Me.T_Conditions(sous formulaire).Form.Références(champ du sous formulaire) = Me!Entreprise
    End Sub
    …et j'ai mon .T_Conditions qui est surligné et écrit le message d'erreur suivant : « Membre de méthode ou de données introuvable ».

    J'ai aussi essayé en après maj mais même problème…

    Pourtant je suis bien allé sur le sous-formulaire, dans l'onglet autre de la feuille de propriété pour m'assurer que ce soit le bon nom.
    Pour le coup, je n'ai aucune idée d'où peut être mon erreur.

    Puis, pour le problème de masquer / afficher mon sous-état :
    J'ai bien tapé dans l'événement d'ouverture de mon sous-état ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Report_Open(Cancel As Integer)
    If Me.Parent.Prix_Test > 5000 Then
     Me.Visible = True
     Else
     Me.Visible = False
     End If
     
    End Sub
    Mais il me suligne toujours la ligne If Me.Parent.Prix_HT >= 5000 then.

    L'erreur est : « erreur définie par l'application ou l'objet ».

    Pourtant encore une fois j'ai vérifié plusieurs fois a l'aide de l'onglet autre de la feuille des propriété le nom du controle de Prix_Test
    (ancien Prix_HT)

    j'ai essayé de supprimer le champs, lui changer de nom dans la table, rien a faire

    Je n'ai vraiment plus d’idées pour le coup
    Si vous avez une petite suggestion je suis preneur
    Encore merci d'avoir répondu a mes questions précédente s

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 166
    Points : 5 485
    Points
    5 485
    Par défaut
    Pour moi, pas possible de donner d'autres avis.
    Eventuellement joindre la db après avoir en avoir retiré les données et objets non pertinents.
    Cordialement.

Discussions similaires

  1. Problème Automation Access --> Excel
    Par boubouh dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/01/2006, 10h34
  2. Problème sur Access 2
    Par gouyou31 dans le forum Access
    Réponses: 3
    Dernier message: 13/12/2005, 18h14
  3. [Visual C++] Problème ADO Access violation
    Par irnbru dans le forum MFC
    Réponses: 2
    Dernier message: 24/10/2005, 12h46
  4. Problème évènements clavier
    Par julie20 dans le forum Langage
    Réponses: 3
    Dernier message: 24/09/2003, 13h39
  5. [ODBC] Problème entre access et ODBC
    Par StephCal dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2003, 17h47

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