既然有不止一个人关注,那就说一说。
要解决一个概念问题。在ADP里面,整个查询的东西都往服务器那儿送。所以,如果一个查询的sql语句是 select * from table1 where column1 = [窗体]![控件].value 这种类型时,ADP送过去的是:
"select * from table1 where column1 = [窗体]![控件].value"
这么一串东西。你一看就知道,sql服务器如何明白"[窗体]![控件].value"是什么?它只能把这些字符当成要查询的内容。所以,结果要么不正确,更多的时候是出错。
sql服务器实际需要的是这样的东西 (假定 [窗体]![控件].value 的内容是 "testtest")
"select * from table1 where column1='testtest'"
可以用一个简单的方法来完成这些任务,代码是少不了的,不过ADP编程,就是要敢于写大量的代码,这是硬道理。不接受这个现实,就不会成功。
你可以先在一个查询设计器里面做你的查询设计,然后在查询设计的工具栏上选择SQL,现在,你可以在查询设计器的最下面看到sql语句。将它拷贝下来,然后编写代码。
例如,你要执行上面说的一个查询:
Dim rs As New ADODB.recordset
set rs = currentproject.connection.execute("SELECT * FROM table1 WHERE " _
& " column1 = '" & [窗体]![控件].value & "'"
这样就把[窗体]![控件].value的实际值组合到sql语句当中了。
自己慢慢体会吧。
[此贴子已经被作者于2003-11-7 11:52:17编辑过]
|