OpenDatabase и Excel

Программирование на Visual Basic for Applications
Rom
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 30.09.2004 (Чт) 18:50

OpenDatabase и Excel

Сообщение Rom » 30.09.2004 (Чт) 19:39

Здравствуйте.
Возникла проблема такого плана. При попытке открыть базу возникает ошибка ActiveX component can't create object. Как её можно исправить? Может, не хватает какой-нибудь библиотеки, но какой?
Подключена Microsoft DAO 3.6 Object library

Открываю базу следующим образом:
Код: Выделить всё
Dim db As Database
Dim rs As Recordset
Dim temp As Integer
Dim i As Integer
Dim s1 As String
Set db = OpenDatabase(Name:=ThisWorkbook.Path & "\error.mdb")
Set rs = db.OpenRecordset(mytable, dbOpenDynaset)

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 05.10.2004 (Вт) 15:39

Попробуй db ,rs сделать типа variant, может поможет

Steiner
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 26.10.2004 (Вт) 10:54

Сообщение Steiner » 26.10.2004 (Вт) 11:07

Попробуй такSet
rs = db.OpenRecordset(mytable, dbOpenTable)
Если человек до двадцати лет не поумнел, значит он увы уже никогда НЕ ПОУМНЕТ!

Lider
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.06.2004 (Ср) 15:44
Откуда: Москва

Сообщение Lider » 29.10.2004 (Пт) 13:22

Ребята ! Что-то я не пойму почему в OpenRecordset два параметра?

Вот так вроде все должно работать:

Код: Выделить всё
Dim db as DataBase
Dim rs as Recordset

Set db=OpenDataBase("C:\Мои Документы\База.mdb")
Set rs=db.OpenRecordset("Таблица1")

             For i = 0 To r.Fields.Count - 1
                             Cells(1, i + 1)..Value = r.Fields(i).Name
              Next



Ну это так, пример, чтоб не быть пустословным

Открываем Таблицу1 и заносим в верхнюю строку активного листа заголовки полей таблицы

Копируй код - будет работать , а дальше разбирайся .
Есть 10 тпов людей:
Одни понимают двоичную систему исчисления,
Другие нет!

Lider
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.06.2004 (Ср) 15:44
Откуда: Москва

Сообщение Lider » 29.10.2004 (Пт) 13:24

Прошу прощения, rs в объявлении переменной нужно заменить на r !!!
Есть 10 тпов людей:
Одни понимают двоичную систему исчисления,
Другие нет!

Lider
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.06.2004 (Ср) 15:44
Откуда: Москва

Сообщение Lider » 29.10.2004 (Пт) 13:34

А, все не буду выпендриваться - прочитал !

в Справке написано Так:

Код: Выделить всё
Set recordset = object.OpenRecordset (source, type, options, lockedits)


при type
dbOpenDynaset Открывает объект dynaset- типа Recordset, который подобty ODBC keyset курсору.

но зачем тебе это нужно ?
Есть 10 тпов людей:
Одни понимают двоичную систему исчисления,
Другие нет!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 98

    TopList