设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 用VB创建和修改查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-7 18:19:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2009-3-7 19:34 编辑


  用TransferSpreadsheet导出Excel时,你常常会遇到一个麻烦,就是你需要一个查询的名称,没有这个名称你是无法导出你需要的数据的。你固然可以用向导事先建立你需要的查询,你也就有了这个查询名称。但是,当的程序已经开始运用了,此时你或你程序的使用者,或许需要改变你对导出数据的想法时,你的麻烦就来了。这时你就琢磨了,当初怎么不考虑扩展性问题呢?于是乎,你便会想到论坛上的这个帖子了。

  起初写这个帖子时的想法是为了解决以上问题的,不过想了想,问题需要简化成《用VB创建和修改查询》,简化的结果是你没有发现导出Excel问题,倒是可以沿着这个思路找到更为广泛的用途。

  这个帖子是为初学者撰写的,这样声明的含义有两层:其一是本人是初学者,因此代码可能不完善;其二是仅对初学者有帮助,因此代码很简单。

  





Option Compare Database
Dim Qdef As QueryDef
Dim strsql As String
Dim strname As String

Private Sub 创建查询_Click()
strname = InputBox$("输入查询名称:", "查询名称", "临时查询")
On Error GoTo 创建_Err
     strsql = Me.子窗体.Form.RecordSource
     strsql = InputBox$("输入SQL语句:", "SQL语句", "select * from " & strsql & " where 准则;")
    Set Qdef = CurrentDb.CreateQueryDef(strname)  '创建查询
    Qdef.SQL = strsql
                                             '创建查询
     Me.子窗体.Form.RecordSource = strname
     Me.子窗体.Form.Requery
     Qdef.Close
     Set Qdef = Nothing
创建_Exit:
     Exit Sub
创建_Err:
     MsgBox strname & " 已存在!"
     Resume 创建_Exit
End Sub

Private Sub 删除查询_Click()
strname = InputBox$("输入查询名称:", "查询名称", "临时查询")
On Error GoTo 删除_Err
     Me.子窗体.Form.RecordSource = "成绩查询"
     Me.子窗体.Form.Requery
     DoCmd.DeleteObject acQuery, strname
删除_Exit:
     Exit Sub
删除_Err:
     MsgBox strname & " 不存在!"
     Resume 删除_Exit
End Sub

Private Sub 修改查询_Click()
strname = InputBox$("输入查询名称:", "查询名称", "临时查询")
On Error GoTo 修改_Err
     Me.子窗体.Form.RecordSource = "成绩查询"
     strsql = Me.子窗体.Form.RecordSource
     strsql = InputBox$("输入SQL语句:", "SQL语句", "select * from " & strsql & " where 准则;")
    Set Qdef = CurrentDb.QueryDefs(strname)  '修改查询
    Qdef.SQL = strsql                                     '修改查询
     Me.子窗体.Form.RecordSource = strname
     Me.子窗体.Form.Requery
     Qdef.Close
     Set Qdef = Nothing
修改_Exit:
     Exit Sub
修改_Err:
     MsgBox strname & " 不存在!"
     Resume 修改_Exit
End Sub


------------------------------------

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-3-7 18:26:18 | 只看该作者
一上来就看到 todaynew  的新作,先来踹上一脚再说。



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
3#
 楼主| 发表于 2009-3-7 18:30:06 | 只看该作者
一上来就看到 todaynew  的新作,先来踹上一脚再说。



******************
*  一切皆有可能 ...
ACMAIN_CHM 发表于 2009-3-7 18:26


4#
发表于 2009-3-7 21:15:12 | 只看该作者
1楼和2楼都是高手,佩服,
向您们看齐,学习。
5#
发表于 2009-3-12 12:06:12 | 只看该作者
学习,太强了
6#
发表于 2009-7-1 11:48:17 | 只看该作者
昨天找了这个东东大半天 ,
7#
发表于 2009-7-8 10:59:33 | 只看该作者
谢谢
8#
发表于 2009-12-23 18:29:12 | 只看该作者
真好啊

点击这里给我发消息

9#
发表于 2009-12-31 09:17:39 | 只看该作者
看见好东西必顶无疑!
10#
发表于 2010-5-14 09:58:19 | 只看该作者
再次感谢todaynew老师指导
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-21 00:57 , Processed in 0.094070 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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