压缩:
http://www.csdn.net/expert/topic/530/530363.xml

解决方案 »

  1.   

    压缩和修复数据库
    Dim je As New jro.JetEngine
    ' Make sure that a file doesn't exist with the name of
    If Dir(strDataBaseFileNameNew) <> "" Then Kill strDataBaseFileNameNew
    ' Compacts and encrypts database.
    je.CompactDatabase _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Jet OLEDB:Database Password=joybig;" & _
    "Data Source=" & strDataBaseFileName, _
    _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Jet OLEDB:Database Password=joybig;" & _
    "Data Source=" & strDataBaseFileNameNew & _
    ";Jet OLEDB:Encrypt Database=True"
    Set je = Nothing
    FileCopy strDataBaseFileNameNew, strDataBaseFileName
    Kill strDataBaseFileNameNew
      

  2.   

    什么地方 不对 哦?直接用ado 是不行的.
      

  3.   

    adox那?可以吗???以前没有接触过!
      

  4.   

    用 ADOX ?不行。只有 用 DAO 的 DBEngine 和 JetEngine
      

  5.   

    不会把!这么恐怖?ado没有办法????!!!!!
      

  6.   

    我想压缩MDB最好是用DAO?其他方法吗?不知道
      

  7.   

    ADO可以实现。CompactDatabase(如不知道此函数的用法,请查MSDN)
      

  8.   

    ADO可以实现。CompactDatabase(如不知道此函数的用法,请查MSDN)
      

  9.   

    用DAO吧,十分方便。
    用compactdatabase函数
      

  10.   

    CompactDatabase 是 DAO 的。
      

  11.   

    (msdn中的技术文章) how to:Compacting Micorsoft Access Database via ADO.1. add a references to your project: Microsoft Jet and Replication Objects *.*.library.2. then:
       jro.compactdatabase "provider=***; data source=....."note: 这个方法替代了DAO中的repairdatabase方法。
      

  12.   


    thank you 我去调试一下!
      

  13.   

    DAO中提供了这种方法。但是感觉还是手动压缩和修复比较好。虽然DAO中一个语句就能实现,但是感觉不太尽人意
      

  14.   

    压缩和修复工具 
    压缩工具可消除现有数据库中的未占用空间。它是通过创建一个新的目标数据库,并将旧数据库中的所有对象复制到新数据库中来实现的。如果您选择将数据库压缩到原来的数据库名称下,而不是新的数据库,那么压缩工具将会创建一个临时数据库,将原数据库中的所有对象导出到临时数据库中,删除原来的数据库,然后将临时数据库重命名为原来的数据库。 修复工具只用来修复数据库中的表、查询和索引。它不能修复已损坏的窗体、报表、宏或模块。以下是压缩工具所执行的操作列表。 
    重新组织表的页面,使之放在相邻的数据库页面上。由于表不再散放在数据库中,所以可提高性能。 
    回收对象和记录删除创建的未使用的空间。当从数据库中删除对象或记录时,就会将它们所占用的空间打上标记,提供给数据库新添加项使用。但是,除非对数据库进行压缩,否则数据库不会变小。对于经常添加、删除和更新对象及记录的数据库而言,应该经常对数据库进行压缩。 
    重新递增 AutoNumber 字段,使分配的下一个值比其余记录的最大值大 1。例如,如果删除了数据库中的所有记录,在压缩数据库后添加下一个记录时,AutoNumber 字段中的值将为 1。如果数据库中 AutoNumber 最大余值为 50,那么在压缩值后添加下一个记录时,它的值为 51。注意,即使压缩之前添加的记录包含的值大于 50,它也适用。 
    重新生成查询优化过程使用的表统计数字。通常,如果回滚事务、由于断电而没有正常关闭数据库或者关机前无法完全退出使用 Microsoft Jet 的程序,这些统计数字可能会随时间而过时。 
    标记所有的查询,以便下次执行查询时重新进行编译。这一点很重要,因为数据库统计数字可以会发生变化,并且以前编译的查询的查询计划可能不准确。 
      

  15.   

    一下代码只支持8.3格式文件谁会win2k格式的?********************************************************************
    Const ODBC_ADD_DSN = 1         ' Add data source0D
    Const ODBC_CONFIG_DSN = 2      ' Configure (edit) data source
    Const ODBC_REMOVE_DSN = 3      ' Remove data source0D#If Win32 Then   Declare Function SQLCONFIGDATASOURCE Lib "odbccp32.dll" Alias "SQLConfigDataSource" _0D
        (ByVal hWndParent&, _
         ByVal fRequest, _
         ByVal lpszDriver$, _
    0A     ByVal lpszAttributes$) As Boolean#ElseIf Win16 Then   Declare Function SQLCONFIGDATASOURCE Lib "odbcinst.dll" _
        (ByVal hWndParent, _
    0A     ByVal fRequest, _
         ByVal lpszDriver$, _
    0A     ByVal lpszAttributes$) As Boolean
    #End IfPublic Sub CompactDb()
        Dim dbDriver As String
    0A    Dim dbAttributes As String
        Dim result As Boolean
    0A
        #If Win32 Then
           Let dbDriver = "Microsoft Access Driver (*.mdb)"
        #ElseIf Win16 Then
           Let dbDriver = "Access Files (*.mdb)"
        #End If   Let dbAttributes = "COMPACT_DB=c:\FCQY.mdb c:\F1.mdb General" & Chr$(0) _
          & "UID=admin" & Chr$(0) _
          & "PWD=xxxxx"   result = SQLCONFIGDATASOURCE(0, ODBC_CONFIG_DSN, dbDriver, dbAttributes)
       If (False = result) Then
          MsgBox "Establishing DSN failed!  Error: " & result
          End
       End IfEnd Sub
          我是小山,我喜欢VB,现在在学习C#和.net的相关知识
               欢迎使用: SourceCode Explorer(源代码数据库)
               当前版本: 1.0.690
                   作者: Shawls
               个人主页: Http://Shawls.Yeah.Net
                 E-Mail: [email protected]
                     QQ: 9181729
      

  16.   

    完全的:********************************************************************
    Const ODBC_ADD_DSN = 1         ' Add data source0D
    Const ODBC_CONFIG_DSN = 2      ' Configure (edit) data source
    Const ODBC_REMOVE_DSN = 3      ' Remove data source0D#If Win32 Then   Declare Function SQLCONFIGDATASOURCE Lib "odbccp32.dll" Alias "SQLConfigDataSource" _0D
        (ByVal hWndParent&, _
         ByVal fRequest, _
         ByVal lpszDriver$, _
    0A     ByVal lpszAttributes$) As Boolean#ElseIf Win16 Then   Declare Function SQLCONFIGDATASOURCE Lib "odbcinst.dll" _
        (ByVal hWndParent, _
    0A     ByVal fRequest, _
         ByVal lpszDriver$, _
    0A     ByVal lpszAttributes$) As Boolean
    #End IfPublic Sub CompactDb()
        Dim dbDriver As String
    0A    Dim dbAttributes As String
        Dim result As Boolean
    0A
        #If Win32 Then
           Let dbDriver = "Microsoft Access Driver (*.mdb)"
        #ElseIf Win16 Then
           Let dbDriver = "Access Files (*.mdb)"
        #End If   Let dbAttributes = "COMPACT_DB=c:\FCQY.mdb c:\F1.mdb General" & Chr$(0) _
          & "UID=admin" & Chr$(0) _
          & "PWD=xxxxx"   result = SQLCONFIGDATASOURCE(0, ODBC_CONFIG_DSN, dbDriver, dbAttributes)
       If (False = result) Then
          MsgBox "Establishing DSN failed!  Error: " & result
          End
       End IfEnd Sub
    取得File 8.3之文件名称格式
    (录入日期:2001.09.16 阅读次数:152) 转载不详作者:不详 取得File 8.3之文件名称格式
    作者: cwwPrivate Declare Function GetShortPathName Lib "kernel32" Alias
    "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
    String, ByVal cchBuffer As Long) As Long
    Private Declare Function GetFullPathName Lib "kernel32" _
       Alias "GetFullPathNameA" (ByVal lpFileName As String, _0D
       ByVal nBufferLength As Long, ByVal lpBuffer As String, _0D
       lpFilePart As Byte) As LongPrivate Sub Command1_Click()0D
    Dim aa As Long, pbase As Long0D
    Dim FullPath As String, ShortPath As String
    Dim SouStr As String
    Dim len5 As Long
    Dim fname() As Byte
    Dim gg As String
    SouStr = "C:vb5.exe"
    ShortPath = String(255, 0)
    aa = GetShortPathName(SouStr, ShortPath, 256)
    SouStr = Left(ShortPath, InStr(1, ShortPath, Chr(0)) - 1)
    Debug.Print SouStr
    End Sub
          我是小山,我喜欢VB,现在在学习C#和.net的相关知识
               欢迎使用: SourceCode Explorer(源代码数据库)
               当前版本: 1.0.690
                   作者: Shawls
               个人主页: Http://Shawls.Yeah.Net
                 E-Mail: [email protected]
      

  17.   

    使用JRO(工程菜单->引用->Microsoft jet and replication objects 2.5)
    JRO jetengine对象用一个CompactDatabase方法可以压缩数据库。
    下面是一个使用CompactDatabase压缩数据库的例子:
    strConnOriginal = "Prvider = Microsoft.jet.oledb.4.0;Data Source = FilePath;"     '源数据库
    strConnNew = "Microsoft.jet.oledb.4.0;Data Source = FilePath;"   '压缩后数据库
    set jroEngine = New JRO.JetEngine
    jroEngine.CompactDatabase strConnOriginal,strConnNew
      

  18.   


    请注意:我不希望使用任何其他的库文件(系统自带除外)      我是小山,我喜欢VB,现在在学习C#和.net的相关知识         欢迎您使用: SourceCode Explorer(源代码数据库)
               当前版本: 1.0.690
                   作者: Shawls
                   来自: Http://www.dapha.net
               个人主页: Http://Shawls.Yeah.Net
                 E-Mail: [email protected]
                     QQ: 9181729