Это во многом зависит от того, создана ли таблица Access или вы хотите создать ее на лету.Предположим (для простоты), что таблица уже существует (вы всегда можете вернуться и создать таблицу).Как и предлагалось ранее, вам понадобятся некоторые скриптовые инструменты:
Dim FSO As FileSystemObject, Fo As TextStream, line As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Fo = FSO.OpenTextFile("csvfile.csv")
Это позволит вам прочитать ваш CSV-файл, который является текстовым файлом.Здесь вы контролируете, какой разделитель вы используете и какой формат даты будет использоваться и т. Д.Вам также нужно включить механизм базы данных:
Dim db As Database
Set db = DBEngine.OpenDatabase("mydatabase.accdb")
И это в основном все, что вам нужно.Вы читаете свой CSV-файл построчно:
While Not Fo.AtEndOfStream
line = Fo.ReadLine
Теперь вам нужно иметь возможность отформатировать каждое поле для таблицы, что означает: текстовые поля должны быть заключены в кавычки (")поля даты должны быть окружены #, т. д. В противном случае ядро базы данных будет с шумом жаловаться. Но, опять же, вы здесь отвечаете, и вы можете делать любые косметические операции, которые вам нужны, для вашей строки ввода.ради простоты) вам удобно программировать на VBA, поэтому давайте рассмотрим суть проблемы:
db.Execute ("INSERT INTO myTable VALUES (" & line & ")")
Wend
В этот момент строка была превращена во что-то съедобноедля механизма базы данных, например, если исходная строка чтения была
33,04/27/2019,1,1,0,9,23.1,10,72.3,77,85,96,95,98,10,5.4,5.5,5.1,Cashew,0
, вы изменили ее на
33,#04/27/2019#,1,1,0,9,23.1,10,72.3,77,85,96,95,98,10,5.4,5.5,5.1,"Cashew",0
Последнее примечание: Это важночто каждое поле файла CSV совпадает с полем в таблице. Это включает, по крайней мере, но не обязательно последнее, в правильном порядке. Вы должны убедиться, что на этапе предварительной обработки вы. HОпе, это поставит вас на правильный путь.