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

VBA Access Discussion :

Création d'un formulaire de basculement avec plusieurs donnees a faire basculer


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Création d'un formulaire de basculement avec plusieurs donnees a faire basculer
    Bonjour à tous

    Je suis débutant d'access et également en VBA, je suis actuellement en stage et tous les gens susceptibles de m'aider sont partis en vacances. J'aurais besoin d'un coup de main pour continuer à avancer.

    Explications du problème :

    En haut de mon formulaire j'ai une liste deroulante pour choisir le numero de fiche outil, en dessous j'ai un petit tableau (zone de liste) qui recense tous les codes de matiere, de la nature et de la forme de la matière disponibles pour le code de fiche outil selectionné, et en dessous j'ai un sous formulaire ou sont recensés le code matiere et le code fiche outil.

    Ce que je voudrais : c'est en double cliquant sur une ligne du tableau que l'information s'affiche dans le sous formulaire, j'ai créé une procedure evenementielle en code VBA, mais apparemment elle a un probleme : en mode formulaire qd je double click le message "erreur de compilation type défini par l'utilisateur non defini" apparaît.

    Fin de l'explication

    Code :

    Code VBA : 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 CD_MATIERE_DblClick(Cancel As Integer)
     
    Dim db As Database
    Dim t As Recordset
    On Error GoTo GEST_DOUBLON
     
    Set db = CurrentDb()
    Set t = db.openrecordset("FO_MATI", dbOpenTable)
    x$ = cd_matiere.Column(1)
     
    'MsgBox CD_MATIERE.Column(1)
    t.AddNew
    t![CD_FO] = Me.CD_FO
    t![cd_matiere] = Me.cd_matiere
    t.Update
    t.Close
    'DoCmd.GoToControl "SF FO_MATI"
    Me.SF_FO_MATI.Requery
     
    Exit Sub
    GEST_DOUBLON:
    If Err.Number = 3022 Then
        MsgBox (" déja choisie !")
        Exit Sub
        Resume Next
    End If
    End Sub

    Fin du Code

    Etant débutant je suis conscient que c'est peut-être une erreur simple et si c'est le cas je m'excuse de vous solliciter mais j'ai dejà passé quelques heures sur le problème et sans succès.

    Merci

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour et bienvenu sur le forum.
    en mode formulaire qd je double click le message "erreur de compilation type défini par l'utilisateur non defini" apparaît.
    Hummm... as-tu référencé la bibliothèque DAO (Outils/Références)?

    Sinon... donnes un peu plus de détail... logiquement, Access devrait t'indiquer sur quelle ligne il bloque...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Referencer la bibliotheque
    Dans outil, l'onglet reference est grisé : je ne sais pas pourquoi

    C'est le premier code que j'écris je ne sais pas comment access m'indique sur quelle ligne est située l'erreur.
    La premiere est surlignée en jaune avec une flèche sur le coté et dans la deuxième "db as database" est surligné en bleu. Je ne connais pas la différence entre ces deux notations d'access.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par g.hernandez
    Dans outil, l'onglet reference est grisé : je ne sais pas pourquoi
    Bonjour,

    Les références sont accessible à partir de la fenêtre du code. Ouvre ton code et regarde bien.

    Par ailleur
    FO_MATI => doit être une table
    x$ => doit être déclarer au besoin

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut declaration de x$
    J'ai ajouté la bibliotheque DAO et le probleme au niveau de ma deuxieme ligne est resolu.

    FO_MATI est bien une table

    Il est apparemment necessaire de declarer x$ ms le message d'erreur " erreur de compilation, erreur de syntaxe apparait"
    Ca fait une bonne demi-heure que j'essai de le declarer correctement mais toujours sans succes

    Ce n'est apparemment pas "As" qu'il faut utiliser?!?

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579

  7. #7
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Il sert à quoi ton x$ ? la variable est utilisée ailleurs?

    Si oui, il faut - faute de mieux - la déclarer en globale.
    Si non, supprimes cette ligne qui ne semble pas servir.

    Le $ correspond a une déclaration "implicite forcée". en d'autres termes, la variable n'est pas déclarée mais son type est défini.
    Pour ma part je n'utilise jamais cette syntaxe.
    Définis plutot une variable classiquement

    Par ailleurs, il est vivement conseillé de nommer explicitement les variables (X ne veut rien dire ...) .

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Remerciements
    avec simplement dim x$ ca marche

    mout 1234 et DMBoup, je vous remercie, j'arrive à obtenir ce que je voulais : l'information bascule bien

    Merci de votre aide

  9. #9
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par g.hernandez
    j'ai exactement ce que je voulais comme je le voulais

    Encore merci à vous deux
    De rien

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut pb de code VBA sur un autre formulaire de basculement
    Bonjour a tous

    J'essaie de faire un autre formulaire de basculement avec toujours ma liste deroulante pour choisir le numero de fiche outil une zone de liste avec avec divers codes documents. Le numero de fiche outil s'insere bien dans le sous formulaire ainsi que le premier code document ( a savoir CD_DOC_TECH_DETAIL) Mais le deuxieme code document (a savoir CD_DOC_TECH_DETAIL) reste toujours egal a 0.

    Je n'arrive pas à inserer la partie de code correcte pour que les deux suivent : des que je modifie mon code des erreurs differentes sont annoncées.


    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
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    Private Sub CD_DOC_TECH_DETAIL_DblClick(Cancel As Integer)
     
    Dim db As Database
    Dim t As DAO.Recordset
    Dim x$
     
    On Error GoTo GEST_DOUBLON
     
    Set db = CurrentDb()
    Set t = db.openrecordset("FO_DOCUMENT", dbOpenTable)
    x$ = CD_DOC_TECH_DETAIL.Column(1)
     
     
    'MsgBox CD_DOC_TECH_DETAIL.Column(1)
     
    t.AddNew
    t![CD_FO] = Me.CD_FO
    t![CD_DOC_TECH_DETAIL] = Me.CD_DOC_TECH_DETAIL
     
    t.Update
    t.Close
    'DoCmd.GoToControl "SF_FO_DOCUMENT"
    Me.SF_FO_DOCUMENT.Requery
     
    Exit Sub
    GEST_DOUBLON:
    If Err.Number = 3022 Then
        MsgBox (" déja choisie !")
        Exit Sub
        Resume Next
    End If
     
    End Sub
    J'arrive a faire suivre que l'un des deux codes et l'autre est nul (pour n'avoir aucune erreur dans mon code)

    Merci a ceux qui vont prendre du temps pour m'aider

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut reprise de l'explication du probleme
    Je viens de me rendre compte que mon explication n'est peut-être pas très claire, je reprends :

    Dans ma zone de liste j'ai plusieurs codes documents differents, dans mon sous-formulaire, je veux en récupérer deux, à savoir CD_DOC_TECH_DETAIL et CD_DOC_TECH_ENTETE.
    Comme vous pouvez le constater dans le message précédent, suite à l'aide de mout1234 et de DMboup d'hier, j'ai écris un code VBA. Avec ce dernier, seul le CD_DOC_TECH_DETAIL est basculé dans mon sous-formulaire. J'ai essayé pendant quelques heures ce matin de le modifier ( insérer une partie de code supplémentaire) afin que CD_DOC_TECH_ENTETE soit également basculé, mais sans succes (dès que j'insère queque chose qui me semble logique, la bascule ne fonctionne plus du tout).
    Ca ne doit pas être grand chose à faire, mais avec ma petite expèrience, je n'y arrive pas.

    En vous remerciant d'avance.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut erreur de compilation : membre de données ou de methodes introuvable
    Bonjour a tous
    si quelqu'un peut me dire ou est l'erreur!!

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Private Sub CD_DOC_TECH_DETAIL_DblClick(Cancel As Integer)
     
    Dim db As Database
    Dim t As DAO.Recordset
    Dim x$
    Dim i As String
     
    On Error GoTo GEST_DOUBLON
     
    Set db = CurrentDb()
    Set t = db.openrecordset("FO_DOCUMENT", dbOpenTable)
    x$ = CD_DOC_TECH_DETAIL.Column(1)
    i = CD_DOC_TECH_DETAIL.Column(2)
     
    'MsgBox CD_DOC_TECH_DETAIL.Column(1)
    'MsgBox CD_DOC_TECH_ENTETE.Column(2)
     
    t.AddNew
    t![CD_FO] = Me.CD_FO
    t![CD_DOC_TECH_DETAIL] = Me.CD_DOC_TECH_DETAIL
    t![CD_DOC_TECH_ENTETE] = Me.CD_DOC_TECH_ENTETE
     
    t.Update
    t.Close
    'DoCmd.GoToControl "SF_FO_DOCUMENT"
    Me.SF_FO_DOCUMENT.Requery
     
    Exit Sub
    GEST_DOUBLON:
    If Err.Number = 3022 Then
        MsgBox (" déja choisie !")
        Exit Sub
        Resume Next
    End If
     
    End Sub
    L'erreur sur situe sur : " Me.CD_DOC_TECH_ENTETE "


    Merci

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 2
    Points
    2
    Par défaut La solution
    Je viens de trouver la solution je vous la communique

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    Private Sub CD_DOC_TECH_DETAIL_DblClick(Cancel As Integer)
     
    Dim db As Database
    Dim t As DAO.Recordset
    Dim x$
    Dim i As String
     
    On Error GoTo GEST_DOUBLON
     
    Set db = CurrentDb()
    Set t = db.openrecordset("FO_DOCUMENT", dbOpenTable)
    x$ = CD_DOC_TECH_DETAIL.Column(1)
    i = CD_DOC_TECH_DETAIL.Column(2)
     
    'MsgBox CD_DOC_TECH_DETAIL.Column(1)
    'MsgBox CD_DOC_TECH_ENTETE.Column(2)
     
    t.AddNew
    t![CD_FO] = Me.CD_FO
    t![CD_DOC_TECH_DETAIL] = Me.CD_DOC_TECH_DETAIL.Column(0)
    t![CD_DOC_TECH_ENTETE] = Me.CD_DOC_TECH_DETAIL.Column(1)
     
    t.Update
    t.Close
    'DoCmd.GoToControl "SF_FO_DOCUMENT"
    Me.SF_FO_DOCUMENT.Requery
     
    Exit Sub
    GEST_DOUBLON:
    If Err.Number = 3022 Then
        MsgBox (" déja choisie !")
        Exit Sub
        Resume Next
    End If
     
    End Sub
    En esperant que je ne suis pas le seul a avoir des pb simplicimes comme celui-ci

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

Discussions similaires

  1. formulaire de recherche avec plusieurs paramaitres
    Par aniss77 dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 02/04/2010, 19h31
  2. [Toutes versions] Passer d'un formulaire à un autre avec plusieurs critères de lien.
    Par Mat08 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/09/2009, 15h05
  3. Création d'un formulaire en liaison avec un autre
    Par totojordi dans le forum IHM
    Réponses: 2
    Dernier message: 23/06/2008, 14h24
  4. Formulaire de multiselection avec plusieurs tables
    Par Guillaume 78 dans le forum IHM
    Réponses: 2
    Dernier message: 21/05/2008, 10h51
  5. Formulaire d'enregistrement avec plusieurs table
    Par doudou0088 dans le forum IHM
    Réponses: 1
    Dernier message: 16/01/2008, 13h01

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