Имеется база данных по визитам пациентов[Report.mdb].
В данном случае у нас участвуют две связанные таблицы:
[PacientData] - данные пациента (номер пациента, имя, возраст, пол и т.д.)
[PacientVisit] - ВСЕ визиты ВСЕХ пациентов(номер пациента, дата визита, диагноз, назначения и пр.)
таблицы связаны через поле (PacNo)-номер пациента
На форме есть контрол Data1 и связанные с ним текстбоксы txtFields(7) - тут выводятся данные пациента,
Data1 связан с [PacientData],
также есть контрол Data2 и связанный с ним DBGrid1,
Data2 связан с Data1 через SQLзапрос (str1)
соответственно DBGrid1 показывает все визиты ТОЛЬКО ДАННОГО пациента
Это то, что мы имеем
Теперь, что нужно - собственно вопрос:
Я добавил на форму List1.
Нужно - привязать его к столбцу DateVisit в DBGrid1, чтобы в List1 отображались даты визитов ТОЛЬКО ДАННОГО пациента, а DBGrid1 показывал ТОЛЬКО ОДНУ строку соответствующую выбранному в List1 визиту.
Существующий кусок кода:
- Код: Выделить всё
Option Explicit
Dim DBName As String
Dim tblName As String
Private Sub Form_Load()
DBName = "REPORT.MDB"
tblName = "PacientData"
With Data1
.DatabaseName = App.Path + DBName
.RecordsetType = vbRSTypeDynaset
.RecordSource = tblName
.Refresh
End With
End Sub
Public Sub Data1_Reposition()
Dim str1 As String
'В txtFields(0) отображается PacNo,
If txtFields(0).Text = Empty Then
txtFields(0).Text = "0"
End If
str1 = "SELECT * FROM PacientVisit WHERE PacNo=" & txtFields(0).Text
With Data2
.DatabaseName = App.Path + DBName
.RecordsetType = vbRSTypeDynaset
.RecordSource = str1
.Refresh
End With
DBGrid1.ReBind 'DBGrid1 привязан к Data2
End Sub
Самое главное - можно-ли решить задачу без ADO?
Заранее спасибо