设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234下一页
返回列表 发新帖
查看: 5013|回复: 30
打印 上一主题 下一主题

[查询] 请教VBA里的查询问题

[复制链接]
跳转到指定楼层
1#
发表于 2005-9-8 16:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问在ACCESS的代码里写了一个查询语句,希望能作为一个子窗体的数据源,可是无法运行个查询,用docmd.runsql和execute均无法执行,最后从帮助文件里看到runsql是用在宏里面,那么在VBA里用什么命令来执行用代码写成的查询呢?

另外,我还使用了如下语句也不行

         Form_CLJG.RecordSource=""SELECT  *  " & _

                                                  "FROM 材料价格 " & _

                                                  "WHERE ((材料价格.材料ID)=CLID)" "

[此贴子已经被作者于2005-9-8 9:09:41编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-9-8 17:07:00 | 只看该作者
请把完整语句贴上来
3#
发表于 2005-9-8 17:55:00 | 只看该作者
以下是引用htkcdj在2005-9-8 8:28:00的发言:



请问在ACCESS的代码里写了一个查询语句,希望能作为一个子窗体的数据源,可是无法运行个查询,用docmd.runsql和execute均无法执行,最后从帮助文件里看到runsql是用在宏里面,那么在VBA里用什么命令来执行用代码写成的查询呢?

另外,我还使用了如下语句也不行

         Form_CLJG.RecordSource=""SELECT  *  " & _

                                                  "FROM 材料价格 " & _

                                                  "WHERE ((材料价格.材料ID)=CLID)" "





引号用法问题,等号后面的语法必须是标准的VBA表达式。
4#
 楼主| 发表于 2005-9-8 18:04:00 | 只看该作者
Private Sub 施工项目名称_GotFocus()

    Dim CL As String

    Dim CLID As Integer    CLID = Form_xmdj.[材料ID]

    Form_CLJG.RecordSource = ""

    CL = "SELECT 材料价格.ID, 材料价格.材料名称及规格型号, 材料价格.单位, 材料价格.供应单价(元), 材料价格.备注, 材料价格.工程类别, 材料价格.分包方式, 材料价格.所在地区, 材料价格.分包时间, 材料价格.材料ID INTO 材料" & _

         "FROM 材料价格 " & _

          "WHERE ((材料价格.材料ID)=CLID)"

   

     'Execute (CL)

     'DoCmd.RunSQL CL

     Form_CLJG.RecordSource = CL

     Form_CLJG.Requery

     Form_CLJG.RefreshEnd Sub请海狸先生帮帮忙
5#
发表于 2005-9-8 18:06:00 | 只看该作者
至少:

"INTO 材料"和"FROM"之间缺少空格。
6#
 楼主| 发表于 2005-9-8 18:08:00 | 只看该作者
这是我在这里写错了,我刚将将完整的代码贴上去。
7#
发表于 2005-9-8 18:08:00 | 只看该作者
以下是引用htkcdj在2005-9-8 10:08:00的发言:

这是我在这里写错了,我刚将将完整的代码贴上去。



说的就是你的完整代码
8#
 楼主| 发表于 2005-9-8 18:10:00 | 只看该作者
into 材料 是我最后加上去的,我在宏里面执行时可以另外生成一个材料表,最初是没有into 的,在宏里面没有into是不行的。
9#
 楼主| 发表于 2005-9-8 18:12:00 | 只看该作者
现在是运行到Form_CLJG.RecordSource = CL就不行了

10#
发表于 2005-9-8 18:14:00 | 只看该作者
以下是引用htkcdj在2005-9-8 10:10:00的发言:

into 材料 是我最后加上去的,我在宏里面执行时可以另外生成一个材料表,最初是没有into 的,在宏里面没有into是不行的。

你这个SQL表达式能作为数据源吗?宏里面的SQL不要求返回数据集,但是作为数据源必须有数据集返回,也就是选择表查询,而你这个是生成表查询,是不能作为数据源的。

并不是所有合法的SQL语句都能作为数据源。

[此贴子已经被作者于2005-9-8 10:14:28编辑过]

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 16:41 , Processed in 0.093040 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表