0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 5
1

Как базу после открытия через DAO связать к Data Object?

09.07.2007, 11:14. Показов 1273. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Открываю базу mdb через DAO:

Private Sub Form_Load()
Dim WR As Workspace
Dim db As DAO.Database
Dim rc As DAO.Recordset
Set WR = CreateWorkspace('', 'admin', '', dbUseJet)
Set db = WR.OpenDatabase('c:insurmainbase.mdb')

Set rc = db.OpenRecordset('table1')
rc.MoveFirst

For i = 1 To 5
rc.MoveNext

MsgBox (rc.Fields(0).Value) 'показывает содержимое первого поля

'А ВОТ ЗДЕСЬ ВОТ ПРОБЛЕМЫ, ERR-3251: Operation is not supported for this type of object
MsgBox (rc.AbsolutePosition)
Next i

End Sub

как эту базу после открытия через DAO связать к Data Object,
и как выяснить текушую запись(т.к.AbsolutePosition вызывает ощибку), и будут ли после
такого подключения к базе данных объекты TextBox, ComboBox и тому подобные видеть в
DataSource и DataField во время дизайна (design time).

Буду весьма благодарен если если кто пришлет примерный проект для работы с базой Access через
DAO.

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2007, 11:14
Ответы с готовыми решениями:

Как открыть базу dbf 2.6ver.. через DAO
При открытии он мне пишет что ISAM не установлен. Где можно взять билиотеку чтобы открывать старые...

Проблема открытия DBF через DAO
подскажите как открыть файл ' *.dbf ' через Microsoft DAO 3.51 Object Library чтобы получить к...

Как закрыть меню через секунду, после открытия (0)
Subj

Как связать два combobox так, что бы они зависили друг от друга, через базу данных?
Доброго времени суток. Я начинающий программист. Решил написать программу, для удобства работы. Но...

8
Karamba
09.07.2007, 14:06 2
в принципе, у тебя все правильно. вот тока recordset у тебя немного неправильно открывается. ниже кидаю свой пример. он открывает базу, открывает таблицу Titles, выводит какое-то количество записей (а также их позицию). и в конце присваивает наш рекордсет DataControl-у, который в свою очередь увязан с DBGrid.

для использования примера положи на форму CommandButton, DataControl и DBGrid (подключи в компонентах, называется Microsoft Data Bound Grid Control 5.0). в пропертях DBGrid DataSource поставь Data1. скопируй пример и упражняйся

Option Explicit

Private Sub Command1_Click()
Dim DB As Database
Dim RS As Recordset

Dim sSQL As String
Dim iTmp As Integer

Set DB = OpenDatabase('H:Program FilesMicrosoft Visual StudioVB98BIBLIO.MDB', , False)
sSQL = 'select * from Titles'
Set RS = DB.OpenRecordset(sSQL)

RS.MoveFirst
For iTmp = 0 To 5
Debug.Print RS.AbsolutePosition, RS.Fields(0).Value 'prosto vyvodim AbsolutePosition i znachenie pervogo polja v Debug
RS.MoveNext
Next

' prisvaivaem DataControl-u nash recordset
Set Data1.Recordset = RS
Data1.Refresh
End Sub
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 5
09.07.2007, 15:25  [ТС] 3
Спасибо за отклик, скопировал и упражняюсь

Но есть проблемы,
нижеследующая строка твоего кода не нравится компилятору:
Set RS = DB.OpenRecordset(sSQL)

говорит Type mismatch err-13

ну, чё делать дальше?
и еше
я прикрепил Data object и DBGrid к своему коду,
но ощибки имеются.....
0
Karamba
09.07.2007, 16:02 4
чЮдеса, однако... странно.

ты DAO библиотеку в References прилепил?
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 5
09.07.2007, 16:22  [ТС] 5
да конечно, как же без него?
ты сам попробовал свой код запустить ?
или как профи выкладываеш из памяти?
0
Karamba
09.07.2007, 16:26 6
мог и по памяти, но таки прогнал сей скрипт. у тебя какой ВБ? у меня ВБ6 и Сервис Пак 5 к нему.

результат моего кода:
1. в Debuge пишет
0 dBASE III : A Practical Guide
1 The dBASE Programming Language
2 dBASE III Plus
3 Database Management : Developing Application Systems Using Oracle
4 Wordstar 4.0-6.0 Quick Reference Guide
5 Oracle Triggers and Stored Procedure Programming

2. в гриде показал всю таблицу Titles.

не знаю что там у тебя не получилось, но в данном случае это чуть ли не христоматийный пример
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 5
09.07.2007, 17:40  [ТС] 7
У меня тоже VB6.0, но никакого сервис ПАКа не было
если знаеш подскажи откуда можно скачать?
0
Karamba
09.07.2007, 17:44 8
http://msdn.microsoft.com/vstudio/sp/vs6sp5/default.asp
saint
15.10.2007, 20:54 9
В References отключи ADO. У тебя Access 2000, иначе этой проблемы бы небыло.
Best regards, Alsin
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2007, 20:54
Помогаю со студенческими работами здесь

Как запустить функцию через какое-то время после открытия формы?
Как запустить функцию через какое-то время после открытия формы? Как сделать, что бы после...

Как открыть большую dbf базу, используя DAO?
Помогите по сабжу... Как поступить?? БАза весит порядка 11 мб, другая 35 мб... их нада юзать в...

Как открыть базу данных с паролем....используя DAO????
Мне надо открыть базу данных с паролем... я работаю с DAO 3.60 ..... как сформировать запрос?

Связать базу данных Access через ADODC
Всем привет! Я тут в первый раз! у меня проблема в VisualBasic не могу связать базу данных Access...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru