设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3441|回复: 13
打印 上一主题 下一主题

[窗体] 请教:用窗体列表控件生成动态交叉表查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-28 23:09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 RickyZjw-3721 于 2009-5-29 22:27 编辑

如附件,我想用窗体组合框列表加一个含VBA代码的Command按扭生成一个不同月份的交叉表查询。CombBox控件"ActExpTabByMth"存放每月不同的表名,Command控件"RNDAcctSplitByProj"中的VBA代码用于生成和查询“RNDAcctsSplitByProject_Apr09”一样格式的每月动态查询。可惜我对VBA代码还不是很熟悉(这些代码我也是参照网友的同类程序依葫芦画瓢,只懂个大概意思 ),尝试了几次均不成功。这个需求的要点是1,组合框控件名作为动态表名;2,要生成一个交叉表查询。恳请各位高手帮忙给指点一下,看如何改动我原来的代码才能达到上述要求。先行谢过了!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2009-6-2 23:04:35 | 只看该作者
自己重新修改了一下代码如下:可是运行时还是出现错误提示。是否SQL语句不能执行交叉表查询?
Private Sub RNDAcctSplitByProj_Click()
    Dim MthExpName As String

    Dim Db As DAO.Database
    Dim qdf As DAO.QueryDef

    Dim StrSql As String

    MthExpName = Me.ActExpTabByMth

    Set Db = CurrentDb
   
    If MsgBox("是否要拆分实际月份研发费用", vbYesNo, 警告") = vbNo Then Exit Sub
    StrSql = "SELECT [MthExpName].Reference, [MthExpName].Acct, AccountsDescription.AcctDescription, [MthExpName].Activ, FROM " _
        & "AccountsDescription INNER JOIN MthExpName ON AccountsDescription.Acct = [MthExpName].Acct " _
        & "TRANSFORM Sum ([MthExpName].PeriodActivity) AS PeriodActivity " _
        & "GROUP BY [MthExpName].Reference, [MthExpName].Acct, AccountsDescription.AcctDescription " _
        & "HAVING ((([MthExpName].Activ) Like '6*'))" _
        & "PIVOT Format([MthExpName].Activ)"
   
    Set qdf = Db.CreateQueryDef("RNDAcctsSplitByProject", "StrSql")

    DoCmd.OpenQuery "RNDAcctsSplitByProject", acViewPivotTable, acEdit
        
Exit_RNDAcctSplitByProj_Click:
    Exit Sub

Err_RNDAcctSplitByProj_Click:
    MsgBox Err.Description
    Resume Exit_RNDAcctSplitByProj_Click
   
End Sub
3#
发表于 2009-6-3 01:36:46 | 只看该作者
SQL语句开头要加上Parameters [MthExpName].Activ;
4#
 楼主| 发表于 2009-6-3 22:17:30 | 只看该作者
是在每一个[MthExpName]前都加Parameters吗?还是不太明白...我又尝试了一下,还是出错(同样的错误提示)。请Threaten老兄再帮忙指点一二。谢谢啦
5#
发表于 2009-6-4 16:07:54 | 只看该作者
本帖最后由 Threaten 于 2009-6-4 16:11 编辑

只是在SQL语句开头的时候定义一下窗体控件名称, Parameters 控件名称 类型
6#
 楼主| 发表于 2009-6-4 22:13:14 | 只看该作者
我实在是太笨了,还是没领会您的意思。您能直接在代码里按您的意思帮我修改好,然后再指出来是哪里出问题好吗?
7#
发表于 2009-6-4 22:16:08 | 只看该作者
跟随学习。
8#
 楼主| 发表于 2009-6-6 20:12:19 | 只看该作者
这两天看了一些网上的资料,好像要用到ADO(ActiveX Data Objects)方法才能实现动这样的态交叉表查询,这就需要一些编程方面的知识。正在学习中。。。
9#
 楼主| 发表于 2009-6-28 11:54:09 | 只看该作者
经过不懈的尝试和努力终于找到了一个解决方案,其实用不着ADO方法。附件里是我修改后的代码,分享出来供大家参考!也欢迎指正!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
发表于 2009-11-10 11:11:20 | 只看该作者
收了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 18:13 , Processed in 0.123634 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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