Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос подключения базы / 25 сообщений из 28, страница 1 из 2
22.06.2007, 15:12
    #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
22.06.2007, 21:36
    #34614917
DEP1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Честно говоря не пойму где ошибка но вот у меня все нормално работает смотри может сам найдеш.
...
Рейтинг: 0 / 0
23.06.2007, 09:51
    #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
25.06.2007, 10:13
    #34616544
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Вообщем-то разобрался сам надо было добавить:
Код: plaintext
1.
2.
Dim base As dao.Database
Dim rs As dao.Recordset
Но теперь хотелось бы узнать какой контрол (таблица) поддерживает автозаполнениие типа:
Код: plaintext
1.
Set XXX.DataSource = rs
Сколько Gridов не переберал все выдают ошибку типов.
...
Рейтинг: 0 / 0
25.06.2007, 12:41
    #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
25.06.2007, 12:57
    #34617108
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Вообщем то ничего не мешает, только не знание ни того, ни другого. Сейчас пробую юзать ADODB.
...
Рейтинг: 0 / 0
25.06.2007, 12:59
    #34617112
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
C DAO используется стандартный Microsoft DBGrid или ComponentOne TrueDBGrid, который не OLE DB.
...
Рейтинг: 0 / 0
25.06.2007, 16:18
    #34618002
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Вопрос как ADODB определить название таблиц
...
Рейтинг: 0 / 0
25.06.2007, 16:24
    #34618020
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Зависит от базы. А универсальный способ - ADOX.
...
Рейтинг: 0 / 0
25.06.2007, 16:26
    #34618031
Ден Программёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
konstsuВопрос как ADODB определить название таблиц

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


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

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

OpenSchema( adSchemaForeignKeys )
А не хочет пишет поставшик или объект не может выполнить требуюмую операцию
...
Рейтинг: 0 / 0
26.06.2007, 09:43
    #34619108
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
...
Рейтинг: 0 / 0
26.06.2007, 10:39
    #34619253
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
klen_Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
Вот и хочеться определить тип связи и какая таблица с какой связана.
да и какие параметры смотреть (rs!ХХХ)
...
Рейтинг: 0 / 0
26.06.2007, 12:03
    #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
26.06.2007, 12:37
    #34619759
Guest11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
konstsu klen_Возможно в таблице есть повторяющиеся значения
Какие именно связи ты хочешь создать?
Один ко многим, или как?
Вот и хочеться определить тип связи и какая таблица с какой связана.
да и какие параметры смотреть (rs!ХХХ)
FOREIGN_KEYS Rowset
...
Рейтинг: 0 / 0
26.06.2007, 12:38
    #34619761
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Прикольно, спасибо большое, вообщемто это то что я хотел узнать
...
Рейтинг: 0 / 0
26.06.2007, 15:05
    #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
26.06.2007, 17:17
    #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
27.06.2007, 09:27
    #34621876
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
Понятно что в провайдерах, просто может есть что-то универсальное, работаю как наверное уже понятно с аксессовской базо
...
Рейтинг: 0 / 0
27.06.2007, 10:18
    #34622038
konstsu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос подключения базы
AntonariyC DAO используется стандартный Microsoft DBGrid или ComponentOne TrueDBGrid, который не OLE DB.

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


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