我是Access菜鸟级初学者。我在编一“职工人员资料管理”的数据库,其中有两个表,表1_科室名称表,有两个字段,“科室类别”;“科室名称”。“科室类别”包括临床科室;医技科室;职能科室等,“科室名称”包括内科;外科;妇科;儿科……;药剂科;检验科;放射科……,医教科;院办;人事科……。我主要意图是将,“科室名称”分类,如〔临床科室〕包括内科;外科;妇科;儿科……;〔医技科室〕包括药剂科;检验科;放射科……,〔职能科室〕包括医教科;院办;人事科……。表2_人员信息表,有数个字段,其中主要字段为“科室”;“姓名”等。
表_1中的“科室名称”和表_2中的“科室“进行了关联。我在建立的窗口上,设立了三个组合框,组合框_1的行来源中键入“临床科室”;“医技科室”;“职能科室”作为数据选项,行来源类型选择值列表;组合框_2的行来源中选择表1_科室名称表,科室名称作为数据选项,行来源类型选择表/查询,控件来源选择表2_人员信息表的“科室”。组合框_3的行来源中选择表2_人员信息表,姓名作为数据选,行来源类型选择表/查询,控件来源选择表2_人员信息表的“姓名”。我设想是组合框_1选择“科室类别”如“临床科室”,组合框_2中应筛选出“临床科室“类别中的内科;外科;妇科;儿科等科室供选择;组合框_3中的姓名是根据组合框_2选择的科室筛选的所属科室的人员姓名,选择后窗口显示该姓名职工的信息。
我请教各位高手的问题是:如何设置组合框_1,以及用组合框_1的选项数据筛选组合框_2和组合框_3?
多谢各位百忙之中不吝指教。
注:方便的话请发邮件至shyfyyjk@sian.com
16 个解决方案
#1
将记录贴出来看看
#2
表_1科室名称表
科室名称ID 科室类别 科室名称
1 临床科室 内科
2 临床科室 呼吸内科
3 临床科室 神经内科
4 临床科室 消化内科
5 临床科室 外科
6 临床科室 泌尿外科
7 临床科室 骨科
8 临床科室 妇科
9 医技科室 药剂科
10 医技科室 检验科
11 医技科室 放射科
12 职能科室 医教科
13 职能科室 人事科
14 职能科室 院办
15 职能科室 护理部
16 职能科室 保卫科
17 后勤科室 总务科
18 临床科室 眼科
表_2人员信息表
职工ID 科室 姓名 性别 年龄 籍贯 民族 健康状况 婚姻状况 身
份证号码 家庭地址 邮政编码 家庭电话 手机号码 电子邮箱 备注 最高学历 毕业学校 所学专业 毕业时间 入院时间 职务 职称
1 医教科 张三 男 1854-7-10 浙江 汉 良好 已婚 本科 主治医师
以上是两个表,请指教。
科室名称ID 科室类别 科室名称
1 临床科室 内科
2 临床科室 呼吸内科
3 临床科室 神经内科
4 临床科室 消化内科
5 临床科室 外科
6 临床科室 泌尿外科
7 临床科室 骨科
8 临床科室 妇科
9 医技科室 药剂科
10 医技科室 检验科
11 医技科室 放射科
12 职能科室 医教科
13 职能科室 人事科
14 职能科室 院办
15 职能科室 护理部
16 职能科室 保卫科
17 后勤科室 总务科
18 临床科室 眼科
表_2人员信息表
职工ID 科室 姓名 性别 年龄 籍贯 民族 健康状况 婚姻状况 身
份证号码 家庭地址 邮政编码 家庭电话 手机号码 电子邮箱 备注 最高学历 毕业学校 所学专业 毕业时间 入院时间 职务 职称
1 医教科 张三 男 1854-7-10 浙江 汉 良好 已婚 本科 主治医师
以上是两个表,请指教。
#3
3天了,无人指导?各位高手,是否能不吝指点一、二?
#4
逻辑不是太清楚,最好示例一下。
#5
多谢wangtiecheng老师的关照
不好意思,由于初学,不知如何表达。
我的意思是“在组合框_1中设置数据(例如:设置‘临床科室’,用‘临床科室’这个词筛选出表_1中所有在〔科室类别〕字段中有‘临床科室’的的记录)在组合框_2中显示出{科室名称}字段的内容供选择。由组合框_2选择出的数据(例如:选择‘内科’来筛选表_2中所有在〔科室〕字段中有‘内科’的记录),在组合框_3中显示所有〔姓名〕字段的内容。
不好意思,由于初学,不知如何表达。
我的意思是“在组合框_1中设置数据(例如:设置‘临床科室’,用‘临床科室’这个词筛选出表_1中所有在〔科室类别〕字段中有‘临床科室’的的记录)在组合框_2中显示出{科室名称}字段的内容供选择。由组合框_2选择出的数据(例如:选择‘内科’来筛选表_2中所有在〔科室〕字段中有‘内科’的记录),在组合框_3中显示所有〔姓名〕字段的内容。
#6
第一个组合框确定科室类别,根据这个类别确定可供选择的科室的列表,然后选择某个科室后,根据这个科室确定可供选择的医生列表。
是这个意思?
在第一个组合框的更新后事件中,设置第二个组合框的记录源。
在第二个组合框的更新后事件中,设置第三个组合框的记录源。
如:
Private Sub cbo科室类别_AfterUpdate()
Me.cbo科室.RowSource = "select * from 表名 where 科室类别='" & Me.cbo科室类别.Value & "'"
End Sub
科室更新后事件中,写入类似代码。
是这个意思?
在第一个组合框的更新后事件中,设置第二个组合框的记录源。
在第二个组合框的更新后事件中,设置第三个组合框的记录源。
如:
Private Sub cbo科室类别_AfterUpdate()
Me.cbo科室.RowSource = "select * from 表名 where 科室类别='" & Me.cbo科室类别.Value & "'"
End Sub
科室更新后事件中,写入类似代码。
#7
多谢wangtiecheng老师的指导
我尝试将上述代码写入第一、第二组合框的更新事件中,我不知写的对不对?
Private Sub 科室_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室类别.RowSource = "select * 科室类别表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
试验结果,第一个组合框选择后(如选择“临床科室”),第二个组合框并没有进行数据的筛选,并且重复点击第二个组合框时会出现错误信息,不知为什么?
请您指教 谢谢!
我尝试将上述代码写入第一、第二组合框的更新事件中,我不知写的对不对?
Private Sub 科室_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室类别.RowSource = "select * 科室类别表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
试验结果,第一个组合框选择后(如选择“临床科室”),第二个组合框并没有进行数据的筛选,并且重复点击第二个组合框时会出现错误信息,不知为什么?
请您指教 谢谢!
#8
--你搞错了,应该是:
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室类别.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室类别.Value & """"
End Sub
#9
wangtiecheng老师:
我试过了,还是不行,我改写的代码如下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误(操作符丢失)在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知是什么地方出问题?请指教。
我试过了,还是不行,我改写的代码如下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误(操作符丢失)在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知是什么地方出问题?请指教。
#10
--改下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 where 科室名称='" & Me.科室类别.Value & "'"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 where 科室名称='" & Me.科室类别.Value & "'"
End Sub
#11
wangtiecheng老师:
您好。前几天电脑坏了,今天看到帖子我试了一下,科室名称表的“科室名称”不能等于“科室类别”
我做了个查询表,并将"fron"加入程序中,改写如下:
Private Sub 科室_AfterUpdate()
Me.姓名.RowSource = "select * from 人员信息表 查询 where 科室='" & Me.科室名称Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 查询 where 科室类别='" & Me.科室类别.Value & """"
End Sub
但当我将第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知您是否能提供您的邮箱发到我的邮箱内(shyfyyjk@sina.com),我将试验程序发给您,请您指导后发给我,能否?谢谢!
您好。前几天电脑坏了,今天看到帖子我试了一下,科室名称表的“科室名称”不能等于“科室类别”
我做了个查询表,并将"fron"加入程序中,改写如下:
Private Sub 科室_AfterUpdate()
Me.姓名.RowSource = "select * from 人员信息表 查询 where 科室='" & Me.科室名称Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 查询 where 科室类别='" & Me.科室类别.Value & """"
End Sub
但当我将第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知您是否能提供您的邮箱发到我的邮箱内(shyfyyjk@sina.com),我将试验程序发给您,请您指导后发给我,能否?谢谢!
#12
你的表名是: 科室名称表 查询
中间还有空格?
如果有空格,那必须用[]括起来
select * from [科室名称表 查询] where ...
中间还有空格?
如果有空格,那必须用[]括起来
select * from [科室名称表 查询] where ...
#13
wangtiecheng老师:
我找到原因了,是语句最后的引号没输对,应该是(" ' "),改正后第二个组合框能显示选项了。
但是我选择“临床科室”后选项显示的也是“临床科室”,而不是内科、外科等科室名称。这就
造成第三个组合框产生错误信息。
“科室名称表 查询”中的空格是在建立查询是自动起的查询表名,所以程序到认的。
我找到原因了,是语句最后的引号没输对,应该是(" ' "),改正后第二个组合框能显示选项了。
但是我选择“临床科室”后选项显示的也是“临床科室”,而不是内科、外科等科室名称。这就
造成第三个组合框产生错误信息。
“科室名称表 查询”中的空格是在建立查询是自动起的查询表名,所以程序到认的。
#14
谢谢wangtiecheng老师两周来给我的指导和帮助,我已解决这个问题了。
我采用的是将“科室名称表建立查询,并在科室类别查询的条件上加入来源于第一个组合框,在
第二个组合框的数据属性中的行来源中加入这个查询表。第三个组合框采用相同的方法。
再次表示感谢!
我采用的是将“科室名称表建立查询,并在科室类别查询的条件上加入来源于第一个组合框,在
第二个组合框的数据属性中的行来源中加入这个查询表。第三个组合框采用相同的方法。
再次表示感谢!
#15
查询中带参数,如:
select *
from 表名
where 字段名=Forms!窗体名!控件名
select *
from 表名
where 字段名=Forms!窗体名!控件名
#16
是的,我是这样作的。
#1
将记录贴出来看看
#2
表_1科室名称表
科室名称ID 科室类别 科室名称
1 临床科室 内科
2 临床科室 呼吸内科
3 临床科室 神经内科
4 临床科室 消化内科
5 临床科室 外科
6 临床科室 泌尿外科
7 临床科室 骨科
8 临床科室 妇科
9 医技科室 药剂科
10 医技科室 检验科
11 医技科室 放射科
12 职能科室 医教科
13 职能科室 人事科
14 职能科室 院办
15 职能科室 护理部
16 职能科室 保卫科
17 后勤科室 总务科
18 临床科室 眼科
表_2人员信息表
职工ID 科室 姓名 性别 年龄 籍贯 民族 健康状况 婚姻状况 身
份证号码 家庭地址 邮政编码 家庭电话 手机号码 电子邮箱 备注 最高学历 毕业学校 所学专业 毕业时间 入院时间 职务 职称
1 医教科 张三 男 1854-7-10 浙江 汉 良好 已婚 本科 主治医师
以上是两个表,请指教。
科室名称ID 科室类别 科室名称
1 临床科室 内科
2 临床科室 呼吸内科
3 临床科室 神经内科
4 临床科室 消化内科
5 临床科室 外科
6 临床科室 泌尿外科
7 临床科室 骨科
8 临床科室 妇科
9 医技科室 药剂科
10 医技科室 检验科
11 医技科室 放射科
12 职能科室 医教科
13 职能科室 人事科
14 职能科室 院办
15 职能科室 护理部
16 职能科室 保卫科
17 后勤科室 总务科
18 临床科室 眼科
表_2人员信息表
职工ID 科室 姓名 性别 年龄 籍贯 民族 健康状况 婚姻状况 身
份证号码 家庭地址 邮政编码 家庭电话 手机号码 电子邮箱 备注 最高学历 毕业学校 所学专业 毕业时间 入院时间 职务 职称
1 医教科 张三 男 1854-7-10 浙江 汉 良好 已婚 本科 主治医师
以上是两个表,请指教。
#3
3天了,无人指导?各位高手,是否能不吝指点一、二?
#4
逻辑不是太清楚,最好示例一下。
#5
多谢wangtiecheng老师的关照
不好意思,由于初学,不知如何表达。
我的意思是“在组合框_1中设置数据(例如:设置‘临床科室’,用‘临床科室’这个词筛选出表_1中所有在〔科室类别〕字段中有‘临床科室’的的记录)在组合框_2中显示出{科室名称}字段的内容供选择。由组合框_2选择出的数据(例如:选择‘内科’来筛选表_2中所有在〔科室〕字段中有‘内科’的记录),在组合框_3中显示所有〔姓名〕字段的内容。
不好意思,由于初学,不知如何表达。
我的意思是“在组合框_1中设置数据(例如:设置‘临床科室’,用‘临床科室’这个词筛选出表_1中所有在〔科室类别〕字段中有‘临床科室’的的记录)在组合框_2中显示出{科室名称}字段的内容供选择。由组合框_2选择出的数据(例如:选择‘内科’来筛选表_2中所有在〔科室〕字段中有‘内科’的记录),在组合框_3中显示所有〔姓名〕字段的内容。
#6
第一个组合框确定科室类别,根据这个类别确定可供选择的科室的列表,然后选择某个科室后,根据这个科室确定可供选择的医生列表。
是这个意思?
在第一个组合框的更新后事件中,设置第二个组合框的记录源。
在第二个组合框的更新后事件中,设置第三个组合框的记录源。
如:
Private Sub cbo科室类别_AfterUpdate()
Me.cbo科室.RowSource = "select * from 表名 where 科室类别='" & Me.cbo科室类别.Value & "'"
End Sub
科室更新后事件中,写入类似代码。
是这个意思?
在第一个组合框的更新后事件中,设置第二个组合框的记录源。
在第二个组合框的更新后事件中,设置第三个组合框的记录源。
如:
Private Sub cbo科室类别_AfterUpdate()
Me.cbo科室.RowSource = "select * from 表名 where 科室类别='" & Me.cbo科室类别.Value & "'"
End Sub
科室更新后事件中,写入类似代码。
#7
多谢wangtiecheng老师的指导
我尝试将上述代码写入第一、第二组合框的更新事件中,我不知写的对不对?
Private Sub 科室_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室类别.RowSource = "select * 科室类别表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
试验结果,第一个组合框选择后(如选择“临床科室”),第二个组合框并没有进行数据的筛选,并且重复点击第二个组合框时会出现错误信息,不知为什么?
请您指教 谢谢!
我尝试将上述代码写入第一、第二组合框的更新事件中,我不知写的对不对?
Private Sub 科室_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室类别.RowSource = "select * 科室类别表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
试验结果,第一个组合框选择后(如选择“临床科室”),第二个组合框并没有进行数据的筛选,并且重复点击第二个组合框时会出现错误信息,不知为什么?
请您指教 谢谢!
#8
--你搞错了,应该是:
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室类别.Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室名称='" & Me.科室类别.Value & """"
End Sub
#9
wangtiecheng老师:
我试过了,还是不行,我改写的代码如下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误(操作符丢失)在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知是什么地方出问题?请指教。
我试过了,还是不行,我改写的代码如下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * 科室名称表 where 科室类别='" & Me.科室类别.Value & """"
End Sub
第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误(操作符丢失)在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知是什么地方出问题?请指教。
#10
--改下
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 where 科室名称='" & Me.科室类别.Value & "'"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 where 科室名称='" & Me.科室类别.Value & "'"
End Sub
#11
wangtiecheng老师:
您好。前几天电脑坏了,今天看到帖子我试了一下,科室名称表的“科室名称”不能等于“科室类别”
我做了个查询表,并将"fron"加入程序中,改写如下:
Private Sub 科室_AfterUpdate()
Me.姓名.RowSource = "select * from 人员信息表 查询 where 科室='" & Me.科室名称Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 查询 where 科室类别='" & Me.科室类别.Value & """"
End Sub
但当我将第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知您是否能提供您的邮箱发到我的邮箱内(shyfyyjk@sina.com),我将试验程序发给您,请您指导后发给我,能否?谢谢!
您好。前几天电脑坏了,今天看到帖子我试了一下,科室名称表的“科室名称”不能等于“科室类别”
我做了个查询表,并将"fron"加入程序中,改写如下:
Private Sub 科室_AfterUpdate()
Me.姓名.RowSource = "select * from 人员信息表 查询 where 科室='" & Me.科室名称Value & """"
End Sub
Private Sub 科室类别_AfterUpdate()
Me.科室.RowSource = "select * from 科室名称表 查询 where 科室类别='" & Me.科室类别.Value & """"
End Sub
但当我将第一个组合框设置为“临床科室”时,点击第二个组合框时提示“语法错误在查询表达式‘* 科室名称表 where科室类别='临床科室'"中。”
不知您是否能提供您的邮箱发到我的邮箱内(shyfyyjk@sina.com),我将试验程序发给您,请您指导后发给我,能否?谢谢!
#12
你的表名是: 科室名称表 查询
中间还有空格?
如果有空格,那必须用[]括起来
select * from [科室名称表 查询] where ...
中间还有空格?
如果有空格,那必须用[]括起来
select * from [科室名称表 查询] where ...
#13
wangtiecheng老师:
我找到原因了,是语句最后的引号没输对,应该是(" ' "),改正后第二个组合框能显示选项了。
但是我选择“临床科室”后选项显示的也是“临床科室”,而不是内科、外科等科室名称。这就
造成第三个组合框产生错误信息。
“科室名称表 查询”中的空格是在建立查询是自动起的查询表名,所以程序到认的。
我找到原因了,是语句最后的引号没输对,应该是(" ' "),改正后第二个组合框能显示选项了。
但是我选择“临床科室”后选项显示的也是“临床科室”,而不是内科、外科等科室名称。这就
造成第三个组合框产生错误信息。
“科室名称表 查询”中的空格是在建立查询是自动起的查询表名,所以程序到认的。
#14
谢谢wangtiecheng老师两周来给我的指导和帮助,我已解决这个问题了。
我采用的是将“科室名称表建立查询,并在科室类别查询的条件上加入来源于第一个组合框,在
第二个组合框的数据属性中的行来源中加入这个查询表。第三个组合框采用相同的方法。
再次表示感谢!
我采用的是将“科室名称表建立查询,并在科室类别查询的条件上加入来源于第一个组合框,在
第二个组合框的数据属性中的行来源中加入这个查询表。第三个组合框采用相同的方法。
再次表示感谢!
#15
查询中带参数,如:
select *
from 表名
where 字段名=Forms!窗体名!控件名
select *
from 表名
where 字段名=Forms!窗体名!控件名
#16
是的,我是这样作的。