乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 68|回复: 3

ADO, Excel, VBA & Missing operator...

[复制链接]

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-23 07:49:53 | 显示全部楼层 |阅读模式
好的,在我开始之前,我确信这是一些愚蠢的东西,我只是看不到,因为我已经盯着这段代码太久了
运行以下代码会给我以下错误:“查询表达式中的语法错误(缺少运算符)”
  1. FencingRecordSet.Open "SELECT * FROM [Fencing$] WHERE 12mmInfillBars=" & frmSettings.opt12mmInfill.Value & _
  2. " AND 16mmInfillBars=" & frmSettings.opt16mmInfill.Value & " AND 1mHeight=" & _
  3. frmSettings.opt1mHigh.Value & " AND 1-2mHeight=" & frmSettings.opt12mHigh.Value & _
  4. " AND Galvanised=" & frmSettings.optGalvanised.Value, ExcelSpreadsheetADODB, adOpenKeyset, adLockOptimistic

查询正在正确评估(如......它将TRUE和FALSE作为布尔值)...... Jet前端将列报告为布尔值......
我尝试过将对单选按钮的引用包含在单引号中,没有单引号,作为单词......我被难住了。
它必须是如此简单的东西,但我就是看不见它。有什么想法吗,伙计们?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-23 09:52:17 | 显示全部楼层
我已经放弃使用过滤器,取而代之的是,我将在记录集中搜索,直到找到满足所有标准的东西。
不如我所希望的那样优雅,但需求必须如此。
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2007-1-23 10:46:43 | 显示全部楼层
当我运行复杂的查询时,我喜欢将它们格式化成这样:
strSQL = " SELECT * FROM[Fencing $]其中12 mminfillbars = " & frm settings . opt 12 mmin fill . value & _ "和16 mminfillbars = " & frm settings . opt 16 mmin fill . value & "和1 mheight = " & _
frm settings . opt 1 mheight . value & "和1-2 mheight = " & frm settings . opt 12 mheight . value & _
"和打开strSQL,ExcelSpreadsheetADODB,adOpenKeyset,adLockOptimistic
然后我就可以评估strSQL本身的问题了。很多时候,在连接中会出现奇怪的错误,或者你提到的引用。你能发布实际的字符串(strSQL)给我们看看吗?
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-23 11:31:47 | 显示全部楼层

  1. "SELECT * FROM [Fencing$] WHERE " & _
  2. "12mmInfillBars=" & frmSettings.opt12mmInfill.Value & _
  3. " AND 16mmInfillBars=" & frmSettings.opt16mmInfill.Value & _
  4. " AND 1mHeight=" & frmSettings.opt1mHigh.Value & _
  5. " AND 1-2mHeight=" & frmSettings.opt12mHigh.Value & _
  6. " AND Galvanised=" & frmSettings.optGalvanised.Value

是我给 ADODB 连接的 SQL 查询。
单选按钮(opt*)显然返回TRUE或FALSE的布尔值,并且我的数据库中的字段填充了TRUE或FALSE。
如果用单引号将单引号括起来,例如:
  1. "12mmInfillBars='" & frmSettings.opt12mmInfill.Value & "'" & _

仍然返回错误,如果我使用字符串值,无论是在单引号内还是在单引号中。
就像我在上一篇文章中说的,我已经扣上并
在整个表的内容上使用了
  1. recordset.movefirst
  2. for foo=0 to recordcount -1
  3.     if etc etc
  4.     endif
  5.     recordset.movenext
  6. next foo

。 在可预见的未来(及以后),我看不到此表中的行数超过8,因此速度在这里不是问题。 这很烦人:realmad:
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 04:37 , Processed in 1.428708 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表