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

Access Discussion :

Problème code VBA :)


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Points : 104
    Points
    104
    Par défaut Problème code VBA :)
    Bonjour,
    Je vais vous exposé mon problème

    Je possède les tables suivantes:

    Consult_ens_empl_tut: date soutenance, heure, numéro salle, titre stage et identifiant stage.
    Cette table me permet a afficher l'emploi du temps d'un enseignant. Au debut il est vide puis il se rempli apres avoir cliquer sur le bouton "Afficher emploi du temps"

    STAGE: Identifiant stage, Numéro salle, Numéro enseignant candide, Numéro enseignant tuteur, Titre stage

    SOUTENIR: Identifiant stage, Date soutenance, Heure

    Donc après avoir choisi un enseignant (dans liste déroulante contenant, numéro, nom et prenom de l'enseignant) et apres avoir cliquer sur le bouton AFFICHER, j'aimerai que la table Consult_ens_empl_tut s'affiche.



    Or cela ne marche pas :s La table s'affiche mais elle est vide.
    Il faut savoir que si je met dans ma liste déroulante que le numéro de l'enseignant sa marche correctement.

    Ma liste déroulante s'appel liste_tut

    Voici le code:

    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 afficher_tut_Click()
        If IsNull(Me.liste_tut) Then
            MsgBox ("Aucun enseignant selectionne")
        Else
        Dim db As DAO.Database, d As DAO.Recordset, e As DAO.Recordset, f As DAO.Recordset
        Set db = CurrentDb
          'On vide la table du resultat
            db.Execute "DELETE * FROM [Consult_empl_ens_tut];"
        Set d = db.OpenRecordset("STAGE")
        d.MoveFirst
                    Set e = db.OpenRecordset("consult_empl_ens_tut")
                Set f = db.OpenRecordset("SOUTENIR")
        Do Until d.EOF
            If d![Numéro enseignant tuteur] = Me.liste_tut Then
                f.MoveFirst
                Do Until d![Identifiant stage] = f![Identifiant stage]
                    f.MoveNext
                Loop
                e.AddNew
                e![Identifiant stage] = d![Identifiant stage]
                e![Date soutenance] = f![Date soutenance]
                e![Heure] = f![Heure]
                e![Numéro salle] = d![Numéro salle]
                e![Titre stage] = d![Titre stage]
                e.Update
            End If
            d.MoveNext
        Loop
        d.Close
        e.Close
        f.Close
     
         DoCmd.OpenTable "consult_empl_ens_tut"
        Me.liste_tut = ""
     
        End If
     
    End Sub
    J'espere avoir été clair, et merci d'essayer de m'aidé

  2. #2
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello....

    La clef est là je pense....

    Il faut savoir que si je met dans ma liste déroulante que le numéro de l'enseignant sa marche correctement.
    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If CLng(d![Numéro enseignant tuteur]) = CLng(Me.liste_tut) Then

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Points : 104
    Points
    104
    Par défaut
    Merci d'avoir répondu

    Ca me met un message d'erreur à la ligne que tu m'as dit de mettre:

    Run time error '94'
    Invalid use of null

    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 afficher_tut_Click()
        If IsNull(Me.liste_tut) Then
            MsgBox ("Aucun enseignant selectionne")
        Else
        Dim db As DAO.Database, d As DAO.Recordset, e As DAO.Recordset, f As DAO.Recordset
        Set db = CurrentDb
          'On vide la table du resultat
            db.Execute "DELETE * FROM [Consult_empl_ens_tut];"
        Set d = db.OpenRecordset("STAGE")
        d.MoveFirst
                    Set e = db.OpenRecordset("consult_empl_ens_tut")
                Set f = db.OpenRecordset("SOUTENIR")
        Do Until d.EOF
            If CLng(d![Numéro enseignant tuteur]) = CLng(Me.liste_tut) Then
                f.MoveFirst
                Do Until d![Identifiant stage] = f![Identifiant stage]
                    f.MoveNext
                Loop
                e.AddNew
                e![Identifiant stage] = d![Identifiant stage]
                e![Date soutenance] = f![Date soutenance]
                e![Heure] = f![Heure]
                e![Numéro salle] = d![Numéro salle]
                e![Titre stage] = d![Titre stage]
                e.Update
            End If
            d.MoveNext
        Loop
        d.Close
        e.Close
        f.Close
     
         DoCmd.OpenTable "consult_empl_ens_tut"
        Me.liste_tut = ""
     
        End If
     
    End Sub

  4. #4
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello... Eh ben, il faut ajouter un test :
    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
     
    If Not Isnull(d![Numéro enseignant tuteur]) and Not Isnull(CLng(Me.liste_tut)  Then
       If CLng(d![Numéro enseignant tuteur]) = CLng(Me.liste_tut) Then
                f.MoveFirst
                Do Until d![Identifiant stage] = f![Identifiant stage]
                    f.MoveNext
                Loop
                e.AddNew
                e![Identifiant stage] = d![Identifiant stage]
                e![Date soutenance] = f![Date soutenance]
                e![Heure] = f![Heure]
                e![Numéro salle] = d![Numéro salle]
                e![Titre stage] = d![Titre stage]
                e.Update
       End If
    End If

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 119
    Points : 104
    Points
    104
    Par défaut
    Génial
    Merci beaucoup ca marche :p

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

Discussions similaires

  1. [XL-2007] Problème code VBA
    Par Jay29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2009, 17h41
  2. Problème Code VBA, ajout non désiré sur bouton
    Par vivicente dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/06/2008, 18h33
  3. Problème code VBA
    Par nanot dans le forum VBA Access
    Réponses: 21
    Dernier message: 04/06/2008, 16h24
  4. Problème code vba
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2008, 13h03

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