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 :

Importation dans Access à partir d'une date


Sujet :

VBA Access

  1. #1
    Membre du Club
    Femme Profil pro
    Gestionnaire de paie
    Inscrit en
    Janvier 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de paie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2016
    Messages : 61
    Points : 42
    Points
    42
    Par défaut Importation dans Access à partir d'une date
    Bonjour,

    Je suis novice en vba et j'ai utilisé la requête ci-dessous que j'ai trouvé sur le forum et que j'ai adapté à mon besoin. Elle permet d'importer des données d'un fichier excel vers une table access mais j'aimerai spécifié un critère de date. En effet, je souhaiterai que les données se trouvant en colonne G du fichier excel (qui correspondent à la date d'embauche) soit importées dans la table access qu'à partir du date donnée soit en l’occurrence le 01/04/2021.

    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
    Private Sub Commande0_Click()
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open("U:\DR076\DRAPS\TRANSVERSE\EMPLOI\CDD\SUIVI CDD\Tableau de bord commun CDD 2021.xlsb", ReadOnly:=True)
    Set oWSht = oWkb.Worksheets("Base")
    'premier ligne ou tu commence ton import
    i = 5
     
    'pour éviter les messages lors de l'ajout des enregistrements
    DoCmd.SetWarnings False
     
    'tant que la cellule n'est pas vide
    While oWSht.Range("A" & i).Value <> ""
     
     
     
     
     
    cSQL = "insert into [cdd]([Direction],[Agence/Service],[Matricule GA],[TH],[Nom Prénom],[coef début contrat],[Date embauche],[Date fin prévue Date sortie],[Date fin période essai],[Renouvellement surcroit],[Motif Sortie CDD],[ETP],[Type de contrat],[Motif Remplacement ou Surcroit],[Enveloppe impactée],[Emploi],[Code emploi],[Matricule Personne Remplacée],[Personne Remplacée]) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 5) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 6) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & "  , " & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 9) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & "," & _
    Chr(34) & oWSht.Cells(i, 12) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 13) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 15) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 16) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 17) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 18) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 19) & Chr(34) & ")"
     
     
     'exécute la requète
     DoCmd.RunSQL cSQL
     
     
      i = i + 1
    Wend
     
    CurrentDb.QueryDefs("MAJ GESTIONNAIRE").Execute
     
    DoCmd.SetWarnings True
     
    End Sub
    Merci par avance pour votre aide

    Bien cordialement

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Bonjour,

    Il suffit d'ajouter une condition dans la boucle while, en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'tant que la cellule n'est pas vide
    While oWSht.Range("A" & i).Value <> ""
      if oWSht.Range("G" & i)>cdate("01/04/2021") then
        ... (insert)...
      end if
      i=i+1
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Femme Profil pro
    Gestionnaire de paie
    Inscrit en
    Janvier 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestionnaire de paie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2016
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    Merci nico84 cela fonctionne parfaitement

    Bonne journée

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/08/2016, 19h27
  2. Réponses: 2
    Dernier message: 31/12/2009, 18h40
  3. Réponses: 4
    Dernier message: 07/08/2008, 17h12
  4. [ACCESS] Nom du mois à partir d'une date
    Par leloup84 dans le forum Access
    Réponses: 12
    Dernier message: 05/04/2007, 14h41
  5. Réponses: 4
    Dernier message: 25/10/2006, 10h13

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