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
| Sub importStockK7()
'Déclaration des variables
Dim chemins() As Variant
Dim chemin As Variant
Dim tableCible As String
Dim sqlCommand As String
'Gestion des erreurs
'On Error GoTo gestionErreurs
'Choix du fichier source
chemins() = selectionFichiers("Z:\MonChemin")
'Arret des messages system
DoCmd.SetWarnings False
'Boucle d'importation
For Each chemin In chemins()
'Ouvrir le classeur en back
'Set xlBook = xlApp.Workbooks.Open chemin
'changer le nom de la colonne en E1
Quitter le back et enregistrer
xlBook.Save
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
'Vérification présence
If DCount("*", "tblSuiviMAJ", "NomFichier = " & Chr(34) & Dir(chemin) & Chr(34)) < 1 Then
'Nettoyage de la table temp avant import
sqlCommand = "DELETE FROM tblTempK7"
DoCmd.RunSQL sqlCommand
'Import du fichier
DoCmd.TransferSpreadsheet acImport, , "tblTempK7", chemin, 1
'Transfert de la table temp vers table finale
sqlCommand = "INSERT INTO tblK7 ( NomFichier, [Date calcul], [Heure calcul], Fournisseur, Référence, [Réf fournisseur], Libellé, [Pièces totales], [Pièces dispos], [Pièces en préparat°], [Pièces bloquées], [Dernier BL], [Dernier BE], [Entrepôt] ) " & _
"SELECT """ & Dir(chemin) & """, tblTempK7.[Date calcul], tblTempK7.[Heure calcul], tblTempK7.Fournisseur, tblTempK7.Référence, tblTempK7.[Réf fournisseur], tblTempK7.Libellé, tblTempK7.[Pièces totales], tblTempK7.[Pièces dispos], tblTempK7.[Pièces en préparat°], tblTempK7.[Pièces bloquées], tblTempK7.[Dernier BL], tblTempK7.[Dernier BE], tblTempK7.[Entrepôt] " & _
"FROM tblTempK7"
DoCmd.RunSQL sqlCommand
'Suivi des MAJ
sqlCommand = "INSERT INTO tblSuiviMAJ (TableCible, NomFichier, DateAjout, NbLignes) " _
& "VALUES (""tblK7"", """ & Dir(chemin) & """, NOW(), Dcount(""*"", ""tblTempK7""))"
DoCmd.RunSQL sqlCommand
End If
Next
'Fin et nettoyage
DoCmd.SetWarnings True
MsgBox "Importation Terminée"
Exit Sub
'Gestion des erreurs
gestionErreurs:
Debug.Print Err.Number
Debug.Print Err.Description
DoCmd.SetWarnings True
MsgBox "Erreur lors de l'importation"
End Sub |
Partager