Bonjour,
J'ai un problème d'importation à résoudre...
Toutes mes données sont sur Excel, Je dois réaliser à partir d'access une importation de ces données pour créer une nouvelle table, qui contiendra alors tous les en-têtes. J'aimerais trouver un programme sur visual basic qui permettrai de rendre cette importation automatique sachant que mes données sur excel peuvent etre modifiéé a tout moment (c'est pour ça que je peux pas crée la table en précisant les champs auparavant, il faut que le programme les reconnaisse). J'ai vu qu'on pouvait directement chercher les données dans une feuille d'Excel mais aussi qu'on pouvait importer le fichier csv correspondant. Quel est le plus facile? et comment je pourrais faire?
Quelqu'un peut m'aider la dedans s'il vous plait?
J'ai essayé ce code :
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 Private Sub ImportCSV(sFileCSV As String, sTable As String) Dim lFileCSV As Long Dim sLine As String Dim rsTable As Recordsets Dim sField As String Dim n As Integer Dim m As Long lFileCSV = FreeFile Open sFileCSV For Input As #lFileCSV Set rsTable = CurrenDB.OpenRecordset(sTable, dbOpenTable) m = 0 Do Line Input #lFileCSV, sLine rsTable.AddNew rsTable.Refresh For n = 1 To Len(sLine) If Mid(sLine, n, 1) <> ";" Then sField = sField & Mid(sLine, n, 1) Else rsTable(m) = sField sField = "" m = m + 1 End If If n = Len(sLine) Then rsTable(m) = sField sField = "" m = 0 End If Next n rsTable.Update Loop Until EOF(lFileCSV) Close #lFileCSV rsTable.Close End Sub
mais il y a beaucoup de problème dedans apparemment... il bloque avec AddNew par exemple.
sinon j'ai aussi essayé ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel3, "Etudiant_CSV", Chemin_Fichier, True, Feuille1
mais je sais pas quel type de fichier je dois mettre : acSpreadsheetTypeExcel3
ou un autre?
parce que ça marche pas...
Si vous avez besoin de plus de renseignement, demandez-moi.
Merci d'avance
Partager