MS Access VBA импортирует csv в новую таблицу с помощью SQL и Schema.ini - принудительное использование имен столбцов таблицы - PullRequest
0 голосов
/ 29 января 2019

В папке C:\Excel у меня есть следующие файлы:

  • test.csv
  • Schema.ini

Schema.ini содержит:

[test.csv] 
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=2
CharacterSet=ANSI
DecimalSymbol=, 

Col1=Lot Char
Col2=dateResa1 Date
Col3=PRIXLOG_IMMO Double
Col4=MONTANT_CA_ESTIME Double

И в MS Access у меня есть процедура экспорта, которая загружает данные CSV-файла в созданную таблицу: TEST

Private Sub importCSV_Click()

Dim strSQL As String

On Error Resume Next: DoCmd.DeleteObject acTable, "TEST": On Error GoTo 0

strSQL = " SELECT CStr(t.lot), CDate(t.dateResa1), CDbl(t.PRIXLOG_IMMO), CDbl(t.MONTANT_CA_ESTIME) " & _
" INTO TEST  " & _
" FROM [Text;FMT=Delimited;HDR=YES;CharacterSet=ANSI;DATABASE=C:\Excel].[test.csv] t"
CurrentDb.Execute strSQL

End Sub

Отлично работает, но имена столбцов таблицы MS-Access TEST имеют имя:

  • Expr1001
  • Expr1002 ... и т. Д.

Есть ли способ принудительно задать имя столбца таблицы TESTиспользуя только SQL и Schema.ini?

Решение:

Поскольку я преобразовал поля с помощью CStr, CDate ..., имена полей должны быть переопределены с псевдонимоми обледенение на торте, псевдоним может совпадать с именем поля.Я проверял это

1 Ответ

0 голосов
/ 30 января 2019

Чтобы избежать преобразования полей в Access SQL, достаточно объявления типа для каждого столбца в Schema.ini, которое позволяет использовать * в запросе Access!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...