|
|
|
| Вопросс на счет поиска по несколйким параметрам - решила(если кому интерессно разскажу). Теперь появился новый - хочется научится работать с данными которые находит мой поиск....
вот вызываю запрос:
Private Sub Command45_Click()
'Dim stDocName As String
Dim stDocName1 As String
'stDocName = "Maintenance_Data(FOKKER50) Query"
'DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName1 = "Maintenance_Data(FOKKER50)_Query_subform"
DoCmd.Requery stDocName1
как мне обратится к содержанию ячейки полу4енного запроса????
ПАсиба | |
|
| |
|
|
|
| Если это подчиненная форма то к полю текущей записи можно обратиться так:
http://hiprog.com/index.php?option=com_content&task=blogcategory&id=119&Itemid=159
Q15
Если это просто запрос, то есть объект Recordset позволяет получить виртуальный набор записей (по заданной таблице, запросу ил строке SQL), а так же перемещаться по записям, получать данные из полей текущей (для рекордсета) строки, изменять значение полей, осуществлять поиск и т.п.
Существует 2 библиотеки содержащих данный объект DAO и ADODB (сокращенно ADO), свойства и методы объекта REcordset обеих библиотек похожи, но все же имеют различия.
В зависимости от версии ACCESS по умолчанию используется та или иная библиотека
в 97 - DAO
в 2000 и выше - ADO
в 2000 и выше библиотека DAO может быть использована не явно, т.е. без явной ссылки на библиотеку (Функция Currentdb()), но доля полноценного использования лучше DAO ccылку.
далее см. Help "Recordset" соответcвующей библиотеки DAO или ADO
В вашем конкретном случае для DAO:
dim db as DAO.Database
dim rst as DAO.Recordset
dim qdf as DAO.QueryDef
set db = currentdb()
set qdf = db.querydefs("Maintenance_Data(FOKKER50)_Query_subform")
set rst = qdf.OpenRecordset()
if rst.recordcount <>0 then
msgbox "четветое поле первой строки = " & rst.fields(3)
else
msgbox "записей нет"
end if
|
Если нужно получить значение поля другой строки то нужно на нее (строку) переместиться используя методы Movenext, MoveFirst,MoveLast, FindFirst (или Find для ADO) и т.д. см Help | |
|
| |
|
|
|
| угу! спасибо - буду пытаться разбираться :) | |
|
| |
|
|
|
| уффф - что-то не идёт. вот сюда (set rst = qdf.OpenRecordset() )
надо вставлять адресс я4ейки?
тут (set rst = qdf.OpenRecordset() ) идет обра6ение к конкретной базе данных (мне надо 4тото вписывать?)
кто-то паникует ))))) | |
|
| |
|
|
|
| "Идет обращение к конкретной базе данных " - всмысле запрос находится в другой базе, а не в той в которой выполняется код?
можно кусок базы? | |
|
| |
|
|
|
| нет - всё в одной базе. Могу кинуть что написала - уверена что не правильно... исправте пожалуйста.
Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
'Dim stDocName As String
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim qdf As DAO.QueryDef
'stDocName = "Table1 Query"
'DoCmd.OpenQuery stDocName, acNormal, acEdit
Set db = CurrentDb()
Set qdf = db.QueryDefs("Table1 Query")
Set rst = qdf.OpenRecordset(1, 1)
If rst.RecordCount <> 0 Then
MsgBox "1 , 1 = " & rst.Fields(3)
Else
MsgBox "nothing"
End If
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
говорит что инвалид... | |
|
| |
|
|
|
| где говорит?
на какой строке?
Опишите подробнее что нужно получит в итоге, может есть способы попроще. | |
|
| |
|
|
|
| Тот поиск, который есть - выдаёт запрос на форму в виде таблицы, полу4ается 4то она очень длинная, хотя 4аще всего информации надо по минимуму. Так вот - думаю сделать
1: Не в виде таблицы;
2: Только набор самых 4асто используемых данных (что-то вроде заголовка);
3: Плюс рядом ссылка типа "ИНФО", которая разкрывает нужный документ более подробно при необходимости. | |
|
| |