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 :

Ajout date pendant importation


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut Ajout date pendant importation
    Bonjour,
    J'importe d'un fichier Excel les données qui renseignent ma base de donnée.
    Il se trouve que j'ai ajouté un champ Date_deb dans ma table.
    Mon objectif est d'associer à chaque donnée importer la date du jour.
    Avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With rstmed
                    .Addnew
                    !Date_deb = Date
                    .Update
            End With
    il me rajoute une ligne avec la date du jour. (Ce qui n'est pas ce que je veux).
    Merci de me proposer vos suggestions.

  2. #2
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    C'est normal qu'il t'ajoute une ligne puisue tu fais un addnew. Montre un epu plus de code pour voir comment tu importes les données.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    C'est pas .Edit des fois qu'il te faut (faire une modif de l'enregistrement en cours et pas un ajout ) ?

    A+

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Mon
    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
    Private Sub CmdImporter_Click()
    Dim db As Database
    Dim rst As Recordset
     
    On Error GoTo erreur
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("SELECT * FROM tAjout")
     
    If MsgBox("Voulez vous importer le fichier spécifié ?", vbQuestion + vbYesNo, "") = vbYes Then
           DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tAjout", Me.txtfichier, True, "A1:G255"
           With rst
                    .Edit
                    !date_ajout = Date
                    .Update
            End With
    Else
    End If
        Exit Sub
     
    erreur:
        If Err.Number = 2522 Then
            MsgBox "Opération annulée pour fichier non spécifié.", vbCritical, ""
            Me.CmdOuvrir.SetFocus
        Else
            MsgBox "erreur num " & Err.Number & ":" & vbCrLf & Err.Description, vbCritical, "ERREUR"
        End If
     
    End Sub
    Avec Edit, je recois le message suivant
    Erreur 3021 Aucun enregistrement en cours

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    salut

    semblerai que le recordset ne soit pas déclaré au bon moment, comme il n'y a pas encore eu d'import, il est vide

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    j'ai oublié :

    donc juste déplacer la ligne rst
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...      
    If MsgBox("Voulez vous importer le fichier spécifié ?", vbQuestion + vbYesNo, "") = vbYes Then
           DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tAjout", Me.txtfichier, True, "A1:G255"
    Set rst = db.OpenRecordset("SELECT * FROM tAjout")
           With rst 
    ...
    par contre il manque une boucle pour affecter la date du jour sur tous les enregistrements importés

    bonne journée

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Début promettant, sauf que la date est prise en compte par la première ligne des données importées dans la base. Et dire que j'importe près de 230 enregistrements.
    L'objectif est que chacun des 230 enregistrements ait la date d'importation.
    Merci

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    aqui la boucla, olé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    While Not rst.EOF
           With rst
                    .Edit
                    !date_ajout = Date
                    .Update
            End With
            rst.MoveNext
    Wend

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Merci boubignole, ca marche 5/5
    Merci

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Boubignole m'avait donné ce code afin de resoudre mon problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While Not rst.EOF
           With rst
                    .Edit
                    !date_ajout = Date
                    .Update
            End With
            rst.MoveNext
    Wend
    .
    Mais je viens de me rendre compte que ce code modifie tous les enregistrements. (A cause du .Edit je suppose.)
    Comment faire afin que les dates passées ne soient nullement affectées par de nouveaux ajouts : :
    Merci

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    salut

    ah oui j'avais pas fait gaffe
    Il faut restreindre le recordset aux enregistrements nouvellement importés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rst = db.OpenRecordset("SELECT * FROM tAjout Where Date_Ajout is null")
    ou quelque chose d'approchant, je ne me rapelle jamais la syntaxe

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Je pense qu'une solution avec une requete mise à jour donnerait le même résultat avec un temps d'execution beaucoup plus court .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Sql = " UPDATE tAjout SET tAjout.[date_ajout ] = Now() Where Date_Ajout is null;
    currentdb.execute sql
    rem : pas testé

    A+

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

Discussions similaires

  1. [11gR2] Datapump ajout de filtre date pendant un export
    Par PaulNero dans le forum Administration
    Réponses: 0
    Dernier message: 05/11/2014, 14h01
  2. [AC-2003] ajouter une date d'import
    Par ouinih dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/01/2012, 11h57
  3. Réponses: 6
    Dernier message: 08/10/2009, 15h07
  4. Réponses: 6
    Dernier message: 19/06/2006, 09h38
  5. Ajouter date dans un log
    Par Krispy dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2006, 14h24

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