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 :

Tester la valeur des enregistrements d'une requête [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut Tester la valeur des enregistrements d'une requête
    Bonjour à tous,

    Je souhaite réaliser les actions suivantes en VBA :

    A partir d'une requête contenant une colonne avec des numéros et une colonne avec des dates, Pour chaque numéro, tester l'existence d'une date comprise entre le 1er et le dernier jour d'un mois. Si elle n'existe pas, alors créer une ligne dans une table avec la date en cours, sinon importer dans cette table la ligne testée.

    Voici ce que j'ai déjà tapé :

    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
    Private Sub Commande4_Click()
     
    DtDeb = Me.DateDeb 'Premier jour du mois sélectionné
    DtFin = Me.DateFin 'Dernier jour du mois sélectionné
     
        DoCmd.SetWarnings False 'désactive les alertes
     
        DoCmd.RunSQL ("delete * from [FeuillePresence ]") 'vide la table FeuillePresence
     
     
                For Boucle = 0 To DateDiff("d", DtDeb, DtFin) 'Créé une boucle sur la période du mois en cours
                    MaDate = DtDeb + Boucle
                    If DCount("Dr_id", "R_Feuille_Presence", "Dr_id=" & MaDate) = 0 Then 'teste l'existence d'une date correspondant à la date de la variable en cours
                    DoCmd.RunSQL "INSERT INTO FeuillePresence (Dr_id) Values (#" & Format(MaDate, "mm/dd/yyyy") & "#);" 'insère les lignes voulues
                    End If
                Next
     
        DoCmd.SetWarnings True 'réactive les alertes
     
    End Sub

    Le soucis est que je ne sais pas comment n'effectuer le test avec Dcount que sur une seule partie des enregistrements à la fois comme il suit :
    1 10/10/2014
    1 11/10/2014
    1 12/10/2014
    2 04/10/2014
    2 05/10/2014
    3 10/10/2014
    3 20/10/2014

    1) je récupère l'ensemble de ma collection de la colonne 1 (donc 1 2 et 3).
    2)Pour le 1er numéro, je parcours tout les jours du mois (donc de 1 à 31) et je vérifie que pour chacun d'eux il y ait une correspondance
    3) s'il n'y en a pas, dans la table FeuillePresence, je créé une ligne avec le numéro de l'enregistrement actuellement testé et en valeur date la date testée.
    4) si il y en a, dans la table FeuillePresence, je créé une ligne en reprenant les informations de la ligne actuellement testée
    5) je passe au numéro suivant et réitère mes tests.

    Sauriez-vous comment écrire la 1ère et 2nd étape ?

    Merci d'avance,

    Sardaucar

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Moi, je verrai plutôt :
    1- Parcourir une requête regroupant les numéros existants de la table initiale.
    2- Parcourir les dates entre les 2 limites à partir de la zone de texte.
    3- Utiliser FindFirst pour trouver si un enregistrement de la table initiale répond au critère de la date en cours et du numéro en cours.
    3a - Si trouver ......(tu sais mieux que moi).
    3b - Sinon autre chose.

    Une petite base exemple jointe.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    Incroyable c'est exactement ça ! Merci infiniment !!!

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

Discussions similaires

  1. affichage des enregistrements d'une requête
    Par pcappell dans le forum WinDev
    Réponses: 2
    Dernier message: 05/04/2007, 13h16
  2. Impossible de modifier des enregistrements d'une requête
    Par soso78 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/04/2007, 18h08
  3. Réponses: 8
    Dernier message: 23/03/2007, 01h14
  4. Exclure des enregistrements dans une requête
    Par r@phy dans le forum Access
    Réponses: 3
    Dernier message: 29/03/2006, 11h18
  5. Exclure des enregistrements d'une requête
    Par beegees dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2005, 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