需要关闭数据环境,然后引用FSO对象

解决方案 »

  1.   

    移动、复制和删除文件
    对文件的移动、复制和删除,FSO 对象模型都提供了两种方法:任务 方法 
    移动一个文件 File.Move 或
    FileSystemObject.MoveFile 
    复制一个文件 File.Copy 或
    FileSystemObject.CopyFile 
    删除一个文件 File.Delete 或
    FileSystemObject.DeleteFile 
    示例
    本例先在C盘的根目录下创建了一个文本文件,并向其中写入一些信息,然后将该文件移至一个名叫 \tmp 的目录,并复制到一个叫 \temp 的目录下,最后删掉该文件在这两个子目录下的拷贝。要运行本例,请先确认在C盘的根目录下已经存在名叫 \tmp 和 \temp 的目录。Sub Manip_Files()
        Dim fso as New FileSystemObject, txtfile, fil1, fil2
        Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
        MsgBox "写入文件"
        ' 写入一行。
        txtfile.Write ("这是一个测试例子。")
        ' 关闭要写入的文件。
        txtfile.Close
        MsgBox "移动文件到 c:\tmp"
        ' 获得C盘根目录下的一个文件句柄。
        Set fil1 = fso.GetFile("c:\testfile.txt")
        ' 将该文件移至 \tmp 目录下。
        fil1.Move ("c:\tmp\testfile.txt")
        MsgBox "复制文件到 c:\temp"
        ' 将该文件复制到 \temp 目录下。
        fil1.Copy ("c:\temp\testfile.txt")
        MsgBox "删除文件"
        ' 获得这些文件当前位置的句柄。
        Set fil1 = fso.GetFile("c:\tmp\testfile.txt")
        Set fil2 = fso.GetFile("c:\temp\testfile.txt")
        ' 删除这些文件。
        fil1.Delete
        fil2.Delete
    MsgBox "全部完成!"
      

  2.   

    引用Microsoft Jet and Replication ObjectsDim Jet As JetEngine
    Set Jet = New JetEngine
    Call Jet.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SourDB, _
                             "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bakDB)
    Set Jet = Nothing
    在这之前需要关闭数据库的连接
      

  3.   

    VB自带的FileCopy函数不行,但Api函数CopyFile足以!Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
      

  4.   

    filecopy "d:\yourfilename","E:\yourfilename"
      

  5.   

    另类方法:
    dim db as database,rs as recondset,tbl as tabledef,NewDb as database
    set db=dbengine.workspace(0).opendatabase("原数据库名")
    set NewDb=dbengine.workspace(1).createdatabase("新数据库名",dblanggeneral)
    for each rs in db
        if ucase(left(rs.name))<>"MS" then      '以MS开头的一般是系统自带,当然有时例外
           set tbl=newdb.createtabledef(Rs.name)
           set tbl=NewDb.execute("select * from "& rs.name")
               newdb.tabledefs.append tbl
               newdb.append
        end if
    next