Вопрос? передача результата работы sql запроса в подчиненую форму

Ystinov
Дата: 27.12.2011 22:11:49
привет все форумчанам пишу простенький журнальчик есть точнее возник вопрос по передачи значений (результата работы запроса в подчиненную форму есть код

Private Sub bt_create_report_Click()
Dim data_review_ot As String
Dim data_review_do As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim m, n As Date
Dim strsql, pole_for_viborki As String
Select Case Me.pole_for_viborki
Case "дата постановки" 'в основной форме есть поле в котором можно выбрать название
'столбца по которому будет производится выборка по дате(интервалу)
pole_for_viborki = "реестр_больных.data_postanovki"
Case "дата рождения"
pole_for_viborki = "реестр_больных.data_brithday"
Case "дата направления на госпитализацию"
pole_for_viborki = "реестр_больных.data_napravleniagospit"
Case "дата госпитализации"
pole_for_viborki = "реестр_больных.data_gospitalizacii"
End Select
data_review_ot = "#" & Format(Me.data_review_ot.Value, "mm\/dd\/yyyy") & "#" 'Me.data_review_ot.Value '
data_review_do = "#" & Format(Me.data_review_do.Value, "mm\/dd\/yyyy") & "#" 'Me.data_review_do.Value '
strsql = "SELECT DISTINCT * FROM реестр_больных WHERE ((" & pole_for_viborki & ") BETWEEN " & data_review_ot & " AND " & data_review_do & ");"
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset(strsql)
'тут скорее всего надо написать что то для передачи результата выборки rst в подчиненную форму review_reestr_pri
Me.review_reestr_pri.Requery
Me.review_reestr_pri.Form.Refresh
Me.Refresh
rst.Close
Set rst = Nothing
Set dbs = Nothing
End Sub

если не обходимо могу выложить скин формы и поля таблицы. Заранее Большое Спасибо всем откликнувшимся
abend
Дата: 27.12.2011 22:59:01
Непонятно, зачем Вам рекордсет:
Private Sub bt_create_report_Click()
Dim data_review_ot As String
Dim data_review_do As String
'Dim dbs As DAO.Database
'Dim rst As DAO.Recordset
Dim m As Date, n As Date ' каждая переменная объявляется отдельно! иначе m будет типа variant
Dim strsql AS String, pole_for_viborki As String
Select Case Me.pole_for_viborki
Case "дата постановки" 'в основной форме есть поле в котором можно выбрать название 
'столбца по которому будет производится выборка по дате(интервалу)
pole_for_viborki = "реестр_больных.data_postanovki"
Case "дата рождения"
pole_for_viborki = "реестр_больных.data_brithday"
Case "дата направления на госпитализацию"
pole_for_viborki = "реестр_больных.data_napravleniagospit"
Case "дата госпитализации"
pole_for_viborki = "реестр_больных.data_gospitalizacii"
End Select
data_review_ot = "#" & Format(Me.data_review_ot.Value, "mm\/dd\/yyyy") & "#" 'Me.data_review_ot.Value '
data_review_do = "#" & Format(Me.data_review_do.Value, "mm\/dd\/yyyy") & "#" 'Me.data_review_do.Value '
strsql = "SELECT DISTINCT * FROM реестр_больных WHERE ((" & pole_for_viborki & ") BETWEEN " & data_review_ot & " AND " & data_review_do & ");"
'Set dbs = CurrentDb()
'Set rst = dbs.OpenRecordset(strsql)

Me.review_reestr_pri.Form.RecordSource = strsql

'тут скорее всего надо написать что то для передачи результата выборки rst в подчиненную форму review_reestr_pri
'Me.review_reestr_pri.Requery
'Me.review_reestr_pri.Form.Refresh
'Me.Refresh
'rst.Close
'Set rst = Nothing
'Set dbs = Nothing
End Sub
Ystinov
Дата: 27.12.2011 23:01:11
abend,

Me.review_reestr_pri.Form.RecordSource = strsql

т.е. с помощью данной строки происходит заполнение формы данными с запроса?
Ystinov
Дата: 27.12.2011 23:03:09
Код правда работает но как разобрать все по полочкам?
abend
Дата: 27.12.2011 23:04:07
Ystinov
abend,

Me.review_reestr_pri.Form.RecordSource = strsql

т.е. с помощью данной строки происходит заполнение формы данными с запроса?


Да, В РекордСурс формы можно вписать название таблицы, название запроса, либо инструкцию SQL (как в нашем случае).
При смене рекордсурса форма сама обновит данные
abend
Дата: 27.12.2011 23:07:29
Кстати, в модуле формы крайне не рекомендую иметь переменные с таким же названием, как и у контролов формы
Ystinov
Дата: 28.12.2011 11:15:41
Спасибо большое за содействие!