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 :

"Sub GenererTableMois()" les info dans la table Mois [AC-2013]


Sujet :

IHM

  1. #1
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut "Sub GenererTableMois()" les info dans la table Mois
    Bonsoir membres du forum !

    La fonction suivante me permet de générer les infos dans la table tmois avec l'aide d'une 2e table Tbl_Intervalle_Periode:
    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
     
    Private Sub GenererTableMois()
    On Error GoTo OUMAR
    Dim strMois As String
    Dim strAnnee As String
    Dim X As Integer
    Dim i As Integer
    Dim j As Integer
     
    DoCmd.SetWarnings False
     
    DoCmd.RunSQL "delete * from tmois;"
    j = 1
    DoEvents
    For i = -Me.X To Me.Y
    strMois = CStr(UCase(MonthName(Month(DateAdd("m", i, date))) & " " & Year(DateAdd("m", i, date))))
    strAnnee = Year(DateAdd("m", i, date))
    DoCmd.RunSQL "insert into tmois(LibMois,id,Annee_tMois) values ('" & strMois & "'," & j & ",'" & strAnnee & "');"
    j = j + 1
    'Me.cptantpour.AddItem UCase(MonthName(Month(DateAdd("m", i, date))) & " " & Year(DateAdd("m", i, date)))
    Next i
    DoCmd.SetWarnings True
     
    Exit Sub
    OUMAR:
        MsgBox "Erreur n° " & err.Number & vbCrLf & err.description, vbCritical + vbOKOnly, "Une erreur est survenue"
    End Sub
    Nom : CaptureTableMoisGeneres2.PNG
Affichages : 156
Taille : 12,1 Ko
    Nom : CaptureTableMoisGeneres.PNG
Affichages : 150
Taille : 55,2 Ko

    Nom : CaptureTableMoisGeneres4.PNG
Affichages : 153
Taille : 9,3 Ko
    Nom : CaptureTableMoisGeneres3.PNG
Affichages : 142
Taille : 37,4 Ko

    Je recherche une méthode plus simple pour générer les infos dans ma table tMois sans déranger les anciennes données qui s'y trouvent.

    - Pièce jointe de la BD

    Cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Je reformule, parce que j'ai un peu de mal à comprendre.
    Si j'ai bien compris, à l'aide des éléments de la tbl intervalleperiode vous voudriez créer une liste de mois compris entre année X et année Y de votre date système et ajouter cette liste dans la tblmois sans doublons !

  3. #3
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonjour hyperion13,
    bonjour membres du forum !
    Oui c'est exactement cela que je recherche.
    Cordialement.

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Voici un code que j'utilise, à vous de l'adapter à votre IHM
    Je passe par un form indépendant avec 2 textbox (txtmoisdeb et txtmoisfin), via l'évènement sur click d'un btn, je crée une tbl_tmp qui est alimentée en boucle d'une liste de mois entre txtmoisdeb et txtmoisfin. Et enfin j'alimente la tblMois sans doublons.
    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
    Private Sub Commande25_Click()
    Dim i As Date, j As Date, l As Date, y As Date, k As Integer, m As Integer, z As Integer
     
    DoCmd.SetWarnings False
    CurrentDb.Execute "CREATE TABLE tblMois_tmp (" _
        & " id_tmp AutoIncrement CONSTRAINT idxid Primary Key, " _
        & " moisdeb_tmp Date, " _
        & " moisfin_tmp Date, " _
        & " numannee_tmp Integer, nummois_tmp Integer, numjour_tmp Integer, " _
        & " CONSTRAINT idxanmois UNIQUE (numannee_tmp, nummois_tmp))", dbFailOnError
     
    i = Me.txtmoisdeb
    j = Me.txtmoisfin
    k = DateDiff("m", DateSerial(Year(i), Month(i), 1), DateSerial(Year(j), Month(j), 1))
     
    For z = 0 To k
        l = DateAdd("m", z, i)
        CurrentDb.Execute "INSERT INTO tblMois_tmp (moisdeb_tmp, moisfin_tmp, numannee_tmp, nummois_tmp, numjour_tmp)" _
        & " VALUES (#" & Format(l, "mm/dd/yyyy") & "#, #" & DateSerial(Year(l), Month(l) + 1, 0) & "#, " & Year(l) & ", " & Month(l) & ", " & Day(DateSerial(Year(l), Month(l) + 1, 0)) & ")", dbFailOnError
    Next z
        CurrentDb.Execute "INSERT INTO tblMois (moisdeb, moisfin, numannee, nummois, numjour)" _
        & " SELECT moisdeb_tmp, moisfin_tmp, numannee_tmp, nummois_tmp, numjour_tmp" _
        & " FROM tblMois_tmp" _
        & " WHERE moisdeb_tmp Not In (SELECT moisdeb FROM tblMois)", dbFailOnError
    DoCmd.DeleteObject acTable, "tblMois_tmp"
    DoCmd.SetWarnings True
    RefreshDatabaseWindow
    End Sub

  5. #5
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonsoir hyperion13;
    Votre 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
    Private Sub CmdCreerTbl_Mois_Click()
    Dim i As Date, j As Date, l As Date, y As Date, k As Integer, m As Integer, z As Integer
     
    DoCmd.SetWarnings False
    CurrentDb.Execute "CREATE TABLE tblMois_tmp (" _
        & " id_tmp AutoIncrement CONSTRAINT idxid Primary Key, " _
        & " moisdeb_tmp Date, " _
        & " moisfin_tmp Date, " _
        & " numannee_tmp Integer, nummois_tmp Integer, numjour_tmp Integer, " _
        & " CONSTRAINT idxanmois UNIQUE (numannee_tmp, nummois_tmp))", dbFailOnError
     
    i = Me.txtmoisdeb
    j = Me.txtmoisfin
    k = DateDiff("m", DateSerial(Year(i), Month(i), 1), DateSerial(Year(j), Month(j), 1))
     
    For z = 0 To k
        l = DateAdd("m", z, i)
        CurrentDb.Execute "INSERT INTO tblMois_tmp (moisdeb_tmp, moisfin_tmp, numannee_tmp, nummois_tmp, numjour_tmp)" _
        & " VALUES (#" & Format(l, "mm/dd/yyyy") & "#, #" & DateSerial(Year(l), Month(l) + 1, 0) & "#, " & Year(l) & ", " & Month(l) & ", " & Day(DateSerial(Year(l), Month(l) + 1, 0)) & ")", dbFailOnError
    Next z
        CurrentDb.Execute "INSERT INTO tblMois (moisdeb, moisfin, numannee, nummois, numjour)" _
        & " SELECT moisdeb_tmp, moisfin_tmp, numannee_tmp, nummois_tmp, numjour_tmp" _
        & " FROM tblMois_tmp" _
        & " WHERE moisdeb_tmp Not In (SELECT moisdeb FROM tblMois)", dbFailOnError
    DoCmd.DeleteObject acTable, "tblMois_tmp"
    DoCmd.SetWarnings True
    RefreshDatabaseWindow
    End Sub
    Nom : CaptureTableMoisGeneres6.PNG
Affichages : 103
Taille : 21,8 Ko

    se comporte presque de la même manière que le mien
    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
     
    Private Sub GenererTableMois()
    On Error GoTo OUMAR
    Dim strMois As String
    Dim strAnnee As String
    Dim X As Integer
    Dim i As Integer
    Dim j As Integer
     
    DoCmd.SetWarnings False
     
    DoCmd.RunSQL "delete * from tmois;"
    j = 1
    DoEvents
    For i = -Me.X To Me.Y
    strMois = CStr(UCase(MonthName(Month(DateAdd("m", i, date))) & " " & Year(DateAdd("m", i, date))))
    strAnnee = Year(DateAdd("m", i, date))
    DoCmd.RunSQL "insert into tmois(LibMois,id,Annee_tMois) values ('" & strMois & "'," & j & ",'" & strAnnee & "');"
    j = j + 1
    'Me.cptantpour.AddItem UCase(MonthName(Month(DateAdd("m", i, date))) & " " & Year(DateAdd("m", i, date)))
    Next i
    DoCmd.SetWarnings True
     
    Exit Sub
    OUMAR:
        MsgBox "Erreur n° " & err.Number & vbCrLf & err.description, vbCritical + vbOKOnly, "Une erreur est survenue"
    End Sub
    Je vous signale que j'ai ajouter un nouveau champ à la table "tblMois" qui est remplie à votre code.

    Nom : CaptureTableMoisGeneres5.PNG
Affichages : 106
Taille : 9,1 Ko

    Comment dois je adapter votre code avec le nouveau champ LibMois que j'ai créé et devrais contenir par exemple Janvier 2019; Février 2019.
    Cordialement.

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Désolé, mais je ne vois pas l'intérêt de transformer une date en type texte !
    Images attachées Images attachées   

  7. #7
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonsoir hyperion13 !
    Message compris.
    Merci infiniment.

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

Discussions similaires

  1. [WD12E] Afficher les données dans la table d'une requête
    Par melchi dans le forum WinDev
    Réponses: 2
    Dernier message: 12/08/2009, 09h07
  2. Splash screen une meilleur manière de faire ?
    Par manu f dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 21/05/2009, 11h40
  3. obtenir les infos dans une meme fenetres
    Par xavewake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/08/2007, 10h01
  4. Réponses: 2
    Dernier message: 27/05/2007, 22h23
  5. Regrouper les infos dans une facture
    Par CRonaldo dans le forum Access
    Réponses: 10
    Dernier message: 22/11/2006, 22h37

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