Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
[ Закрыто] Импорт данных из .csv файла посредством SQL и VBA, Подробности внутри
 
Всем доброго времени суток!
Помогите, пожалуйста, с решением следующего вопроса:

1. Есть .csv файл со статистикой продаж (в нем больше миллиона записей, т.е. в эксель он весь не залезет), в первой строчке находятся заголовки столбцов, делиметер - ;
Что нужно сделать: Нужно обработать эту статистику макросом, не загружая ее в эксель изначально. Загрузить уже нужно будет промежуточный результат (например, сумму продаж по юнитам за все дни) расчета, который будет сильно меньше по размеру.
Приоритеты: Минимизация шагов при обработке данных. Скорость выполнения обработки.

Заголовки для примера:
Юнит, день, продажи - SKU, day, sales.

Сам пытался реализовать вот такой макрос - он работает, но при условии, что я предварительно руками перегоняю текстовый файлик .csv в формат .xlsx, теряя часть данных, и разбиваю текст по столбцам в нем:
Код
Sub SQL_test()
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlManual
    End With
    
    Dim sSQLQry As String    
    Dim Conn As New ADODB.Connection
    Dim mrs As New ADODB.Recordset  
    Dim DBPath As String, sconnect As String 
    DBPath = "C:\blahblahblah\File.xlsx"
    
    sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
    Conn.Open sconnect    
    sSQLQry = "Select SKU, sum(Sales) FROM [HT$] group by SKU" - т.е., например, суммируем продажи по юнитам за все дни.    
    mrs.Open sSQLQry, Conn    
    Range("FT!A2:ZZ100000"    .ClearContents    
    Range("FT!A2"    .CopyFromRecordset mrs
        
    mrs.Close
    Set mrs = Nothing    
    Conn.Close
    Set Conn = Nothing
    
    With Application
        .Calculation = xlAutomatic
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
End Sub
Заранее большое спасибо за помощь!
Изменено: pixel89 - 10.07.2014 12:01:59
Страницы: 1
Наверх