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 :

Copie des enregistrements de la veille, et les mettre à la date du jour. [AC-2003]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Copie des enregistrements de la veille, et les mettre à la date du jour.
    Bonjour,

    Je progresse petit à petit dans mon projet de stage mais me voilà à nouveau bloqué.

    Je me suis basé sur l'un des nombreux plannings mis à disposition sur le site, pour arriver à un résultat qui convient parfaitement au futur utilisateur.

    Pour rappel, voici ma table "Enregistrements" :

    DateJ | N° | Durée | NMAT | NCHAUFF | Chantier | Interim | Loc | Type loc | Indications | Confirmation

    DateJ étant une date, N° le numéro du chantier dans la journée suivi de sa durée, chantier, le code chantier en string (car comporte des lettres), confirmation, une case à cocher (true/false) etc...

    Je souhaite ajouter une nouvelle fonctionnalité qui permettra à l'utilisateur de ne pas avoir à re-rentrer toutes les données chaque jour.

    En cliquant sur un bouton de commande, les enregistrements correspondants à la date de la veille sont tous automatiquement copié pour la date du jour (le champ "confirmation" prendra quant à lui la valeur "false")

    Je vous expose mon 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
    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
    Private Sub Veille_Click()
    Dim db As DAO.Database
    Dim DateV As Date
    Dim sql As String
    Dim N As Integer
    Dim Duree As Integer
    Dim NMAT As Integer
    Dim NCHAUFF As Integer
    Dim Chantier As String
    Dim Chef As Integer
    Dim Interim As Integer
    Dim Loc As Integer
    Dim Typeloc As String
    Dim Indic As String
    Dim MaTable As Recordset
    Dim j As Integer
    DateV = Me!DateD.Value - 1
    Set MaTable = CurrentDb.OpenRecordset("Enregistrements", dbOpenDynaset)
     
    j = DCount("[DateJ]", "Enregistrements", "[DateJ] = #" & DateV & "#") 
     
    MsgBox (j & " enregistrement(s) vont être copiés dans la table !")
     
    MaTable.FindFirst "[DateJ] = #" & DateV & "#"
     
    While (Not MaTable.NoMatch)
        N = MaTable("N°")
        Duree = Nz(MaTable("Durée"))
        NMAT = Nz(MaTable("NMAT"))
        NCHAUFF = Nz(MaTable("NCHAUFF"))
        Chantier = Nz(MaTable("Chantier"))
        Chef = Nz(MaTable("Chef"))
        Interim = Nz(MaTable("Interim"))
        Loc = Nz(MaTable("Loc"))
        Typeloc = Nz(MaTable("Type loc"))
        Indic = Nz(MaTable("Indications"))
        If DCount("[DateJ]", "Enregistrements", "[DateJ] = #" & Me.DateD.Value & "# And [N°] = " & N & " And [Chantier] = '" & Chantier & "'") = 0 Then
            MaTable.AddNew
     
        MaTable("DateJ") = DateV + 1
        If N <> 0 Then                'Ces conditions servent à contourner l'erreur en cas de null
            MaTable("N°") = N
        End If
        If Duree <> 0 Then
            MaTable("Durée") = Duree
        End If
        If NMAT <> 0 Then
            MaTable("NMAT") = NMAT
        End If
        If NCHAUFF <> 0 Then
            MaTable("NCHAUFF") = NCHAUFF
        End If
        If Chantier <> "" Then
            MaTable("Chantier") = Chantier
        End If
        If Chef <> 0 Then
            MaTable("Chef") = Chef
        End If
        If Interim <> 0 Then
            MaTable("Interim") = Interim
        End If
        If Loc <> 0 Then
            MaTable("Loc") = Loc
        End If
        If Typeloc <> "" Then
            MaTable("Type loc") = Typeloc
        End If
        If Indic <> "" Then
            MaTable("Indications") = Indic
        End If
        MaTable("Confirmation") = False
        MaTable.Update
        End If
     
        MaTable.FindNext "[DateJ] = #" & DateV & "#"
     
    Wend
     
     
     
    MaTable.Close
    MajPlanning 'Met à jour le planning (interface)
     
    End Sub
    Il existe peut-être un moyen plus rapide pour coder tout ça, mais ceci avait l'air de fonctionner.

    J'ai commencé toute une serie de test, en ajoutant des valeurs, en allant au jour suivant, puis en actionnant la commande et...
    ...c'est le drame.

    Tout fonctionne parfaitement excepté du 2 au 13 de chaque mois. Si je suis positionné sur une de ces dates, il ne me copie aucune valeur de la veille, alors que manuellement cela marche très bien, et que le code fonctionne pour tous les autres jours du mois.

    Je trouve cela vraiment bizarre et ne parvient pas à dénicher l'origine du probleme...

    Si, une âme charitable pouvait me donner un coup de main, je lui en serait très reconnaissant !

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    Bonjour,
    A priori problème de format de date, en VBA le format et Mois/Jour/Année, regardes par là.
    Autre possibilité pour recopier les valeurs d’un champ dans l’enregistrement suivant.
    Sur évènement avant mise a jour du contrôle où du formulaire exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub MonControle_LostFocus()
    Me. MonControle.DefaultValue = """" & MonControle & """"  ' Contrôle valeur texte
    Me. MonControle.DefaultValue  =  MonControle ' Contrôle valeur numérique
    End Sub

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    un problème de format de date lorsque celle-ci est convertie en texte.
    Les dates littérales dans le SQL d'Access et dans VBA doivent être au format américain.

    Remplace
    par ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... & Format(DateV, "mm\/dd\/yyyy") & ...
    Il faut sans doute le faire ici aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("[DateJ]", "Enregistrements", "[DateJ] = #" & Me.DateD.Value & "# And [N°] = " & N & " And [Chantier] = '" & Chantier & "'") = 0 Then
    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup, c'était en effet un problème de format.

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

Discussions similaires

  1. robocopy copie des fichiers inchangés au lieu de les ignorer
    Par fourchette dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 01/09/2011, 14h37
  2. Copie des enregistrements d'une table
    Par andremilton dans le forum Développement
    Réponses: 3
    Dernier message: 05/06/2011, 14h48
  3. Réponses: 1
    Dernier message: 28/11/2007, 18h54
  4. Réponses: 12
    Dernier message: 06/08/2007, 07h46
  5. Réponses: 4
    Dernier message: 08/07/2006, 14h11

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