Bonjour à tous,
Je souhaiterais importer un fichier excel dans ma base de données en éliminant les doublons, je suis sous access VBA avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Importer() '*********************************************************** 'VARIABLES LOCALES Dim SQL As String Dim MaCle As Integer, n As Integer, i As Integer '************************************************************ 'OUVERTURE DE LA BASE ET INITIALISATIONS Dim BD As DAO.Database Dim rst1 As DAO.Recordset Dim rst2 As DAO.Recordset Set BD = CurrentDb() Set rst1 = BD.OpenRecordset("MaTable", DB_OPEN_DYNASET) Set rst2 = BD.OpenRecordset("MaTable", DB_OPEN_TABLE) '************************************************************ 'OUVERTURE DU FICHIER EXCEL ET INITIALISATIONS Dim appExcel As Excel.Application Dim wbExcel As Excel.Workbook Dim wsExcel As Excel.Worksheet Set appExcel = CreateObjet("Excel.Application") Set wbExcel = appExcel.Workbooks.Open("C:\chemin\importer.xls") Set wsExcel = wbExcel.Worksheets(1) Dim DerniereLigne As Integer DerniereLigne = wsExcel.Range("A1").End(xlDown).Row '************************************************************ For i = 1 To DerniereLigne MaCle = wsExcel.Cells(i, 1).Value SQL = "SELECT COUNT (*) FROM Operations WHERE Operations.serie =" & MaCle & " ;" Set rst1 = DB.OpenRecordset(SQL, BDReadOnly) If rst1 = 0 Then ' Ajout de l'enregistrement à la table si la cle n'est pas présente dans la table rst2.AddNew rst2![cle] = MaCle rst2.Close End If Next i End Sub
J'ai un problème sur le bloc d'ouverture du fichier Excel : "type défini par l'utilisateur non défini". Comment palier à ce problème?
Pourriez vous également m'orienter concernant les RecordSet utilisés, j'ai lu un tutoriel sans conviction quant au code émi.
Merci pour vos suggestions
BH
Partager