设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2838|回复: 8
打印 上一主题 下一主题

[模块/函数] 管理你的ACCESS查询语句

[复制链接]
跳转到指定楼层
1#
发表于 2007-12-15 12:25:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
导入ACCESS的查询语句到一个表中
直接运行 testCreatequerysql()这个过程就可以把你数据库中的查询导入到一个tblquerysql
这个表是过程建立的,如果过程已经建立了不会覆盖原来的表
Sub testCreatequerysql()
CDtable
CreateQuerySQL "tblquerysql"
End Sub
把查询的语句写入到一个表中的过程
Sub CreateQuerySQL(strTable As String)
On Error GoTo Err_Handler
Dim Rs As DAO.Recordset
Dim qy As DAO.QueryDef
Dim i As Integer
Set Rs = CurrentDb.OpenRecordset(strTable)
For Each qy In CurrentDb.QueryDefs
If qy.Name Like "[!~]*" Then
Debug.Print qy.Name
Rs.AddNew
Rs(1) = qy.Name
Rs(2) = qy.SQL
Rs.Update
qy.Close
End If
qy.Close
Next
Set qy = Nothing
Set Rs = Nothing
Err_Handler:
If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description
End Sub
新建一个表tblquerysql可以存放查询语句
Public Sub CDtable()
On Error GoTo error1
Dim db1 As Database
Dim t1 As TableDef
Dim f1 As Field
    Set db1 = Workspaces(0).Databases(0)
    Set t1 = db1.CreateTableDef("tblQuerySql")
   
    With t1
        Set f1 = .CreateField("ID", dbLong)
        f1.Attributes = dbAutoIncrField + dbFixedField
        Debug.Print f1.Attributes
        t1.Fields.Append f1
        
        Set f1 = .CreateField("QueryName", dbText, 50)
        t1.Fields.Append f1
        
        Set f1 = .CreateField("SqlValue", dbMemo)
        t1.Fields.Append f1
        Set f1 = .CreateField("operTime", dbDate)
        f1.DefaultValue = "=Now()"
        t1.Fields.Append f1
    End With
   
    db1.TableDefs.Append t1
    db1.Close
    Exit Sub
error1:
    If Err.Number = 3010 Then
        Exit Sub
    Else
        MsgBox Err.Number & Err.Description
        Exit Sub
    End If
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-12-15 12:28:38 | 只看该作者
谢谢版主分享!
在什么场合使用啊
3#
 楼主| 发表于 2007-12-15 12:40:43 | 只看该作者
这些我为了方便整理都是写在模块里的,你可以在模块里直接运行,也可以在窗体的按钮事件中运行testCreatequerysql()
这个过程
4#
发表于 2007-12-15 13:28:13 | 只看该作者
谢谢分享!!!!!!
5#
发表于 2007-12-15 13:56:00 | 只看该作者
我的意思是我们通常把ACCESS的查询语句写在代码里,然后生成MDE保护。如果放在表里不是很容易被人修改?
6#
 楼主| 发表于 2007-12-15 15:42:46 | 只看该作者
这些不是运用于你的数据库的使用,而是为了更好的维护你的数据库的查询
一旦查询被破坏,可以从这个表中导入,这样你的数据库将更加的强壮
7#
发表于 2007-12-15 19:21:23 | 只看该作者
能弄个库上来吗,汗.....

点击这里给我发消息

8#
发表于 2007-12-15 21:54:46 | 只看该作者
很好,谢谢!
9#
发表于 2007-12-17 08:15:19 | 只看该作者
不錯,謝謝分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 19:19 , Processed in 0.107977 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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