純編碼實現Access數據庫的建立或壓縮_Access數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:建立自由的會計日期的報表
      Microsoft Access 的報表提供按日期分組的統計,可是只能是完整的年、月、日等,也就是說比如要統計一個月的數據就必須是從月初到月底。 我們編寫程序,有許多是工作中的統計系統,而單位的各


      以下為引用的內容:
      <%
      '#######以下是一個類文件,下面的注解是調用類的方法################################################
      '# 注意:如果系統不支持建立Scripting.FileSystemObject對象,那么數據庫壓縮功能將無法使用
      '# Access 數據庫類
      '# CreateDbFile 建立一個Access 數據庫文件
      '# CompactDatabase 壓縮一個Access 數據庫文件
      '# 建立對象方法:
      '# Set a = New DatabaseTools
      '# by (蕭寒雪) s.f.
      '#########################################################################################

      Class DatabaseTools

      Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath)
      '建立數據庫文件
      'If DbVer is 0 Then Create Access97 dbFile
      'If DbVer is 1 Then Create Access2000 dbFile
      On error resume Next
      If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"
      If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
      If DbExists(SavePath & dbFileName) Then
      Response.Write ("對不起,該數據庫已經存在!")
      CreateDBfile = False
      Else
      Dim Ca
      Set Ca = Server.CreateObject("ADOX.Catalog")
      If Err.number<>0 Then
      Response.Write ("無法建立,請檢查錯誤信息<br>" & Err.number & "<br>" & Err.Description)
      Err.Clear
      Exit function
      End If
      If DbVer=0 Then
      call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName)
      Else
      call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName)
      End If
      Set Ca = Nothing
      CreateDBfile = True
      End If
      End function

      Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)
      '壓縮數據庫文件
      '0 為access 97
      '1 為access 2000
      On Error resume next
      If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"
      If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
      If DbExists(SavePath & dbFileName) Then
      Response.Write ("對不起,該數據庫已經存在!")
      CompactDatabase = False
      Else
      Dim Cd
      Set Cd =Server.CreateObject("JRO.JetEngine")
      If Err.number<>0 Then
      Response.Write ("無法壓縮,請檢查錯誤信息<br>" & Err.number & "<br>" & Err.Description)
      Err.Clear
      Exit function
      End If
      If DbVer=0 Then
      call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
      Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
      Else
      call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
      SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
      SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
      End If
      '刪除舊的數據庫文件
      call DeleteFile(SavePath & dbFileName)
      '將壓縮后的數據庫文件還原
      call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)
      Set Cd = False
      CompactDatabase = True
      End If
      end function

      Public function DbExists(byVal dbPath)
      '查找數據庫文件是否存在
      On Error resume Next
      Dim c
      Set c = Server.CreateObject("ADODB.Connection")
      c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
      If Err.number<>0 Then
      Err.Clear
      DbExists = false
      else
      DbExists = True
      End If
      set c = nothing
      End function

      Public function AppPath()
      '取當前真實路徑
      AppPath = Server.MapPath("./")
      End function

      Public function AppName()
      '取當前程序名稱
      AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1)) 1,Len(Request.ServerVariables("SCRIPT_NAME")))
      End Function

      Public function DeleteFile(filespec)
      '刪除一個文件
      Dim fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      If Err.number<>0 Then
      Response.Write("刪除文件發生錯誤!請查看錯誤信息<br>" & Err.number & "<br>" & Err.Description)
      Err.Clear
      DeleteFile = False
      End If
      call fso.DeleteFile(filespec)
      Set fso = Nothing
      DeleteFile = True
      End function

      Public function RenameFile(filespec1,filespec2)
      '修改一個文件
      Dim fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      If Err.number<>0 Then
      Response.Write("修改文件名時發生錯誤!請查看錯誤信息<br>" & Err.number & "<br>" & Err.Description)
      Err.Clear
      RenameFile = False
      End If
      call fso.CopyFile(filespec1,filespec2,True)
      call fso.DeleteFile(filespec1)
      Set fso = Nothing
      RenameFile = True
      End function

      End Class
      %>

      分享:用DAO或ADO正確訪問Access 2000
      當你使用 DAO 訪問 Access 2000 時,是否會出現以下的錯誤信息? "Run-time error 3343 Unrecognized Database Format XXX" 這個錯誤信息有二個解決的方式: 1、如果你是使用 D

      來源:模板無憂//所屬分類:Access數據庫教程/更新時間:2008-08-22
      相關Access數據庫教程