Office中国论坛/Access中国论坛

标题: 筛选出现“类型不匹配”的问题 [打印本页]

作者: lxg315    时间: 2019-11-8 14:07
标题: 筛选出现“类型不匹配”的问题
各位老师好:

   附件我想筛选出这样的东西:物料资讯表里面的型材长宽值分别减去输入的长宽值,即现有的宽度-输入宽度,现有高度-输入高度,这两个值的差加起来,以最后的加起来的和值的大小,从小到大排列,目前弹出”数据类型不匹配”,请大家帮忙看看怎么修改?谢谢

作者: Henry D. Sy    时间: 2019-11-8 23:43
  1. Private Sub cmd查询_Click()
  2.     Dim sSQL As String
  3.     Dim H
  4.     Dim W
  5.     H = Me.高度
  6.     W = Me.宽度
  7.     sSQL = "SELECT * FROM 最适型材查询 where [高度] >=" & _
  8.             H & " And [宽度] >=" & W & " order by [高度] - " & H & " + [宽度] - " & W
  9.     Me.最适型材查询子窗体.Form.RecordSource = sSQL
  10. End Sub
复制代码

作者: lxg315    时间: 2019-11-9 10:33
本帖最后由 lxg315 于 2019-11-9 10:37 编辑
Henry D. Sy 发表于 2019-11-8 23:43

谢谢版大。
我再请教一下,为什么我原来那样就不行呢?最大的改变就是引入长宽这两个变量
作者: Henry D. Sy    时间: 2019-11-10 02:21
本帖最后由 Henry D. Sy 于 2019-11-10 02:24 编辑
lxg315 发表于 2019-11-9 10:33
谢谢版大。
我再请教一下,为什么我原来那样就不行呢?最大的改变就是引入长宽这两个变量

这是你的原代码,注释是我加上的,用来说明问题的

  1. Private Sub cmd查询_Click()
  2. On Error GoTo Err_cmd查询_Click

  3.     Dim rs As New ADODB.Recordset
  4.     '你根本不需要ADO记录集
  5.    
  6.     Dim ssql As String
  7.    
  8.        ssql = "select * from 最适型材查询 where [高度] > = " & Me.高度 And [宽度] >= " & Me.宽度  order by [高度] - " & Me.高度 + [宽度] - " & Me.宽度 "
  9.        'SQL语句写错,>=之间没有空格,要用&号连接变量
  10.       
  11.        rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  12.        '没必要用ADO记录集,那就更不需要打开了
  13.       
  14.     Me.最适型材查询子窗体.Form.Filter = ssql
  15.     'SQL查询语句是用来作为窗体的记录源的,而不是用来筛选的,如果要过滤记录,需要用不带WHERE的条件子句
  16.    
  17.     Me.最适型材查询子窗体.Form.FilterOn = True
  18.     rs.Close: Set rs = Nothing
  19. Exit_cmd查询_Click:
  20.     Exit Sub

  21. Err_cmd查询_Click:
  22.     MsgBox Err.Description
  23.     Resume Exit_cmd查询_Click
  24.    
  25. End Sub
复制代码

作者: lxg315    时间: 2019-11-11 08:06
Henry D. Sy 发表于 2019-11-10 02:21
这是你的原代码,注释是我加上的,用来说明问题的

感谢感谢!
明白了,新手,很多不足。




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