Office中国论坛/Access中国论坛

标题: 请问查询的多项选择问题 [打印本页]

作者: 小硬盘    时间: 2006-6-25 23:17
标题: 请问查询的多项选择问题
具体情况是这样的:
我有一个表,表里面有学生的姓名,性别,语文,数学,英语,物理,化学成绩.
我现在建立一个查询,在姓名的一栏设置条件----------[Forms]![窗体1]![学生姓名]
然后基于查询建立报表.
那么,如果我双击报表,按提示输入姓名后,报表中会出现对应学生的数据.

但问题是,仅仅是一个学生.
也就是单项选择

请问假如我要多项选择,就是说我要查询出n个人的成绩列在同一张报表中,应该怎么设置条件呢
相应的窗体又应该怎么做呢.

谢谢大家帮个忙[attach]18717[/attach]


[此贴子已经被作者于2006-6-25 16:36:33编辑过]


作者: andymark    时间: 2006-6-25 23:32
把要打印或预览的学生添加到一个列表框,再以此为条件,输出报表
作者: 小硬盘    时间: 2006-6-26 00:03
请问怎么将学生姓名列成一个列表框啊
作者: fan0217    时间: 2006-6-26 00:20
将要查询的学生姓名,用or串起来放在sql的where子句中。

将列表框的行来源设置成学生表的相关字段就可以了,用向导。把列表框的多重选择属性设置成简单。

余下的就是通过循环把学生姓名用or串起来放入sql语句中。

如果不明白可以将你的例子放上来。
作者: 小硬盘    时间: 2006-6-26 00:37
例子已经传到贴纸上了.这个是单选的情况
非常感谢楼上的大哥们

[此贴子已经被作者于2006-6-25 16:37:45编辑过]


作者: fan0217    时间: 2006-6-26 01:28
[attach]18719[/attach]
Private Sub List0_AfterUpdate()
Dim ctl As Control
Dim varItm As Variant
Dim strSQL As String
Dim strSqlWhere As String

Set ctl = Me.List0

For Each varItm In ctl.ItemsSelected
    strSqlWhere = strSqlWhere & " or 学生姓名 like " & Chr(39) & ctl.ItemData(varItm) & Chr(39)
Next

If strSqlWhere <> "" Then
    strSqlWhere = "(" & Right(strSqlWhere, Len(strSqlWhere) - 4) & ")"
    strSQL = "SELECT * FROM 贴纸记录 WHERE " & strSqlWhere
Else
    strSQL = "SELECT * FROM 贴纸记录 "

End If
    Me.子窗体.Form.RecordSource = strSQL
    Me.子窗体.Form.Requery
End Sub



Private Sub Form_Load()
    Me.List0.RowSource = "SELECT DISTINCT 贴纸记录.学生姓名 FROM 贴纸记录;"
End Sub

作者: 小硬盘    时间: 2006-6-26 18:05
楼上的大哥,我已经把你的实例看过了.

非常感谢你的多选窗体

可是怎么实现选出来的人的数据在同一张报表里呢,


作者: fan0217    时间: 2006-6-26 19:28
能筛选出来,还不能做成报表吗?多变通变通。
作者: 小硬盘    时间: 2006-6-26 21:10
我再试试吧,

刚学没有多久

谢谢督促

[此贴子已经被作者于2006-6-26 13:16:24编辑过]


作者: hi-wzj    时间: 2006-6-26 21:45
更初级一点的,可以将要查询的学员保存在一个表里,然后通过匹配查询向导来完成。
作者: 行云    时间: 2006-6-27 03:54
不错




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