Office中国论坛/Access中国论坛

标题: 为何不能建立查询? [打印本页]

作者: tof    时间: 2003-7-31 08:05
标题: 为何不能建立查询?
Function 宏3()
On Error GoTo 宏3_Err
  
  stsql = " SELECT A11013.字段10, A11013.字段11 " _
           & " FROM A11013 " _
           & " WHERE (((A11013.字段10)=[帐号])); "

    DoCmd.RunSQL (stsql)
                  



宏3_Exit:
    Exit Function

宏3_Err:
    MsgBox Error$
    Resume 宏3_Exit

End Function

作者: 阿罗    时间: 2003-7-31 08:33
晕。出错信息是什么? 你的"建立查询"是什么意思?

通常,你可以把结果集赋予一个recordset对象,然后操作数据。按照目前所的信息,只能提供这个意见。
作者: 阿罗    时间: 2003-8-2 17:18
我刚刚收到你的pm,因为我从来没用过宏,所以临时看了一下,下面是我的看法:

这里面有一个基本问题,就是输出结果集。如果你使用DoCmd.RunSQL sqlString, 那么就要把sql语句的运行结果放到一个结果集中,方能看到运行的结果。在宏的用法中,同样的道理。

下面就来讲一讲如何做:
1)如果用宏:在宏的runSql操作中,没有单纯的select,而有select....into,就是把结果放到另外一个表中。你会得到运行的结果,但是你不可能看到表的样子。
2)如果用宏要打开表,作一些查询,那么有很多其他的操作可以用,如我贴图的例子。
至于为什么会像1) 2)这样?因为,如果你单纯要看一些查询的结果,那就是打开表做查询操作,也就是2)。如果你有2)不能做的事情,那么用1)。不知道这么讲清不清楚?
3)如果用VBA,那么就要定义一个recordSet变量例如rstTest,用rstTest.Open "your sql string here"来把你的sql string中执行的结果放到rstTest中,然后用rstTest的其他方法和属性来操作这个结果。但是,在单机应用中,这是舍近求远的做法。

在我看来,如果有可能,应该尽量用access的查询设计完成这些工作。
作者: 阿罗    时间: 2003-8-2 17:20
在宏中作openTable操作
作者: 阿罗    时间: 2003-8-2 17:21
[attach]1322[/attach]
作者: 阿罗    时间: 2003-8-2 17:22
[attach]1323[/attach]
作者: tof    时间: 2003-8-24 23:51
谢谢!问题已经解决,方法在EXCEL HOME中发表,再次感谢!




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