Bonjour,
Je voudrais pouvoir lancer une macro à partir d'Excel, de manière à ce que les informations qui se trouvent dans mon fichier Excel soient envoyés vers mon fichier Access. Cependant, je ne veux récupérer que certaines lignes du fichier Excel, afin de les rajouter (à la suite des lignes déjà existantes des tables Access) dans différentes tables et différents champs.
En surfant sur votre forum, j'ai trouvé ce code :
Si j'ai bien compris, ce code permet d'importer à partir d'Access des informations provenant de Excel. Moi, je voudrais pouvoir avec un code SQL faire cela dans l'autre sens: rajouter dans ma base Access (sans l'ouvrir nécessairement) les informations que j'aurais dans ma feuille Excel. N'étant pas très familier avec Access en plus, je m'y perds vraiment...
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 rivate Sub Commande0_Click() Dim oApp As Excel.Application Dim oWkb As Excel.Workbook Dim oWSht As Excel.Worksheet Set oApp = CreateObject("excel.application") Set oWkb = oApp.Workbooks.Open("NOM DE TON FICHIER EXCEL") Set oWSht = oWkb.Worksheets("NOM DE TA FEUILLE") 'première ligne ou tu commence ton import i = 2 'pour éviter les messages lors de l'ajout des enregistrements DoCmd.SetWarnings False 'tant que la cellule n'est pas vide While oWSht.Range("B" & i).Value <> "" cSQL = "insert into [NOM TABLE] ( [Nom Champs]) values (" & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & ")" 'La fonction chr(34) est une fonction VBA qui renvoie un caractère en fonction du code ASCII. ici 34. Chr(34) nous renvoie un guillemet. ' Utile au cas où une cellule serai vide et ainsi importer une chaine vide "". sinon ca générerait une violation SQL. 'exécute la requète DoCmd.RunSQL cSQL i = i + 1 Wend DoCmd.SetWarnings True End Sub
Comment faire ?
Quelqu'un aurait-il une idée ?
Merci d'avance !
Partager