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 85
| '****************************************************************************
'ETAPE 1 - Importation brute (txt) des données du fichier source
'****************************************************************************
'Désactivation des MsgBox générés par Access
DoCmd.SetWarnings False
'Simplification du chemin d'accès
chemin = "C:\Documents and Settings\Checchi Lorenzo\Mes documents\Bibliothèque\DEV_ACCESS\MARQUILIE\C001186.xls"
txtpath = chemin
'Déclaration des variables tables
Dim rstTemp1 As DAO.Recordset
Dim rstTemp2 As DAO.Recordset
Dim rstTemp3 As DAO.Recordset
'Déclaration des variables diverses
Dim warm As Boolean
'Mise à zéro de la variable warm (permet la mise sous condition)
warm = False
'Importation du fichier xls dans la table TblTemp1
If warm = False Then
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TblTemp1", txtpath, , , UseOA
End If
'****************************************************************************
'ETAPE 2 - Suppression des enregistrements inutiles
'****************************************************************************
'Suppression des enregistrements blancs contenus dans le champs F6 de TblTemp1 (lignes 1 - 5 et 7)
DoCmd.RunSQL "DELETE TblTemp1.F6 FROM TblTemp1 WHERE (((TblTemp1.F6) Is Null));"
'Suppression de l'enregistrement contenant les libellés du fichier source
DoCmd.RunSQL "DELETE TblTemp1.F1, TblTemp1.F3 FROM TblTemp1 WHERE (((TblTemp1.F1)='Number') AND ((TblTemp1.F3)='Time'));"
'==========DEVELOPPEZ.COM================
'Remplacer les points par /
'replace(rstTemp1!F2, ".", "/")
'==========DEVELOPPEZ.COM================
'****************************************************************************
'ETAPE 3 - Transfert et formatage vers la table TblTemp2
'****************************************************************************
'Mise en mode écriture des tables
Set rstTemp1 = CurrentDb.OpenRecordset("TblTemp1", dbOpenDynaset)
Set rstTemp2 = CurrentDb.OpenRecordset("TblTemp2", dbOpenDynaset)
'Transfert des données de la table TblTemp1 vers la table TblTemp2 par l'instruction Do...Loop
rstTemp1.MoveFirst
Do While Not rstTemp1.EOF
rstTemp2.AddNew
warm = False
rstTemp2!Number_Room = rstTemp1!F1
rstTemp2!DateAppel = rstTemp1!F2
rstTemp2!Time = rstTemp1!F3
rstTemp2!Number_External = rstTemp1!F4
rstTemp2!Duration = rstTemp1!F5
rstTemp2!Amount_EUR = rstTemp1!F6
rstTemp2.Update
rstTemp1.MoveNext
Loop
'****************************************************************************
'ETAPE 4 - Procédures SQL pour l'extraction et copie de l'extension de TblTemp3 dans le champ Extension
'****************************************************************************
'Insertion du contenu de la table TblTemp2
DoCmd.RunSQL "INSERT INTO TblTemp3 ( Number_Room, DateAppel, [Time], Number_External, Duration, Amount_EUR )" & _
" SELECT TblTemp2.Number_Room, TblTemp2.DateAppel, TblTemp2.Time, TblTemp2.Number_External, TblTemp2.Duration, TblTemp2.Amount_EUR" & _
" FROM TblTemp2;"
'Extraction de l'extension du champ Number_Room (3 derniers chiffres)
DoCmd.RunSQL "UPDATE TblTemp3 SET TblTemp3.Extension = (Right([Number_Room],3));"
'Extraction de mm/yyyy pour la période de référence de l'appel
DoCmd.RunSQL "UPDATE TblTemp3 SET TblTemp3.PeriodeRef = Right([DateAppel],7);"
MsgBox "OK !" |
Partager