Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / mdb+ado+SQL+подчиненки - как сделать? / 23 сообщений из 23, страница 1 из 1
21.09.2018, 10:31
    #39706002
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Добрый день.

Учу АДО, дабы перевести ADP на новые рельсы. Есть mdb 2003 + SQL 2008R2. Линкованных таблиц по ОДБС нет.

Требуется сделать форму в табличном виде с подчиненной формой.
Все хочу сделать на АДО-рекордсетах.
Главная форма сделана так, все работате, фильтрация, сортировка, добавление и удаление.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub Form_Open(Cancel As Integer)
   
   Set cn = New ADODB.Connection
   With cn
      .ConnectionString = "Provider=MSDASQL;Driver=SQL Server;Server=SQLSRV;Database=dbInfoTool;Trusted_Connection=yes"
      .CursorLocation = adUseClient
      .Open
    End With

    Set rs = New ADODB.Recordset
    With rs
        .Source = "sp_PCB_Infos"           ' хранимко
        .ActiveConnection = cn
        .LockType = adLockOptimistic
        .CursorType = adOpenKeyset
        .CursorLocation = adUseClient
        .Open
    End With

    'Set rs.ActiveConnection = Nothing
    Set Me.Recordset = rs

    Set rs = Nothing
    Set cn = Nothing
End Sub



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

И еще маленький вопрос:
Если в форме нажать Shift+F9, то выскакивает сообщение "Не удается инициализировать поставщика данных". Как это исправить.
Пока что перехватом нажатий обрабатываю Shift+F9 и сообщения не появляется, но "это же не наш метод"!
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   
    If KeyCode = 120 And Shift = 1 Then KeyCode = 0

End Sub
...
Рейтинг: 0 / 0
21.09.2018, 10:44
    #39706012
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Режим как на картинке доступен только для при просмотре таблиц, в форме вы это не сделаете без извращений. Надеюсь, вы не собираетесь давать пользователю редактировать таблицы напрямую?
По мне так такой режим довольно неудобен для работы конечного пользователя. Чем не устраивает стандартный режим формы с одной подчиненной формой?
...
Рейтинг: 0 / 0
21.09.2018, 10:47
    #39706014
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
MrShinРежим как на картинке доступен только для при просмотре таблиц, в форме вы это не сделаете без извращенийзапросто

подчиненная форма должна быть в обл.данных главной формы, и обе формы в режиме таблицы
...
Рейтинг: 0 / 0
21.09.2018, 10:51
    #39706019
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
MrShin, конечно не собираюсь. На картинке именно формы, а не таблицы. Связь по полям ID в главной и ifdInfo в подчиненной.
...
Рейтинг: 0 / 0
21.09.2018, 11:07
    #39706023
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
MrShinРежим как на картинке доступен только для при просмотре таблиц, в форме вы это не сделаете без извращений.Отчего же?
...
Рейтинг: 0 / 0
21.09.2018, 11:13
    #39706026
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
NVTКак организовать подчиненную форму используя ADO?Создать набор в главной и присвоить его подчинённой, далее формы связать.


NVTвсе работате, фильтрацияФильтруешь форму (встроенные фильтры) или источник?
...
Рейтинг: 0 / 0
21.09.2018, 11:27
    #39706036
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Панург, формы не вяжутся, если в подчиненная основана на рекордсете. Совсем.

Фильтрую-сортирую штатно, по правой кнопке, т.е. штатные способы работают (на неотвязанном рекордсете).
...
Рейтинг: 0 / 0
21.09.2018, 11:39
    #39706038
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
NVTформы не вяжутся, если в подчиненная основана на рекордсете. Совсем.Попробуй указать связь для подчиненной не имя поля, а контрола.
Т.е. типа: [контрол_подчиненнаяформа]![ifdInfo]
...
Рейтинг: 0 / 0
21.09.2018, 12:27
    #39706057
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
court, увы. Ничего не изменилось
...
Рейтинг: 0 / 0
24.09.2018, 10:57
    #39706827
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Уважаемые гуру.

Неужели такое невозможно сделать средствами ADO?

Возникает сомнение, все ли можно сделать в ADO, аналогичное MDB...
...
Рейтинг: 0 / 0
24.09.2018, 16:37
    #39707189
iShvedsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
>> Set cn = Nothing

Вот это зачем в form_open ?
...
Рейтинг: 0 / 0
25.09.2018, 12:09
    #39707569
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
iShvedsky, ибо оно больше не нужно.

Пробовал убрать, не влияет...
...
Рейтинг: 0 / 0
25.09.2018, 12:21
    #39707579
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
NVT, конечно не влияет. Это просто уничтожение одной из ссылок.

Твоя проблема решаема. Проще всего в варианте главная (Одиночная)-подчинённая (табличная), в принципе и главная (табличная)-подчинённая (табличная) тоже можно решить(?). Возится времени нет. Смысл в следующем - ставить фильтр на набор данных подчинённой формы. Я прикидывал, но не доделал - проблема это отсутствие события разворачивания подчинённой формы.
...
Рейтинг: 0 / 0
25.09.2018, 15:50
    #39707780
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Панург, пробовал играться с фильтром на подформу... он действует сразу на все подформы.
Полагаю ServerFilter действует так же (не проверял).

А дДо фильтра на рекордсет не добраться, пока форму не развернешь-откроешь...
...
Рейтинг: 0 / 0
25.09.2018, 16:40
    #39707853
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
NVTПанург, пробовал играться с фильтром на подформу... он действует сразу на все подформы.
Полагаю ServerFilter действует так же (не проверял).

А дДо фильтра на рекордсет не добраться, пока форму не развернешь-откроешь...Ну отчего же...
...
Рейтинг: 0 / 0
25.09.2018, 18:15
    #39707919
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
NVT, посмотри...
...
Рейтинг: 0 / 0
26.09.2018, 08:55
    #39708157
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
ПанургNVT, посмотри...
У меня в 2003-м ругается на IAccessible (тип не определен). Чего не хватает?
...
Рейтинг: 0 / 0
26.09.2018, 09:37
    #39708179
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
zimkon, или библиотеку офисовскую подключи (там есть описание), или в декларации замени на Any (смотри декларацию для более новых акцесс).
Сам делал из-под 2010, потому забыл поправить...
...
Рейтинг: 0 / 0
26.09.2018, 09:41
    #39708185
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
zimkon, это попытка обработать клик по кнопке для сворачивания/разворачивания табличной подформы в табличной форме. Там есть где поработать напильником...
...
Рейтинг: 0 / 0
26.09.2018, 09:49
    #39708191
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Попробовал сейчас в 2003, не работает. Сейчас посмотрим.
...
Рейтинг: 0 / 0
26.09.2018, 09:55
    #39708195
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Панург,

Заменил на Object. В принципе компилируется без ошибок и работает. Но фильтрует только после выбора записи в главной форме, если просто жмешь на плюсик (без выбора записи в главной форме), то не фильтрует
...
Рейтинг: 0 / 0
26.09.2018, 10:08
    #39708205
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
zimkon, приходится признать что для 2003 это работать не будет. Работает начиная с 2007.
Проблема в том, что я не могу понять в какое событие появляется кнопка с плюсиком (свернуть/развернуть) как кнопка и IAccessible-объект . Сильно экспериментировать некогда, но кнопка появляется точно. Может быть на событие формы клик...
...
Рейтинг: 0 / 0
27.09.2018, 10:11
    #39709065
NVT
NVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mdb+ado+SQL+подчиненки - как сделать?
Панург, спасибо, обязательно посмотрю. Очень любопытно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / mdb+ado+SQL+подчиненки - как сделать? / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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