Archiver des exports Excel dans une base Access

Résolu/Fermé
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 - Modifié le 21 août 2018 à 11:04
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 - 23 août 2018 à 07:39
bonjour,

Dans access 365, travail sur des exports.

Ce que je souhaite réaliser dans un premier temps,

Archiver dans une table access les exports se trouvant dans un répertoire de mon serveur.


Ma configuration :

J'ai une table "Liste_Fichiers_Exports" c'est la que je souhaite enregistrer les libellés des exports en alimentant 5 champs comme suit :

1 Champ => libelle de l'export
2 Champ => jj/mm/aaaa
3 Champ => N° Semaine
4 Champ => Année
5 Champ => Chemin du répertoire de l'export

J'ai une requête "R_Repertoire" ou se trouve le champ "Rep_Fichier" c'est la que j'indique le chemin des exports à prendre.

Les exports sont toujours libellés comme suit : 20170608_EXPORT.csv


J'ai la procédure vba qui fonctionne dans un fichier Excel et je souhaite adapter cette procédure dans une base de données Access
et la je suis coullé car je ne connais pas beaucoup le DAO, recordset...

Si quelqu'un pouvait m'aider, un grand merci.

Le code Excel, la seule chose qui change c'est le chemin du réperoire des exports qui est indiqué sur l'onglet "Paramètres" en cellule B11
et l'onglet "Listes_fichiers_Exports" ou sont stockés les libellés des exports.

Option Base 1
Sub liste_Fichiers_Exports()

Dim base_fichiers()


Set feuille = Worksheets("Paramètres")
rep = feuille.Range("b11")


fichier = Dir(rep)

i = 1
While fichier <> ""
ReDim Preserve base_fichiers(5, i)

If Right(fichier, 9) = "EXPORTS.csv" Then

base_fichiers(1, i) = fichier
ma_date = DateSerial(Left(fichier, 4), Mid(fichier, 5, 2), Mid(fichier, 7, 2))

base_fichiers(2, i) = Format(ma_date, "mm/dd/yyyy")
base_fichiers(3, i) = Format(ma_date, "ww", vbMonday, vbFirstFullWeek)

base_fichiers(5, i) = rep & fichier

'corrige 1ere semaine - de 4 jours
correction = False
If Month(ma_date) = 1 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) > 50 Then
mon_annee_corrigee = Year(ma_date) - 1
correction = True
End If

'corrige 1ere semaine + de 4 jours
If Month(ma_date) = 12 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) < 5 Then
mon_annee_corrigee = Year(ma_date) + 1
correction = True
End If

If correction = False Then mon_annee_corrigee = Year(ma_date)

base_fichiers(4, i) = mon_annee_corrigee


i = i + 1
End If



fichier = Dir


Wend



Set feuille = Worksheets("Liste_Fichiers_Exports")
feuille.Cells.Clear

feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)


End Sub
A voir également:

2 réponses

AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
21 août 2018 à 18:01
J'ai trouvé comment vider la table, :-(



Sub Liste_Fichiers_Exports()

Dim oRst As DAO.Recordset
Dim oDb As DAO.Database

Set oDb = CurrentDb
Set oRst = oDb.TableDefs("Liste_Fichiers_Exports").OpenRecordset
While Not oRst.EOF
oRst.Delete
oRst.MoveNext

Wend

End Sub
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
Modifié le 21 août 2018 à 19:31
J'y suis pas loin, je ne sais pas comment interpréter la fonction transpose d'Excel sur Access.


Mon code

Sub Liste_Rep_Export()

Dim base_fichiers()

Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Dim Rep_Motam As String


Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("R_Repertoire")

Rep_Export = oRst![Rep_Export]

fichier = Dir(Rep_Export)

i = 1
While fichier <> ""
ReDim Preserve base_fichiers(5, i)

If Right(fichier, 9) = "EXPORT.csv" Then

base_fichiers(1, i) = fichier
ma_date = DateSerial(Left(fichier, 4), Mid(fichier, 5, 2), Mid(fichier, 7, 2))

base_fichiers(2, i) = Format(ma_date, "mm/dd/yyyy")
base_fichiers(3, i) = Format(ma_date, "ww", vbMonday, vbFirstFullWeek)

base_fichiers(5, i) = Rep_Export & fichier

'corrige 1ere semaine - de 4 jours
correction = False
If Month(ma_date) = 1 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) > 50 Then
mon_annee_corrigee = Year(ma_date) - 1
correction = True
End If

'corrige 1ere semaine + de 4 jours
If Month(ma_date) = 12 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) < 5 Then
mon_annee_corrigee = Year(ma_date) + 1
correction = True
End If

If correction = False Then mon_annee_corrigee = Year(ma_date)

base_fichiers(4, i) = mon_annee_corrigee



i = i + 1
End If

oRst.Close: Set oRst = Nothing
oDb.Close: Set oDb = Nothing

fichier = Dir

Wend

Set oDb = CurrentDb
Set oRst = oDb.TableDefs("Liste_Fichiers_Exports").OpenRecordset

While Not oRst.EOF
oRst.Delete
oRst.MoveNext

Wend

End Sub



'Partie d'excel que je n'arrive pas à appliquer en vba Access
feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
Modifié le 23 août 2018 à 07:14
Bonjour,

ce sujet a-t-il un rapport avec celui-ci???
https://forums.commentcamarche.net/forum/affich-35538747-probleme-fonction-application-transpose-sur-access

Si oui, pourquoi ne pas avoir continuer ici plutôt que de créer une meme demande????
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 > f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024
23 août 2018 à 07:39
Bonjour, oui je pensait avoir mal rédigé ma demande, je ferme celui ci
0