Office中国论坛/Access中国论坛
标题:
用VB创建和修改查询
[打印本页]
作者:
todaynew
时间:
2009-3-7 18:19
标题:
用VB创建和修改查询
本帖最后由 todaynew 于 2009-3-7 19:34 编辑
用TransferSpreadsheet导出Excel时,你常常会遇到一个麻烦,就是你需要一个查询的名称,没有这个名称你是无法导出你需要的数据的。你固然可以用向导事先建立你需要的查询,你也就有了这个查询名称。但是,当的程序已经开始运用了,此时你或你程序的使用者,或许需要改变你对导出数据的想法时,你的麻烦就来了。这时你就琢磨了,当初怎么不考虑扩展性问题呢?于是乎,你便会想到论坛上的这个帖子了。
起初写这个帖子时的想法是为了解决以上问题的,不过想了想,问题需要简化成《用VB创建和修改查询》,简化的结果是你没有发现导出Excel问题,倒是可以沿着这个思路找到更为广泛的用途。
这个帖子是为初学者撰写的,这样声明的含义有两层:其一是本人是初学者,因此代码可能不完善;其二是仅对初学者有帮助,因此代码很简单。
[attach]36408[/attach]
[attach]36409[/attach]
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
------------------------------------
作者:
ACMAIN_CHM
时间:
2009-3-7 18:26
一上来就看到 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
.
作者:
todaynew
时间:
2009-3-7 18:30
一上来就看到 todaynew 的新作,先来踹上一脚
再说。
******************
* 一切皆有可能 ...
ACMAIN_CHM 发表于 2009-3-7 18:26
作者:
chaojianan
时间:
2009-3-7 21:15
1楼和2楼都是高手,佩服,
向您们看齐,学习。
作者:
wanglhc
时间:
2009-3-12 12:06
学习,太强了
作者:
Santree
时间:
2009-7-1 11:48
昨天找了这个东东大半天 ,
作者:
ZZBZZBZZZB
时间:
2009-7-8 10:59
谢谢
作者:
zzxgenius529
时间:
2009-12-23 18:29
真好啊
作者:
heqing3000
时间:
2009-12-31 09:17
看见好东西必顶无疑!
作者:
jsnjhu
时间:
2010-5-14 09:58
再次感谢todaynew老师指导
作者:
ZHENGLIAN
时间:
2010-8-22 11:43
看见好东西必顶无疑
作者:
ggguan@yeah.net
时间:
2015-5-8 15:42
的多少
作者:
nncchh
时间:
2015-5-25 23:12
谢谢分享
作者:
nncchh
时间:
2015-5-25 23:13
学习了
作者:
ardu95
时间:
2016-11-1 06:50
谢谢分享。
收藏了,
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3