Office中国论坛/Access中国论坛

标题: 如何编程压缩Access? [打印本页]

作者: chenwm1973    时间: 2010-8-31 22:16
标题: 如何编程压缩Access?
本帖最后由 chenwm1973 于 2010-8-31 22:18 编辑

由于是用函数来调用Access(独占方式)
Public Function ExecuteSQL(ByVal strSQL As String, strLockType As String) As ADODB.Recordset
如此会造成无法关闭Access,除非关闭程序。
而压缩数据库需要关闭Access,
请问如何关闭Access后再压缩Access?


作者: t小宝    时间: 2010-8-31 22:40
不是很明白你的意思
系统选项中可以设置退出时压缩
作者: chenwm1973    时间: 2010-9-1 07:25
是用VB编程调用操作Access
在整个程序运行期间,Access一直打开
现在问题是不知如何在运行中关闭。
函数代码如下
Public Function ExecuteSQL(ByVal strSQL As String, strLockType As String) As ADODB.Recordset
    Dim rs As New ADODB.Recordset
    Dim DBcnn As New ADODB.Connection
    On Error GoTo ExecuteSQL_Error
   
    Set DBcnn = New ADODB.Connection
    DBcnn.ConnectionString = "uid=admin;pwd=123;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\HR_data_Phone.mdb "
    DBcnn.Open
   
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
   
    If UCase(strLockType) = "W" Then  '写数据"w"或"W"
        rs.Open Trim$(strSQL), DBcnn, adOpenStatic, adLockPessimistic
        Else '只读数据"r"或"R"
        rs.Open Trim$(strSQL), DBcnn, adOpenStatic, adLockReadOnly
    End If
    Set ExecuteSQL = rs
   
ExecuteSQL_Exit:
    Set rs = Nothing
    Set DBcnn = Nothing
    Exit Function

ExecuteSQL_Error:
    If Err.Number <> 0 Then
        MsgBox  "错误信息:" & Err.Description , vbCritical, "错误"
    End If
    Resume ExecuteSQL_Exit

End Function

作者: koutx    时间: 2010-9-1 15:51
本帖最后由 koutx 于 2010-9-1 15:55 编辑

我在VB.net中都是使用OledbConnection,取出数据后就关闭Connection。
你将DBcnn.Close后,再压缩试试看,不知行不行。

作者: chenwm1973    时间: 2010-9-1 17:14
本帖最后由 chenwm1973 于 2010-9-2 08:56 编辑

怎么关闭?
这是在函数中,不知怎么关?
以前不用函数时,就如楼上所说,可以操作。




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