Присвоение переменной типа ADODB.Recordset значения из Form.Recordset

spLineFX
Дата: 14.01.2012 14:21:41
Собственно, сабж.

Пусть стоит такая задача: допустим, на форме расположена подчинённая форма, отображающая SQL-запрос в виде таблицы. Под этой таблицей расположена кнопка, по нажатию на которую должен вылезать MsgBox со значением конкретного поля из строки, которая в данный момент выделена в таблице (которая в подчинённой форме с запросом).

Номер записи я добываю через [подчинённаяФорма].Form.CurrentRecord.

Далее идея была такая: создать переменную типа ADODB.Recordset, присвоить ей рекордсет подчинённой формы и в нём каким-то образом обратиться к нужному полю в выделенной строке (каким образом, пока не знаю). Но, как оказалось, рекордсет формы у нас DAOшный, и все эти танцы у костра приводят к Type mismatch'у. Вопрос: можно ли как-то это решить, или я вообще не той дорогой пошёл? Изначально задача, в общем-то, стоит в том, чтобы именно обратиться к нужному полю в выделенной строке. Но и сам факт невозможности копирования формового рекордсета в отдельную ADOшную переменную тоже заинтересовал. Вдруг это всё-таки мне понадобится в дальнейшем. Дискасс.

P.S. Да, я во всём этом почти что дурачок, это мне для курсовой нужно.
ё
Дата: 14.01.2012 15:04:40
spLineFX
Вопрос: можно ли как-то это решить, или я вообще не той дорогой пошёл? Изначально задача, в общем-то, стоит в том, чтобы именно обратиться к нужному полю в выделенной строке.

имхо, - "не той" ...

вот эти вещи вам знакомы ?
[подчинённаяФорма].Form.Recordset
[подчинённаяФорма].Form.RecordsetClone

зачем, вообще понадобилось дублировать рекордсет формы ?
он уже есть - вот с ним и работайте ...

spLineFX
Но и сам факт невозможности копирования формового рекордсета в отдельную ADOшную переменную тоже заинтересовал

в ДАОшный рекордсет присваивайте ...
ё
Дата: 14.01.2012 15:22:06
автор
Далее идея была такая: создать переменную типа ADODB.Recordset, присвоить ей рекордсет подчинённой формы и в нём каким-то образом обратиться к нужному полю в выделенной строке (каким образом, пока не знаю).

вот текущей записью в [подчинённаяФорма].Form.Recordset и будет, текущая запись в форме,
т.е. не нужно ничего искать/переходить - курсор уже на нужной записи
z0dium
Дата: 14.01.2012 17:55:14
ё,

Т.е. в рекордсет содержится информация и о самой таблице, и о курсоре (в какой записе он расположен)?
ё
Дата: 14.01.2012 18:01:08
z0dium
ё,

Т.е. в рекордсет содержится информация и о самой таблице / [запросе, на котором построена форма], и о курсоре (в какой записе он расположен)?

в Form.Recordset - да
spLineFX
Дата: 14.01.2012 18:44:36
ё
в ДАОшный рекордсет присваивайте ...


В задании указано, "технология доступа к данным - ADO". Тот криворукий кошмар, что я описал, ведь относится к доступу к данным?
Программист-Любитель
Дата: 14.01.2012 21:24:28
spLineFX
ё
в ДАОшный рекордсет присваивайте ...


В задании указано, "технология доступа к данным - ADO". Тот криворукий кошмар, что я описал, ведь относится к доступу к данным?

Отошлите свое тз в микрософт. Пусть они вам эмдибишные формы на адошные рекордсеты переставят.

Ну или возьмите адп - там формы как раз на адошных рекордсетах.
spLineFX
Дата: 15.01.2012 01:35:28
Программист-Любитель
Ну или возьмите адп - там формы как раз на адошных рекордсетах.


Не уверен, что понимаю, о чём речь. Делаем в .accdb, если речь о форматах. 2007 версия Акцеса. Появились другие проблемы, но данная решена, в принципе. Спасибо мистеру Ё. Дотянулся, куда нужно, через формовый Recordset.