Office中国论坛/Access中国论坛

标题: 【求助】列表框联动查询问题 [打印本页]

作者: king0224    时间: 2009-5-5 21:59
标题: 【求助】列表框联动查询问题
新增医生到Doctor表。
因为医院较多,需按照省份和城市选择医院后填写医生名字,并将窗体上的医院编码(HospitalID)、医院名称(HospitalName)、医生姓名(DoctorName)分别添加到Doctor表的对应字段。
请教如何实现选择省份后城市选项框自动筛选选定省份的城市;医院选项款自动筛选符合选中省份和城市的医院。
作者: chuang0321    时间: 2009-5-6 08:46
直接用查询我没有搞定。不过如果用VBA,只要利用.rowsource="select [*] form * where *=条件"是可以实现的。
作者: styhs    时间: 2009-5-6 09:05
看看是否达到需求
作者: king0224    时间: 2009-5-6 21:40
看看是否达到需求
styhs 发表于 2009-5-6 09:05

谢谢styhs,可以是可以了,只是选择一次后就记忆状态了,再选其他省份的时候城市字段和医院字段仍显示原来的第一次选择的内容,必须关闭后重新打开才可以。另外chuang0321说VBA可以实现,可否提供详细代码。谢谢。
作者: Henry D. Sy    时间: 2009-5-6 23:52
Dim strSQL As String

Private Sub City_AfterUpdate()
    strSQL = "select hospitalname from hospital where city='" & Me.City & "'"
    Me.HospitalName.RowSource = strSQL
End Sub

Private Sub Province_AfterUpdate()
    strSQL = "select distinct city from hospital where province='" & Me.Province & "'"
    Me.City.RowSource = strSQL
End Sub
作者: king0224    时间: 2009-5-7 01:19
楼上版主的方法解决了之前的问题,非常感谢。但是如果做过一次筛选后,下次不选省份的情况下城市和医院还是记录上次筛选的结果。
希望达到的效果是如果选择了省份,则城市列表为相应省份的城市,如果不选省份,城市列表为所有城市。
同理,如果不选省份和城市,医院列表为所有医院;如果只选省份不选城市,那么医院列表则显示所有选定省份的医院。
是否要加If条件来判断,请大家再接再厉,帮忙实现。
作者: Henry D. Sy    时间: 2009-5-7 09:43
这种要求都有,呵呵。
有点自找麻烦!!
作者: Henry D. Sy    时间: 2009-5-7 09:51
Private Sub City_Enter()
    If Not IsNull(Me.Province) Then
        strSQL = "select distinct city from hospital where province='" & Me.Province & "'"
    Else
        strSQL = "select distinct city from hospital"
    End If
    Me.City.RowSource = strSQL
End Sub
作者: king0224    时间: 2009-5-7 23:31
非常完美,完全达到我想要的效果了,感谢版主,感谢其他关注帖子的朋友。
学习了,收获很多。
作者: windsmile2008    时间: 2009-5-8 00:55
看看
作者: shakamiuu    时间: 2009-6-11 11:03
太强大了
作者: weizexon    时间: 2009-9-11 04:07
受教了~~
作者: guide8    时间: 2010-5-17 15:57
谢谢啦!!!!!!!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3