Office中国论坛/Access中国论坛

标题: 计算字段之条件查询 [打印本页]

作者: WANGDUYU    时间: 2008-12-6 15:49
标题: 计算字段之条件查询
请教高人,详见附件,为什么我的计算字段,加上表达式之后,没有办法实现筛选?

我在不用窗体、直接查询的情况下,已经搞好了,之后,加上窗体,然后把窗体里的数量,带入查询中。但不明白为什么在查询时,一个结果都没有返回。折腾一天了,真郁闷。

先行谢过!
作者: Henry D. Sy    时间: 2008-12-6 16:03
什么意思
请描述清楚点。
作者: 明镜    时间: 2008-12-6 16:41
把有问题的内容,发个图片上来.
作者: WANGDUYU    时间: 2008-12-6 17:19
窗体的图片请见附件,运行查询QrTbConCompanyQuaNumber,查询里的内容都是同样形式的计算字段。

在上传的附件中可见,在该查询的QBE条件栏里,写的内容如下:
IIf([Forms]![FrComQuaLookUp]![CmbQualificationSort]="化工石油工程",(IIf([TbConCompanyQua].[化工石油工程]="特级",0,IIf([TbConCompanyQua].[化工石油工程]="一级",1,IIf([TbConCompanyQua].[化工石油工程]="二级",2,IIf([TbConCompanyQua].[化工石油工程]="三级",3,4)))))<[Forms]![FrComQuaLookUp]![CmbQualificationClass],"*")

中间红字的一大串,都是计算字段的名字。核心是选择出比窗体中给定数字小的资质。

在没有加IIF语句的情况下,直接筛选,已经成功了,不清楚为什么加入语句之后,会出现问题。

理论上很可行,我的思维方式,一直和Excel的惯用法保持一致。

谢谢两位的关注!
作者: Henry D. Sy    时间: 2008-12-6 19:27
首先,随便做个查询,名称为 A

  1. Private Sub Command4_Click()
  2.     Dim Qdf As DAO.QueryDef
  3.     Dim strSQL As String
  4.     Set Qdf = CurrentDb.QueryDefs("A")
  5.     If IsNull(Me.CmbQualificationSort) Or IsNull(Me.CmbQualificationClass) Then
  6.         strSQL = "select * from TbConCompanyQua"
  7.     Else
  8.         strSQL = "select * from TbConCompanyQua where " & _
  9.                  Me.CmbQualificationSort & "='" & Me.CmbQualificationClass.Column(1) & _
  10.                  "'"
  11.     End If
  12.     Qdf.SQL = strSQL
  13.     DoCmd.OpenQuery "A"
  14.     Set Qdf = Nothing
  15. End Sub
复制代码

作者: nxjswt    时间: 2008-12-6 19:38
看看这个,文本输入查询字段,窗体筛选。[:50]

[ 本帖最后由 nxjswt 于 2008-12-6 19:39 编辑 ]




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