У меня есть несколько очень больших файлов .csv, которые я хочу запрашивать и извлекать записи.Я настроил это с помощью ADO в Excel 2016 успешно, или, как показалось, и удивительно быстро.Я пытаюсь запросить идентификатор поля с помощью;
SELECT * FROM <file> WHERE ID = #.
Это работало нормально до тех номеров идентификаторов, которые содержат буквы, то есть 960545H4.Они появляются намного дальше вниз по файлу, примерно на ~ 400 тыс. Строк.
Я полагаю, что проблема заключается в том, что Excel полагает, что это поле (под идентификатором заголовка) является числовым на основе первого x числа записей.Я хочу, чтобы это было установлено в текст.
Есть ли в любом случае, чтобы установить тип данных поля / столбца, чтобы я мог успешно запросить?
Sub testSQL()
Dim xlcon as ADOB.Connection
Dim xlrs as ADOB.RecordSet
Dim nextRow as Integer
Dim datafilepath as String
Dim datafilename as String
Set xlcon = New ADOB.Connection
Set xlrs = New ADOB.RecordSet
datafilepath = "U:\Common\"
datafilename = "test_file"
xlcon.Provider = "Microsoft.Jet.OLEDB.4.0"
xlcon.ConnectionString = "Data Source=" & datafilepath & ";" & "Extended Properties=""text;HDR=Yes;FMT=Delimited,"""
xlcon.Open
xlrs.Open "SELECT * FROM [" & datafilename & ".csv] WHERE ID = '023487562HH'", xlcon
'the rest of the code...
Я надеялся, что что-то по линиямиз;
SELECT * FROM [file] WHERE CStr(ID) = 34897562FD
но это, похоже, не работает.
Любая помощь очень ценится !!