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 :

[débutante] Projet bouton formulaire


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut [débutante] Projet bouton formulaire
    Voilà je suis en terminale GSI et j'ai un problème avec mon projet. Donc je dois créer un formulaire de saisie des intervenants par projet et par activité. Je vous met une image de mon formulaire :


    En cliquant sur le bouton Ok celà doit me remplir les cases nom projet, numéro client et code pole. Et en choisissant une activité de la liste déroulante celà doit m'afficher le nom des inscrits par projet.
    Je doit également pouvoir rajouter des intervenants en cliquant sur > et celà doit se rajouter dans la table PARTICIPER.

    Voici ma base de données :


    Et voici mon code VBA :
    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
    Module :
    Option Compare Database
    Public Function getInfosProjet(ByVal p_CodeProjet As String, ByRef rsInfosProjet As DAO.Recordset) As Boolean
     
     
            '--- requête pour récupérer les informations de la session correspondant au numéro ---
            Dim requete As String
            requete = "SELECT * from PROJET,ACTIVITE,PARTICPER"
            requete = requete & "where PROJET.CodeProjet = ACTIVITE.CodeProjet"
            requete = requete & "and ACTIVITE.NumActivite = PARTICIPER.NumActivite"
            requete = requete & "and PROJET.CodeProjet=" & p_CodeProjet & ";"
            Set rsSession = CurrentDb.OpenRecordset(requete)
     
            '--- retourne un booléen indiquant si la requete a donné ou non un résultat ---
            If rsInfosProjet.EOF Then
                getInfosProjet = False
            Else
                getInfosProjet = True
     
            Else
            getInfosProjet = False
        End If
     
     
     
    End Function
    Formulaire:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    Option Compare Database
     
    '*********************************************************************************************
    ' MODULES EVENEMENTIELS
    '*********************************************************************************************
     
    '---------------------------------------------------------------------------------------------
    ' sur le clic du bouton "Ok" : à partir du numero de projet saisi, rempli le reste du formulaire
    '---------------------------------------------------------------------------------------------
    Private Sub btn_OK_Click()
     
        Dim rsInfosProjet As DAO.Recordset
     
        '--- récupère les infos du projet correspondant au numéro ---
        If getInfosProjet(Me.txt_numprojet, rsInfosProjet) Then
     
            '--- rempli les champs à partir des informations récupérées ---
            Me.txt_nomprojet = rsInfosProjet("PROJET.NomProjet")
            Me.txt_NumClient = rsInfosProjet("PROJET.NumClient")
            Me.txt_CodePole = rsInfosProjet("PROJET.CodePole")
     
     
     
        Else
            MsgBox "Numéro de projet incorrect !"
        End If
     
        End Sub
     
    '---------------------------------------------------------------------------------------------
    ' sur le clic du bouton ">" : ajoute l'intervenant sélectionné (liste de gauche)
    '---------------------------------------------------------------------------------------------
    Private Sub btn_ajout_click()
     
        '--- controle si un agent a été sélectionné (liste de gauche) ---
        If Me.lst_intervenants.ItemsSelected.Count = 1 Then
     
                '--- récupère le numéro de l'intervenant à insérer ---
                Dim numEmploye As String
                numEmploye = Me.lst_intervenants
     
                '--- insère l'intervenant dans la table participer (pour ce projet et cette activité) ---
                DoCmd.SetWarnings False
                DoCmd.RunSQL "insert into PARTICIPER(numEmploye,numActivite) values (" & Me.lst_intervenants & ",'" & ldr_Activite & "');"
                DoCmd.SetWarnings True
     
                '--- réinitialise les listes et incrémente le nombre d'inscrits ---
                Me.lst_intervenants.Requery
                Me.lst_inscrits.Requery
                Me.lst_inscrits = numEmploye
     
     
     
        End If
     
    End Sub
     
    '---------------------------------------------------------------------------------------------
    ' sur le clic du bouton "<" : supprime l'intervenant sélectionné (liste de droite)
    '---------------------------------------------------------------------------------------------
    Private Sub btn_supprim_Click()
     
        '--- controle si un inscrit a été sélectionné (liste de droite) ---
        If Me.lst_inscrits.ItemsSelected.Count = 1 Then
     
            '--- récupère le numéro de l'intervenant à supprimer ---
            Dim numEmploye As String
            numEmploye = Me.lst_inscrits
     
            '--- supprime l'inscription de cet agent dans la table participer (pour ce projet et cette activité) ---
            DoCmd.SetWarnings False
            DoCmd.RunSQL "delete from PARTICIPER where numActivite =" & Me.ldr_Activite & " and numEmploye='" & numEmploye & "';"
            DoCmd.SetWarnings True
     
            '--- réinitialise les listes et décrémente le nombre d'inscrits ---
            Me.lst_intervenants.Requery
            Me.lst_inscrits.Requery
            Me.lst_intervenants = numEmploye
     
     
        End If
     
    End Sub
    Private Sub btn_quitter_Click()
        DoCmd.Close
    End Sub
    Quand je clique sur le bouton "OK" ou "Quitter" celà m'affiche :
    $

    Aucun bouton ne fonctionne. Alors si pouviez m'aider ce serait sympa.Merçi

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    À priori je ne vois rien d'anormal. Ton code compile t'il ?

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    ça veut dire quoi 'ton code compile t-il?"
    On a plus que 4h pour faire tourner le projet et ma partie ne tourne pas donc je suis vraiment embétée. J'ai vérifié l'orthographe et la ponctuation mais rien trouvé.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    En mode design de code, tu vas dans le menu débogage et tu as le choix : compiler.

    Ça devrait aider à trouver la source du pb.

    Tu es en Access 2007 ?

    A+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    non c'est access 2003

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    OK ça va être plus facile pour t'aider, je suis en Access 2002 et il n'y a pas de différences majeures à ce que je saches.

    Alors ça compile ou pas ?

    A+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    ça me met cela lorsque que je clique sur débogage :


    Mais avant ça me met une autre erreur qui s'affiche également quand je lance mon fichier access.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    C'est la première fois que je vois ce message donc toute information est importante.

    Comme il y a environ 3000 messages d'erreurs dans Access, j'ai du mal à savoir quelle est cette autre erreur. Peux-tu me mettre le message ?

    Et quand se produit-elle ? À l'ouverture de ta base, c-à-d dés que tu ouvres Access même si tu n'exécute rien ou à l'execution de ton appli ?

    À part cela fait une recherche sur btn_ajout_click( par [Ctrl][F] pour voir si tu ne l'a pas déjà ailleurs ... mais ce qui m'intrigue c'est le 'dont le présent module est dérivé'.

    As-tu utilisé des modules de classe ?

    A+

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    As-tu la possibilité d'essayer ta base sur une autre machine ?

    Si oui, fait le cela nous permettra de savoir si ce n'est pas un pb d'instal d'Access.

    A+

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    J'ai réutilisé un module d'un autre contexte pour pas avoir à tous recopié mais rien n'y fait référence donc je comprend pas pourquoi ça m'affiche ça.

    A l'ouverture d'access ça m'affichait cela : Votre base de donnée ou projet microsoft access contient une référence incomplète ou rompue du fichier 'dao2535.tlb' version 3.5 mais corriger le problème je suis allée dans outil/référence et j'ai décocher la case qui correspondait et l'erreur ne s'affiche plus.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Oui sur les ordinateurs du lycée ça affiche la même erreur.

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Comme tu fais appel à des objets de la bibliothèque DAO assures toi d'avoir une référence qui pointe sur un truc du genre Micosoft DAO 3.6 Object Library.

    Chez moi c'est la dll C:\Windows\System32\dao360.dll.

    L'abscence d'une référence indispensable provoque des erreurs très bizares dans Access.

    A+

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    j'ai regardé dans c:\windows\sytem32 et je n'ai rien qui fait référence à DAO. Je dois faire quoi?

  14. #14
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Vois si tu peux cocher la référence DAO, il se peut qu'elle soit dans un autres répertoire et Access sais parfois où elle est.

    Si cela ne marche pas et si j'étais toi je dirai à mon prof que j'ai un pb avec Access même et qu'il me dépasse et je lui demanderai son aide.

    A+

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    c'est bon j'ai trouvé le fichier microsoft dao 3.6 object library et je l'ai coché mais j'ai toujours mon problème avec le module dérivé.

  16. #16
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Citation Envoyé par ptit-bout Voir le message
    J'ai réutilisé un module d'un autre contexte pour pas avoir à tous recopié mais rien n'y fait référence donc je comprend pas pourquoi ça m'affiche ça.
    As-tu fait référence à une autre BD Access ? Normalement ça marche bien, donc je ne pense pas que cela vienne de là.

    Peux-tu poster tes refs ?

    Après il va falloir que tu vois avec ton prof car je quittes vers 17h heure de Montréal, Quèbec.

    A+

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Non ce n'est pas la même base de donnée mais ça ne peut pas être ça.

    Quelles références?! Je suis perdue

  18. #18
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    En mode design de code, menu outils, références.

    Pexu-tu en faire une copie d'écran et la poster.

    A+

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    C'est bon le problème est résolu. J'avais un problème avec le sous formulaire, j'avais fait la requête en vba et en fait il fallait la faire dans access. Et ensuite pour le message d'erreur avec les boutons je sais pas pourquoi cela ne marché pas, j'ai recommencé mon formulaire à zéro et ça a marché^^

    Donc problème résolu!

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

Discussions similaires

  1. [Débutant] 2 boutons submit dans un formulaire
    Par stokoma1981 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/05/2007, 16h57
  2. [Débutant]Organisation de projet Swing, Formulaires !
    Par 17mounir dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/08/2006, 17h14
  3. Désactivation bouton = formulaire non soumis
    Par Gwipi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2005, 16h11
  4. Réponses: 4
    Dernier message: 20/04/2005, 12h00
  5. [Débutant]tableau de formulaire
    Par minique dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2004, 13h57

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