У меня возникли проблемы.Выходной набор записей в VBA с использованием условия
У меня есть база данных csv с 25 миллионами строк с четырьмя столбцами: FIELD (от 1 до 5), DATEHOUR (в формате yyyyddmmhhmmssxxx, год, день, месяц, час, минута, секунда и милисекунды), BOUND (юг или север) и CATEGORY (от 1 до 10).
Я использую следующий код
Public Sub QueryTextFile()
Dim Recordset As ADODB.Recordset
Dim ConnectionString As String
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & ";" & _
"Extended Properties=Text;"
Const SQL As String = "SELECT * FROM Dados.csv WHERE Categoria=3;"
Set Recordset = New ADODB.Recordset
Call Recordset.Open(SQL, ConnectionString, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, CommandTypeEnum.adCmdText)
Call Sheet1.Range("A1").CopyFromRecordset(Recordset)
Recordset.Close
Set Recordset = Nothing
End Sub
проблемы в том, что я, например, хочу получить только регистры для ФЕВРАЛЯ (месяц 02) и FIELD 3. Как я могу это сделать?
Спасибо, ребята!
'CopyFromRecordset' вернет только первые 65536 записей. 'ADODB.Recordset.GetRows' будет загружать полный набор записей в массив, который можно использовать для заполнения рабочего листа. Если вы можете предоставить ссылку для загрузки файла CSV, я помогу с кодом. –