Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2015, 09:29   #1
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию Ошибка експорта CopyFromRecordset

Имеется процедура експорта access -> excel
Результат запроса "rap_prodazhi" надо експортировать на лист "sprz" (на листе есть формулы, которые используют експортированые данные)
Вариат поячеечного вывода очень медленный. Нашел комманду CopyFromRecordset, но компилятор ругается:
Run-time error '430':
Class does not support Automation or does not support expected interface


На ресурсе 1 нашел что надо перерегистрировать dao360.dll. Результат отрицательный.

Ресурс2 советует описать переменную rst как Variant. Результат отрицательный.

Прошу подсказки как решить проблему или совет как иначе вывести результат запроса в excel

Код:
Private Sub п2_ЗаповнитиАркушІмпорту()
   ' On Error GoTo п2_ЗаповнитиАркушІмпорту_Error
    Dim appExcel As Object
    Dim wbk As Excel.Workbook
    Dim wks As Excel.worksheet
    Dim rst As Recordset
    Dim i As Integer, j As Integer
    Dim FieldsCount As Integer
    Dim LastRow As Integer, RecordsCount As Long
    
    Set appExcel = CreateObject("Excel.Application")

    Set rst = CurrentDb.OpenRecordset("rap_prodazhi")
    With rst
        FieldsCount = .Fields.Count
        .MoveLast    
        RecordsCount = .RecordCount
        .MoveFirst
    End With

    If Dir(FileName) <> "" Then
        Set wbk = appExcel.Workbooks.Open(FileName)
    Else
        MsgBox "File " & Chr(10) & FileName & Chr(10) & "not found", vbOKOnly + vbCritical, "помилка відкриття файлу"
        Exit Sub
    End If
    Set wks = wbk.Worksheets("sprz")

    If FieldsCount = 28 Then
        For j = 1 To FieldsCount
            ' output field names
            wks.Cells(1, j).Value = rst.Fields(j - 1).Name
        Next j
        i = 1

' ------ медленный фрагмент -------------
'        Do While Not rst.EOF
'            For j = 1 To FieldsCount
'                wks.Cells(i + 1, j).Value = rst.Fields(j - 1)
'            Next j
'            i = i + 1
'
'            rst.MoveNext
'        Loop
'-----------------------------
        wks.Range("A2").CopyFromRecordset rst ' ОШИБКА 
    Else
        MsgBox "АХТУНГ Б#@!", vbOKOnly + vbCritical, "SHIT HAPPENED"
    End If
	Set wks = Nothing
    Set wbk = Nothing
    Set appExcel = Nothing
end sub
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 14.10.2015, 20:25   #2
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Проблема решилась переустановкой access. Вместо 32х разрядного 2010 поставил 64х разрядный 2013. Win7 x64
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 30.06.2017, 16:33   #3
Ethex
Пользователь
 
Регистрация: 26.04.2017
Сообщений: 86
По умолчанию

Мне помогло выполнение:

Regsvr32.exe "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL"
Ethex вне форума Ответить с цитированием
Старый 23.01.2020, 11:41   #4
mik_stv
Новичок
Джуниор
 
Регистрация: 23.01.2020
Сообщений: 1
По умолчанию похоже, что устарело

всё слетело после установки Корела
активация DAO360.DLL не сработала

помогло отсюда
https://social.msdn.microsoft.com/Forums/sqlserver/en-US

требуется подключить библиотеки

'--Need a Reference to The Excel Object Library
'--Need a reference to Microsoft ActiveX Data Objects x.x Library

и через (копирую из источника)
Dim cmd As New ADODB.Command, RS As New ADODB.Recordset

cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandType = adCmdText
cmd.CommandText = "Select * from tbl4"
Set RS = cmd.Execute
xlSht.Range("A2").CopyFromRecordset RS
mik_stv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Не могу подружить ADO и CopyFromRecordset Дятел Microsoft Office Excel 0 16.03.2010 09:30
проблема c CopyFromRecordset b00s Microsoft Office Access 2 20.04.2008 22:08