Office中国论坛/Access中国论坛

标题: 管理你的ACCESS查询语句 [打印本页]

作者: Victor_Duane    时间: 2007-12-15 12:25
标题: 管理你的ACCESS查询语句
导入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
作者: gdfsslec    时间: 2007-12-15 12:28
谢谢版主分享!
在什么场合使用啊
作者: Victor_Duane    时间: 2007-12-15 12:40
这些我为了方便整理都是写在模块里的,你可以在模块里直接运行,也可以在窗体的按钮事件中运行testCreatequerysql()
这个过程
作者: iamee    时间: 2007-12-15 13:28
谢谢分享!!!!!!
作者: gdfsslec    时间: 2007-12-15 13:56
我的意思是我们通常把ACCESS的查询语句写在代码里,然后生成MDE保护。如果放在表里不是很容易被人修改?
作者: Victor_Duane    时间: 2007-12-15 15:42
这些不是运用于你的数据库的使用,而是为了更好的维护你的数据库的查询
一旦查询被破坏,可以从这个表中导入,这样你的数据库将更加的强壮
作者: goto2008    时间: 2007-12-15 19:21
能弄个库上来吗,汗.....
作者: t小宝    时间: 2007-12-15 21:54
很好,谢谢!
作者: 5988143    时间: 2007-12-17 08:15
不錯,謝謝分享!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3