Тема: Интерфейс не зарегестрирован

При формировании отчета вылетает ошибка "Интерфейс не зарегестрирован"
TechnologiCS 4.6.3
Office 2003
Ошибка на одном компьютере, возникла после переустановки системы
В чем может быть дело?

Re: Интерфейс не зарегестрирован

Зарегистрируйте библиотеку csdnrpt.dllcsdnrptlib.dll
Проверьте настройки безопасности Офиса Установка и настройка дополнительного ПО.

(изменено: tvex, 10 октября 2011 14:16:37)

Re: Интерфейс не зарегестрирован

Зарегистрировали, настроили, перезагрузились - не помогло

Re: Интерфейс не зарегестрирован

Если не ошибаюсь по ошибке, то помогает только полная переустановка. Но разобраться стоит, так как пока не ясно совершенно что происходит.

Скрин ошибки, точное сообщение об ошибке. Очистите временную папку перед выполнением отчета, посмотрите какие файлы созданы (.mdb, .xls)  что в них находится.

Re: Интерфейс не зарегестрирован

Создается файл ReportDB_11102011 74428.mdb с пустыми таблицами

Скрин с ошибкой прилагается

Post's attachments

screen.jpg 94.87 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: Интерфейс не зарегестрирован

В созданном файле есть basic модули и какие?

Re: Интерфейс не зарегестрирован

Нет никаких

Re: Интерфейс не зарегестрирован

на всякий случай, может я что то не понимаю

Post's attachments

ReportDB_11102011 74428.mdb 360 Кб, 3 скачиваний с 2011-10-11 

You don't have the permssions to download the attachments of this post.

Re: Интерфейс не зарегестрирован

Параметры безопасности Access настроены?

Re: Интерфейс не зарегестрирован

Да, настроены

Re: Интерфейс не зарегестрирован

переходим в редактор VBA (Alt+F11).

Создаем новый модуль,  в нем процедурку тестовую

Sub t1()
  adodbName = Application.References.Item("ADODB").Name
  MsgBox adodbName
End Sub

Встаем на этот код и выполняем его (F5). Результаты?

Re: Интерфейс не зарегестрирован

все выполняется, окно с сообщением ADODB

Re: Интерфейс не зарегестрирован

создаем еще процедурку и выполняем ее

Sub t2()
  Set M = Application.VBE.ActiveVBProject.VBComponents.Add(1)
  M.Name = "MyTestModule1"
  
  LineCnt = M.CodeModule.CountOfLines
  
  Call M.CodeModule.InsertLines(LineCnt, "Sub g1")
  Call M.CodeModule.InsertLines(LineCnt + 1, "MsgBox Application.CurrentDb.Name")
  Call M.CodeModule.InsertLines(LineCnt + 2, "End Sub")
  
End Sub

должен появиться  новый модуль и именем MyTestModule1 и в нем процедурка g1.

Результаты?

Re: Интерфейс не зарегестрирован

Все отработало

Re: Интерфейс не зарегестрирован

Очищаем временную папку, запускаем отчет, когда появилась ошибка убиваем процесс TechnologiCS и получившийся mdb файл сюда-же прикрепите.

Сразу скажу - ошибка подобная встречалась, но ни разу так просто обойти ее не удалось, заканчивалось обычно переустановкой системы (винды). Так что результат не гарантируем,  но попробовать можем, постараюсь оперативно отвечать.

Re: Интерфейс не зарегестрирован

Спасибо за помощь, переустанавливать винду не очень хотелось бы

Post's attachments

ReportDB_11102011 85908.mdb 360 Кб, 1 скачиваний с 2011-10-11 

You don't have the permssions to download the attachments of this post.

Re: Интерфейс не зарегестрирован

Постараемся без него, главное чтобы терпения хватило.

В личке инструкция как создать лог файл. Жду результатов.

Re: Интерфейс не зарегестрирован

Олег Зырянов пишет:

Постараемся без него, главное чтобы терпения хватило.

В личке инструкция как создать лог файл. Жду результатов.

Лог файл приложили

Post's attachments

TCS.log 4.21 Кб, 6 скачиваний с 2011-10-11 

You don't have the permssions to download the attachments of this post.

Re: Интерфейс не зарегестрирован

Открываем БД (любуе из приложенных).
Создаем вот такой код

Dim RS1  As ADODB.Recordset

Function Open1()
 Set RS1 = New ADODB.Recordset
 RS1.Open "RptSheet", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
End Function

Function Close1()

RS1.Close
End Function


Function Add1(A As Variant)
Dim I, J As Long
For I = 1 To UBound(A, 1) Step 1
    RS1.AddNew
    For J = 0 To UBound(A, 2) - 1
       RS1.Fields(J) = A(I, J + 1)
    Next J
    RS1.Update
Next I
End Function


Sub t3()
 Call Open1
 Dim A(5, 5)
 Dim I, J As Long
 For I = 1 To UBound(A, 1) Step 1
    For J = 0 To UBound(A, 2) - 1
      A(I, J) = I * J
    Next J
 Next I
 
 Call Add1(A)
 Call Close1
 
End Sub

Встаем на процедуру t3 и выполняем ее.

В таблице RptSheet должны появиться записи.

Re: Интерфейс не зарегестрирован

В таблице RptSheet появилось 5 записей

Re: Интерфейс не зарегестрирован

Открываем БД (любую из приложенных).

Создаем код что указан выше (можно туже базу взять). Сохраняем ее ( с именем C:\1.mdb)

Создаем да диске файл 1.vbs например в блокноте и в нем такой код

  Set App = CreateObject( "Access.Application" )  
  Call App.OpenCurrentDatabase( "C:\1.mdb", False )
  
  MsgBox "1"
  App.Run( "t3" )
  MsgBox "2"

запускаем на выполнение.  В таблице RptSheet должно появиться еще 5 записей

Re: Интерфейс не зарегестрирован

Все отработало, записи появились

Re: Интерфейс не зарегестрирован

Кстати, а почему xls файл не появляется вообще?

Re: Интерфейс не зарегестрирован

хотя может это и нормально, он позже появится.
Странно, при таких тестах выгрузка данных должна в БД должна пройти по любому.
А попробуйте создать новый отчет (набор данных) на этом рабочем месте. На любой форме, самый простой, лишь бы структура файла mdb создалась. Создается успешно? можно его выполнить так же если создастся - передаются теперь данные?

Re: Интерфейс не зарегестрирован

Ну, может я скажу глупость, но ведь xls вызывается из accessa, а тот до конца не отрабатывает?