Tuoni 发表于 2007-1-23 07:49:53

ADO, Excel, VBA & Missing operator...

好的,在我开始之前,我确信这是一些愚蠢的东西,我只是看不到,因为我已经盯着这段代码太久了
运行以下代码会给我以下错误:“查询表达式中的语法错误(缺少运算符)”
FencingRecordSet.Open "SELECT * FROM WHERE 12mmInfillBars=" & frmSettings.opt12mmInfill.Value & _
" AND 16mmInfillBars=" & frmSettings.opt16mmInfill.Value & " AND 1mHeight=" & _
frmSettings.opt1mHigh.Value & " AND 1-2mHeight=" & frmSettings.opt12mHigh.Value & _
" AND Galvanised=" & frmSettings.optGalvanised.Value, ExcelSpreadsheetADODB, adOpenKeyset, adLockOptimistic

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

Tuoni 发表于 2007-1-23 09:52:17

我已经放弃使用过滤器,取而代之的是,我将在记录集中搜索,直到找到满足所有标准的东西。
不如我所希望的那样优雅,但需求必须如此。

Atook 发表于 2007-1-23 10:46:43

当我运行复杂的查询时,我喜欢将它们格式化成这样:
strSQL = " SELECT * FROM其中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)给我们看看吗?

Tuoni 发表于 2007-1-23 11:31:47


"SELECT * FROM WHERE " & _
"12mmInfillBars=" & frmSettings.opt12mmInfill.Value & _
" AND 16mmInfillBars=" & frmSettings.opt16mmInfill.Value & _
" AND 1mHeight=" & frmSettings.opt1mHigh.Value & _
" AND 1-2mHeight=" & frmSettings.opt12mHigh.Value & _
" AND Galvanised=" & frmSettings.optGalvanised.Value
是我给 ADODB 连接的 SQL 查询。
单选按钮(opt*)显然返回TRUE或FALSE的布尔值,并且我的数据库中的字段填充了TRUE或FALSE。
如果用单引号将单引号括起来,例如:
"12mmInfillBars='" & frmSettings.opt12mmInfill.Value & "'" & _
仍然返回错误,如果我使用字符串值,无论是在单引号内还是在单引号中。
就像我在上一篇文章中说的,我已经扣上并
在整个表的内容上使用了
recordset.movefirst
for foo=0 to recordcount -1
    if etc etc
    endif
    recordset.movenext
next foo

。 在可预见的未来(及以后),我看不到此表中的行数超过8,因此速度在这里不是问题。 这很烦人:realmad:
页: [1]
查看完整版本: ADO, Excel, VBA & Missing operator...