powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос подключения базы
25 сообщений из 28, страница 1 из 2
Вопрос подключения базы
    #34613980
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос не могу понять в чем тут дело.
Есть база в ней таблица QAZ пытаюсь ее открыть выдаеит ошибку типа в строке:
Set rs = base.OpenRecordset("QAZ", dbOpenDynaset)
пишешь в место имени таблицы что-то еще пишет что такой таблицы нет.
Хелп плиз.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim base As Database
Dim rs As Recordset
Dim SQL1 As String

Private Sub Form_Load()
Dim tbl As TableDef
Set base = OpenDatabase("C:\hard\db3.mdb")
Set rs = base.OpenRecordset("QAZ", dbOpenDynaset)
List1.Clear
For Each tbl In base.TableDefs
List1.AddItem tbl.Name
Next
End Sub
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34614917
DEP1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Честно говоря не пойму где ошибка но вот у меня все нормално работает смотри может сам найдеш.
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34615117
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsuВопрос не могу понять в чем тут дело.
Есть база в ней таблица QAZ пытаюсь ее открыть выдаеит ошибку типа в строке:
Set rs = base.OpenRecordset("QAZ", dbOpenDynaset)
пишешь в место имени таблицы что-то еще пишет что такой таблицы нет.
Хелп плиз.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim base As Database
Dim rs As Recordset
Dim SQL1 As String

Private Sub Form_Load()
Dim tbl As TableDef
Set base = OpenDatabase("C:\hard\db3.mdb")
Set rs = base.OpenRecordset("QAZ", dbOpenDynaset)
List1.Clear
For Each tbl In base.TableDefs
List1.AddItem tbl.Name
Next
End Sub



Может в том ошибка, что слово base зарезервированное, а ты его как идентификатор сделал?
Или это глюк здешнего скрипта [VBA]
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34616544
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем-то разобрался сам надо было добавить:
Код: plaintext
1.
2.
Dim base As dao.Database
Dim rs As dao.Recordset
Но теперь хотелось бы узнать какой контрол (таблица) поддерживает автозаполнениие типа:
Код: plaintext
1.
Set XXX.DataSource = rs
Сколько Gridов не переберал все выдают ошибку типов.
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34617055
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsuВообщем-то разобрался сам надо было добавить:
Код: plaintext
1.
2.
Dim base As dao.Database
Dim rs As dao.Recordset
Но теперь хотелось бы узнать какой контрол (таблица) поддерживает автозаполнениие типа:
Код: plaintext
1.
Set XXX.DataSource = rs
Сколько Gridов не переберал все выдают ошибку типов.

А что мешает воспользоваться ADODB
Тогда типичный DataGrid просто предназначен под таблицу БД
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34617108
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем то ничего не мешает, только не знание ни того, ни другого. Сейчас пробую юзать ADODB.
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34617112
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C DAO используется стандартный Microsoft DBGrid или ComponentOne TrueDBGrid, который не OLE DB.
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618002
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос как ADODB определить название таблиц
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618020
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от базы. А универсальный способ - ADOX.
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618031
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsuВопрос как ADODB определить название таблиц

По-моему никак! Названия надо знать заранее и заранее определять в коде, кода рекорсетишь из неё. Хотя мона подключить ADOX и там узнать количесвто и название таблиц
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618068
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADODB и OpenSchema
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618123
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_ADODB и OpenSchema


Большое ВАМА спасибо!
Меня этот вопрос тоже мучил, зато теперь всё будем знать. Но пива не поставлю - не люблю и вам не советую
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618141
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я то же часто спрашиваю!
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618385
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klen_ADODB и OpenSchema
Спасибо. :)
Еще бы определить связи между таблицами?
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34618413
Guest11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsu klen_ADODB и OpenSchema
Спасибо. :)
Еще бы определить связи между таблицами?

OpenSchema( adSchemaForeignKeys )
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619067
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest11 konstsu klen_ADODB и OpenSchema
Спасибо. :)
Еще бы определить связи между таблицами?

OpenSchema( adSchemaForeignKeys )
А не хочет пишет поставшик или объект не может выполнить требуюмую операцию
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619108
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619253
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klen_Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
Вот и хочеться определить тип связи и какая таблица с какой связана.
да и какие параметры смотреть (rs!ХХХ)
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619618
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsuкакая таблица с какой связана.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim db As ADODB.Connection
'Set db = Application.CurrentProject.Connection  'если VBA Access
Set db = New ADODB.Connection      'если VB6
    db.Provider = "Microsoft.Jet.OLEDB.4.0"
    db.Open App.Path & "\db1.mdb", "Admin"
    
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs = db.OpenSchema(adSchemaForeignKeys)

Do Until rs.EOF
    pNAM = rs!PK_TABLE_NAME
    fNAM = rs!FK_TABLE_NAME
    rs.MoveNext
Loop
rs.Close:  Set rs = Nothing
db.Close:  Set db = Nothing
в переменных pNAM и fNAM будут имена таблиц,
между которыми установлена связь в меню Сервис -> Схема данных
остальные свойства не смог определить
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619759
Guest11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsu klen_Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
Вот и хочеться определить тип связи и какая таблица с какой связана.
да и какие параметры смотреть (rs!ХХХ)
FOREIGN_KEYS Rowset
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34619761
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прикольно, спасибо большое, вообщемто это то что я хотел узнать
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34620353
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замучаю я вас вопросами :)
Открываю способом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Set cnn = New ADODB.Connection
    With cnn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Data Source") = App.Path & "\base.mdb"
        .Properties("Prompt") = adPromptAlways
        .Properties("Persist Security Info") = False
        .Open
    End With
Приэтом автоматически не заполняеться контрол DataGrid (в котором есть возможность редактирования данных)
но стррока работает:
Код: plaintext
Set rs = cnn.OpenSchema(adSchemaForeignKeys)
Отурываю вторым сбособом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Set cnn = New ADODB.Connection
    With cnn
        .Provider = "MSDASQL.1"
        .Properties("Data Source") = App.Path & "\base.mdb"
        .Properties("Initial Catalog") = App.Path & "\base.mdb"
        'Свойство Prompt отвечает за запрос пароля.
        .Properties("Prompt") = adPromptAlways
        .Properties("Persist Security Info") = False
        .Open
    End With
Приэтом автоматически заполняеться контрол DataGrid (в котором есть возможность редактирования данных)
но стррока не робит:
Код: plaintext
Set rs = cnn.OpenSchema(adSchemaForeignKeys)
В чем тут дело?
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34620905
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstsuЗамучаю я вас вопросами :)
Открываю способом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Set cnn = New ADODB.Connection
    With cnn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Data Source") = App.Path & "\base.mdb"
        .Properties("Prompt") = adPromptAlways
        .Properties("Persist Security Info") = False
        .Open
    End With
Приэтом автоматически не заполняеться контрол DataGrid (в котором есть возможность редактирования данных)
но стррока работает:
Код: plaintext
Set rs = cnn.OpenSchema(adSchemaForeignKeys)
Отурываю вторым сбособом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Set cnn = New ADODB.Connection
    With cnn
        .Provider = "MSDASQL.1"
        .Properties("Data Source") = App.Path & "\base.mdb"
        .Properties("Initial Catalog") = App.Path & "\base.mdb"
        'Свойство Prompt отвечает за запрос пароля.
        .Properties("Prompt") = adPromptAlways
        .Properties("Persist Security Info") = False
        .Open
    End With
Приэтом автоматически заполняеться контрол DataGrid (в котором есть возможность редактирования данных)
но стррока не робит:
Код: plaintext
Set rs = cnn.OpenSchema(adSchemaForeignKeys)
В чем тут дело?


Может в разнице Провайдеров, Джет МС много не может, например обновлять данные, про что честно описано в одной книге, а второй чего-т другого не может. К тому же, есть зависимость как открыть соединение и рекордсет создать из данных
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34621876
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно что в провайдерах, просто может есть что-то универсальное, работаю как наверное уже понятно с аксессовской базо
...
Рейтинг: 0 / 0
Вопрос подключения базы
    #34622038
konstsu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyC DAO используется стандартный Microsoft DBGrid или ComponentOne TrueDBGrid, который не OLE DB.

А где их взять DBGrid нашел, но результат нулевой, а второй компонент в упор не вижу
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос подключения базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]