引用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 在这之前需要关闭数据库的连接
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
filecopy "d:\yourfilename","E:\yourfilename"
另类方法: 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
对文件的移动、复制和删除,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 "全部完成!"
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
在这之前需要关闭数据库的连接
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