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
| Private Sub btnImportXL_Click()
On Error GoTo Err_btnImportXL_Click
Dim strFilePath As String
' active la boite de dialogue de sélection d'un fichier Excel
strFilePath = GetFilePath()
'exécute la méthode d'importation des données Excel vers la tblDecesImport
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, "tblDecesImport", strFilePath, True
'supprime dans tblDecesImport les enregistrements déjà présents dans tblDeces
'img3 : 1 enregistrement subsiste, il n'existe pas dans tblDeces
'proposition de @User qui est fonctionnelle
strSql = "DELETE" _
& " FROM tblDecesImport" _
& " WHERE Exists (" _
& " SELECT * FROM tblDeces" _
& " WHERE (tblDecesImport.noms = tblDeces.noms)" _
& " AND (tblDecesImport.adresses = tblDeces.adresses)" _
& " AND (tblDecesImport.villes = tblDeces.villes)" _
& " AND (tblDecesImport.nam = tblDeces.nam)" _
& " AND (tblDecesImport.dte = tblDeces.dte))"
'ou fonctionnelle également
'strSql = "DELETE tblDecesImport.*" _
& " FROM tblDecesImport" _
& " INNER JOIN tblDeces ON (tblDecesImport.noms = tblDeces.noms)" _
& " AND (tblDecesImport.adresses = tblDeces.adresses)" _
& " AND (tblDecesImport.villes = tblDeces.villes)" _
& " AND (tblDecesImport.nam = tblDeces.nam)" _
& " AND (tblDecesImport.dte = tblDeces.dte)"
CurrentDb.Execute strSql, dbFailOnError
strSql = "INSERT INTO tblDeces (noms, adresses, villes, nam, dte)" _
& " SELECT noms, adresses, villes, nam, dte" _
& " FROM tblDecesImport"
CurrentDb.Execute strSql, dbFailOnError
strSql = "DELETE * FROM tblDecesImport"
CurrentDb.Execute strSql, dbFailOnError
Exit_btnImportXL:
Exit Sub
Err_btnImportXL_Click:
MsgBox Err.Description & " (" & Err.Number & ")", vbExclamation, "Error"
Resume Exit_btnImportXL
End Sub |
Partager