Selasa, 02 Agustus 2011

Compact And Repair Databse Access Dengan DBEngine VB6

Berikut ini adalah cara meng-compact and repair database microsoft access di visual basic 6, hal ini penting dilakukan agar ukuran file database tidak membengkak (besar) dan dapat membetulkan jika ada error di file ms.access-nya. untuk mempraktekannya siapkan :
1. Buat 1 Project baru dengan 1 Form, 1 Module, 2 Commandbutton,  dan 1 Label.
2. Tambahkan component "Microsoft Common Dialog Control 6.0 (SP3)"  dari menu Project->Components...
3. Copy-kan coding berikut ke dalam editor form dan module ybt.

          'Coding ini di Module...
          Public Declare Function GetTempPath Lib "kernel32" Alias _

              "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer _
              As String) As Long
          Public Const MAX_PATH = 260
          
          Public Sub CompactJetDatabase(Location As String, _

                     Optional BackupOriginal As Boolean = True)
           On Error GoTo CompactErr
           Dim strBackupFile As String
           Dim strTempFile As String


           'Periksa apakah database ada...
           If Len(Dir(Location)) Then
              'Jika diperlukan utk membackup, lakukan!

              If BackupOriginal = True Then
                  strBackupFile = GetTemporaryPath & "backup.mdb"
                  If Len(Dir(strBackupFile)) Then Kill strBackupFile
                  FileCopy Location, strBackupFile
              End If

              'Buat nama file temporal (sementara)
              strTempFile = GetTemporaryPath & "temp.mdb"
              If Len(Dir(strTempFile)) Then Kill strTempFile


              'Lakukan compact database menggunakan DBEngine
              DBEngine.CompactDatabase Location, strTempFile

              'Untuk repair database, Anda menggunakan cara berikut:

              'Sesuaikan kebutuhan lainnya di prosedur ini...
              'DBEngine.RepairDatabase "NamaDatabaseAnda.mdb"

              'Jika database Anda dipassword, gunakan cari berikut:
              'DBEngine.CompactDatabase Location, strTempFile, , , ";pwd=passwordanda;"


              'Hapus file database yang asli
              Kill Location
              'Copy yang file sementara dan telah dicompact

              'menjadi file database yang asli kembali...
              FileCopy strTempFile, Location
              'Hapus file database temporal (sementara)
              Kill strTempFile

              MsgBox "Sukses meng-compact database!", vbInformation, "Sukses"
           End If
           Exit Sub
          CompactErr:   'Jika terjadi error, tampilkan pesan
                        'kemungkinan berikut ini...

            Select Case Err.Number
                   Case 70  'Sedang digunakan

                       MsgBox "Database sedang digunakan!" & vbCrLf & _
                              "Tutup dulu file tersebut!", vbCritical, _

                              "Sedang Digunakan"
                   Case 75  'Path/file belum ada
                       MsgBox "Database belum dipilih." & vbCrLf & _
                              "Pilih dulu databasenya!", vbCritical, _
                              "Database Belum Ada"

                   Case 3031  'Diprotect password
                       MsgBox "Database dipassword. Untuk yang ini," & vbCrLf & _
                              "lakukan langsung dari filenya...!", vbCritical, _
                              "File Terprotect Password"

                   Case 3343  'Database tidak dikenali
                       MsgBox "Databaes bukan Access 97" & vbCrLf & _
                              "atau file bukan database!", vbCritical, _
                              "Database Tidak Dikenali"

                   Case Else
                       MsgBox Err.Number & " - " & Err.Description
               Exit Sub
            End Select

          End Sub

          'Fungsi ini untuk mengambil nama direktori tempat file
          'database temporal (sementara) dicopy...

          Public Function GetTemporaryPath()
            Dim strFolder As String
            Dim lngResult As Long
            strFolder = String(MAX_PATH, 0)

            lngResult = GetTempPath(MAX_PATH, strFolder)
            If lngResult <> 0 Then
              GetTemporaryPath = Left(strFolder, InStr(strFolder, _
                                 Chr(0)) - 1)
            Else

              GetTemporaryPath = ""
            End If
          End Function
          '--- Akhir coding di Module...

          '--- Coding ini di Form Anda...
          Private Sub Command1_Click()
            With CommonDialog1

               .Filter = "*.mdb"
               .ShowOpen
               Label1.Caption = .FileName
            End With
          End Sub

          Private Sub Command2_Click()
              Call CompactJetDatabase(Label1.Caption)
          End Sub

          '--- Akhir coding di Form...


Tags:
contoh program vb6, contoh fungsi di vb6, cara penggunaan fungsi vb, tutorial vb6, download tutorial vb6, vb6 tutorial download, dasar dasar vb6, belajar vb6, cara mudah belajar vb6, vb6 artikel download, vb6 blog, contoh program vb6, artikel vb6, semua tentang vb6, vb6 api, cara menggunakan module, cara menggunakan class module

Ditulis Oleh : Wahyu Aji // 23.59
Kategori:

0 komentar:

Posting Komentar