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
|
Sub ImportCAExcel()
Const CHEMIN_FICHIER As String = "C:\User\Argyronet\DVP\data\CA.xlsx"
Const TABLE_EXCEL As String = "Feuille CA"
Const TABLE_CIBLE As String = "TableCA"
Dim strRequetSQL As String
Dim lngLignesCA As Long
On Error Resume Next
'On supprime la table avant
DoCmd.DeleteObject acTable, TABLE_EXCEL
If Err <> 0 Then
Err.Clear
End If
On Error GoTo Err_ImportCAExcel
'On importe la feuille en son entier (Mettre la feuille de ce classeur en position 1)
DoCmd.TransferSpreadsheet acImport, 8, TABLE_EXCEL, CHEMIN_FICHIER, True
'On construit la chaîne SQL de la requête (par concaténation des mois et années)
strRequetSQL = "INSERT INTO " & TABLE_CIBLE & " ( Mois, Année, CA ) "
strRequetSQL = strRequetSQL & "SELECT Mois, Année, CA "
strRequetSQL = strRequetSQL & "FROM [" & TABLE_EXCEL & "] "
strRequetSQL = strRequetSQL & "WHERE ((([Mois] & '-' & [Année]) Not In (SELECT [Mois] & '-' & [Année] FROM [" & TABLE_CIBLE & "];)));"
With CurrentDb
.Execute strRequetSQL, dbConsistent
lngLignesCA = .RecordsAffected
End With
If RecordsAffected Then
MsgBox "C'est fini : " & lngLignesCA & " lignes importée(s) dans la table", vbInformation
Else
MsgBox "C'est fini : aucune ligne importée car toute les lignes sont communes...", vbExclamation
End If
Ex_Err_ImportCAExcel:
Exit Sub
Err_ImportCAExcel:
MsgBox Err.Description, vbExclamation, Err.Number
Resume Ex_Err_ImportCAExcel
End Sub |
Partager