Modul global berisi fungsi yang tidak mengacu pada satu aktivitas obyek tertentu. Modul global digunakan untuk memudahkan identifikasi bahwa fungsi-fungsi yang ada di dalamnya bersifat global. Contohnya adalah fungsi tombol untuk kembali ke awal record (first), record sebelum (previous), record berikut (next), akhir record (last), dan sebagainya. Oleh karena itu modul seperti ini disimpan dengan nama mdlGlobal.
Berikut ini adalah fungsi yang ada di modul mdlGlobal. Sebelum menambahkan fungsi-fungsi di bawah ini ke mdlGlobal, tambahkan terlebih dahulu kode VBA yang ada di modul sederhana, di postingan sebelumnya.
Berikut ini adalah fungsi yang ada di modul mdlGlobal. Sebelum menambahkan fungsi-fungsi di bawah ini ke mdlGlobal, tambahkan terlebih dahulu kode VBA yang ada di modul sederhana, di postingan sebelumnya.
Function Sebelumnya()
'------------------------------------------
' Sebelumnya, arahkan ke record sebelumnya
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdRecordsGoToPrevious
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function BuatRecordBaru()
'------------------------------------------
' BuatRecord, membuat record baru
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdRefresh
DoCmd.RunCommand acCmdRecordsGoToNew
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Berikutnya()
'------------------------------------------
' Berikutnya, arahkan ke record berikutnya
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdRecordsGoToNext
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Akhir()
'------------------------------------------
' Akhir, arahkan ke akhir record
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdRefresh
DoCmd.RunCommand acCmdRecordsGoToLast
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Tutup()
'------------------------------------------
' Tutup, menutup form yang aktif
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdClose
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Hapus(Optional strSumberRecord As String)
'------------------------------------------
' Hapus, menghapus record yang aktif
'------------------------------------------
Dim strMsg As String
On Error GoTo Err_Msg
DoCmd.SetWarnings False
If strSumberRecord <> "" Then
If AdaRelasiTabel(strSumberRecord) Then
strMsg = "Pengguna tidak diperkenankan untuk menghapus data ini karena " & vbCrLf
strMsg = strMsg & "data yang ada dalam form ini ada kaitannya (relasi) dengan data di tabel lain" & vbCrLf
strMsg = strMsg & "Menghapus data ini berarti menghapus data di tabel lain."
MsgBox strMsg
Exit Function
End If
End If
strMsg = "Data yang sudah dihapus tidak dapat ditampilkan kembali. " & vbCrLf
strMsg = strMsg & "Anda yakin ingin menghapus data ini?"
If MsgBox(strMsg, vbYesNo) = vbYes Then
DoCmd.RunCommand acCmdDeleteRecord
End If
DoCmd.SetWarnings True
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Batalkan()
'------------------------------------------
' Batalkan, membatalkan aksi terakhir
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Cari()
'------------------------------------------
' Cari, mencari nilai suatu field
'------------------------------------------
On Error GoTo Err_Msg
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function TutupAplikasiIni()
'------------------------------------------
' Tutup database ini
'------------------------------------------
On Error GoTo Err_Msg
CloseCurrentDatabase
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Sourcbe & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function KeluarDariAccss()
'------------------------------------------
' Keluar dari Access
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdExit
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function Preview(stDocName As String)
'------------------------------------------
' Preview report, memerlukan refresh terlebih dahulu
' supaya report menampilkan data terbaru
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.RunCommand acCmdRefresh 'form direfresh lebih dulu
DoCmd.OpenReport stDocName, acPreview 'tampilkan report dengan data terbaru
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function PreviewUnRefresh(stDocName As String, Optional blViewReport As Boolean)
'------------------------------------------
' Preview_Unrefreshed report, tak memerluka refresh
' dengan menampilkan data terbaru. Cocok untuk
' kotak dialog
'------------------------------------------
On Error GoTo Err_Msg
If blViewReport Then
DoCmd.OpenReport stDocName, acViewReport
Else
DoCmd.OpenReport stDocName, acPreview
End If
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function BukaForm(stDocName As String)
'------------------------------------------
' BukaForm, membuka form baru
'------------------------------------------
On Error GoTo Err_Msg
DoCmd.OpenForm stDocName
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function EksporKeExcel(strNamaObyek, strSumber As String, Optional strSubSumber As String)
'------------------------------------------
' Fungsi untuk mengekspor tabel atau query ke Excel.
' strNamaObyek : nama file target di Excel
' strSumber: nama form yang aktif terbuka
' strSubSumber: nama subform yang aktif terbuka
'------------------------------------------
Dim ctl As Control
Dim adaControl As Boolean
On Error GoTo Err_Msg
globSumberRecord = ""
globNamaObyek = ""
If Not AdaForm(strSumber) Then
MsgBox "Tidak ada nama " & strSumber
Exit Function
End If
adaControl = False
If strSubSumber <> "" Then
If Forms(strSumber).Controls(strSubSumber).[SourceObject] = "" Then
MsgBox "Tidak ada data yang diekspor"
Exit Function
End If
For Each ctl In Forms(strSumber).Controls
If ctl.Name = strSubSumber Then
adaControl = True
Exit For
End If
Next ctl
If Not adaControl Then
MsgBox "Tidak ada nama " & strSubSumber
Exit Function
End If
Else
strSubSumber = strSumber
End If
If strSubSumber = strSumber Then
strSubSumberSourceObject = Forms(strSumber).RecordSource
Else
strSubSumberSourceObject = Forms(strSumber).Controls(str SubSumber).[Form].[RecordSource]
End If
globSumberRecord = strSubSumberSourceObject
If globSumberRecord = "" Then
MsgBox "Tidak ada data yang akan diekspor"
Exit Function
End If
globNamaObyek = strNamaObyek
BukaForm "frmEksporDialog"
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function NamaFolder(ByRef strFullPath As String) As String
'------------------------------------------
' Fungsi untuk mengecek nama folder
' dengan nama strFullPath.
' Digunakan untuk ekspor tabel ke Excel
'------------------------------------------
Dim tSlash As String
On Error GoTo Err_Msg
If Left(Environ$("OS"), 3) = "mac" Then tSlash = "/" Else tSlash = "\"
NamaFolder = Left(strFullPath, InStrRev(strFullPath, tSlash))
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AdaFolder(DriveSpec As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah ada sebuah folder
' dengan nama DriveSpec.
' Digunakan untuk ekspor tabel ke Excel
'------------------------------------------
Dim strNamaFolder As String
Dim fso As Object
On Error GoTo Err_Msg
strNamaFolder = NamaFolder(DriveSpec)
Set fso = CreateObject("Scripting.FileSystemObject")
Select Case fso.FolderExists(strNamaFolder)
Case True
AdaFolder = True
Case False
AdaFolder = False
End Select
Set fso = Nothing
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AdaRelasiTabel(strNamaTabel As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah ada tabel
' dengan nama strNamaTabel yang mempunyai
' relasi dengan tabel lain.
'------------------------------------------
Dim obj As AccessObject, dbsObject As Object
Dim rel As DAO.Relation
Dim qdf As DAO.QueryDef
Dim dbs As DAO.Database
Dim i As Integer
Dim AdaTabel As Boolean
On Error GoTo Err_Msg
Set dbs = CurrentDb
Set dbsObject = Application.CurrentData
AdaTabel = False
For Each obj In dbsObject.AllTables
If obj.Name = strNamaTabel Then
AdaTabel = True
Exit For
End If
Next obj
If AdaTabel Then
For Each rel In dbs.Relations
If rel.Table = strNamaTabel Then
AdaRelasiTabel = True
Exit Function
End If
Next rel
Else
If AdaTabelQuery(strNamaTabel) Then
Set qdf = dbs.QueryDefs(strNamaTabel)
Else
Set qdf = dbs.CreateQueryDef("", strNamaTabel)
End If
With qdf
For i = 0 To .Fields.Count - 1
If AdaTabelQuery(.Fields(i).SourceTable) Then
For Each rel In dbs.Relations
If rel.Table = .Fields(i).SourceTable Then
AdaRelasiTabel = True
Exit Function
End If
Next rel
End If
Next i
End With
qdf.Close
Set qdf = Nothing
End If
AdaRelasiTabel = False
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function BacaLokasiFolder() As String
'------------------------------------------
' Fungsi untuk membaca folder dari
' software ini.
' Digunakan untuk import/ekspor data
'------------------------------------------
On Error GoTo Err_Msg
BacaLokasiFolder = CurrentProject.path & "\"
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AdaFile(namaFile As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah ada sebuah file
' dengan nama namaFile.
' Digunakan untuk import tabel dari Excel
'------------------------------------------
Dim objFSO As Object
On Error GoTo Err_Msg
Set objFSO = CreateObject("Scripting.FileSystemObject")
Select Case objFSO.FileExists(namaFile)
Case True
AdaFile = True
Case False
AdaFile = False
End Select
Set objFSO = Nothing
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AdaForm(NamaForm As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah ada sebuah form
' dengan nama namaForm
'------------------------------------------
Dim obj As AccessObject, dbsObject As Object
On Error GoTo Err_Msg
Set dbsObject = Application.CurrentProject
For Each obj In dbsObject.AllForms
If obj.Name = NamaForm Then
AdaForm = True
Exit Function
End If
Next obj
AdaForm = False
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AdaTabelQuery(namaTabelQuery As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah ada sebuah tabel
' atau query dengan nama namaTabelQuery
'------------------------------------------
Dim obj As AccessObject, dbsObject As Object
On Error GoTo Err_Msg
Set dbsObject = Application.CurrentData
For Each obj In dbsObject.AllTables
If obj.Name = namaTabelQuery Then
AdaTabelQuery = True
Exit Function
End If
Next obj
For Each obj In dbsObject.AllQueries
If obj.Name = namaTabelQuery Then
AdaTabelQuery = True
Exit Function
End If
Next obj
AdaTabelQuery = False
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function formdiLoad(strFormName As String) As Boolean
'------------------------------------------
' Fungsi untuk mengecek apakah sebuah
' form sedang di-load
'------------------------------------------
Const conObjStateClosed = 0
Const conDesignView = 0
On Error GoTo Err_Msg
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If Forms(strFormName).CurrentView <> conDesignView Then
formdiLoad = True
End If
End If
Exit_Function:
Exit Function
Err_Msg:
If Err.Number = 2450 Then Exit Function
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function PreferensSistem(strNamaField As String) As Variant
'------------------------------------------
' Fungsi untuk mengambil nilai dari
' preferensi sistem
'------------------------------------------
Dim vrtDefault As Variant
On Error GoTo Err_Msg
PreferensSistem = Nz(DLookup("[" & strNamaField & "]", "tblSistemPref"), "")
If strNamaField = "FolderPenyimpanan" Then
If Right(PreferensSistem, 1) <> "\" Then _
PreferensSistem = PreferensSistem & "\"
End If
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function IdPerusahaan(strNamaField As String) As Variant
'------------------------------------------
' Fungsi untuk mengambil nilai dari
' identitas perusahaan seperti
' nama perusahaan, alamat, NPWP, dsb
'------------------------------------------
On Error GoTo Err_Msg
IdPerusahaan = Nz(DLookup("[" & strNamaField & "]", "tblIdentitasPerusahaan"), "")
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function CekPeriodeThn(dtPeriodeSekarang As Date, strTahun As PeriodeTahun) As Boolean
'------------------------------------------
' Fungsi untuk mengambil tanggal
' yang dimasukkan sesuai dengan
' periode akuntansi.
' strTahun dapat diisi TahunBerjalan, TahunSebelum, dan TahunBerikut
'------------------------------------------
Dim dtTglAwalThn, dtTglAkhirThn, dtTglAwalThnSebelum, dtTglAkhirThnSebelum, dtTglAwalThnBerikut, dtTglAkhirThnBerikut As Date
On Error GoTo Err_Msg
dtTglAwalThn = CekPeriode("TglAwalThn")
dtTglAkhirThn = CekPeriode("TglAkhirThn")
dtTglAwalThnSebelum = CekPeriode("TglAwalThnSebelum")
dtTglAkhirThnSebelum = CekPeriode("TglAkhirThnSebelum")
dtTglAwalThnBerikut = CekPeriode("TglAwalThnBerikut")
dtTglAkhirThnBerikut = CekPeriode("TglAkhirThnBerikut")
CekPeriodeThn = False
If strTahun = TahunBerjalan Then
If (dtPeriodeSekarang > CekPeriode("TglAwalThn")) And (dtPeriodeSekarang < CekPeriode("TglAkhirThn")) Then CekPeriodeThn = True
ElseIf strTahun = TahunSebelum Then
If (dtPeriodeSekarang > CekPeriode("TglAwalThnSebelum")) And (dtPeriodeSekarang < CekPeriode("TglAkhirThnSebelum")) Then CekPeriodeThn = True
ElseIf strTahun = TahunBerikut Then
If (dtPeriodeSekarang > CekPeriode("TglAwalThnBerikut")) And (dtPeriodeSekarang < CekPeriode("TglAkhirThnBerikut")) Then CekPeriodeThn = True
End If
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function CekPeriodeTanggal(ByVal strNamaField As PeriodeTanggal) As Variant
'------------------------------------------
' Fungsi untuk mengambil tanggal
' yang dimasukkan sesuai dengan
' periode akuntansi, menggunakan konstanta
'------------------------------------------
Dim strNamaFields As String
Dim tanggal As Variant
On Error GoTo Err_Msg
tanggal = Array("TglAwalThn", "TglAkhirThn", "TglAwalBulan", "TglAkhirBulan", "TglAwalBulanSebelum", _
"TglAkhirBulanSebelum", "TglAwalBulanBerikut", "TglAkhirBulanBerikut", "TglAwalThnSebelum", _
"TglAkhirThnSebelum", "TglAwalBulanThnSebelum", "TglAkhirBulanThnSebelum", "TglAwalThnBerikut", _
"TglAkhirThnBerikut", "TglAwalBulanThnBerikut", "TglAkhirBulanThnBerikut")
CekPeriodeTanggal = Nz(DLookup("[" & tanggal(strNamaField) & "]", "tblPeriode", "[StatusThnBerjalan]=0"), "")
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function CekPeriode(strNamaField As String) As Variant
'------------------------------------------
' Fungsi untuk mengambil tanggal
' yang dimasukkan sesuai dengan
' periode akuntansi, menggunakan strNamaField
'------------------------------------------
On Error GoTo Err_Msg
CekPeriode = Nz(DLookup("[" & strNamaField & "]", "tblPeriode", "[StatusThnBerjalan]=0"), "")
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function ValidPeriode(dtPeriodeSekarang As Date) As Boolean
'------------------------------------------
' Fungsi untuk memvalidasi apakah tanggal
' yang dimasukkan sesuai dengan
' periode akuntansi.
'------------------------------------------
Dim dtWkt_TglAwalThn, dtWkt_TglAkhirThn, dtWkt_TglAwalBulan, dtWkt_TglAkhirBulan As Date
On Error GoTo Err_Msg
dtWkt_TglAwalThn = CekPeriode("TglAwalThn")
dtWkt_TglAkhirThn = CekPeriode("TglAkhirThn")
dtWkt_TglAwalBulan = CekPeriode("TglAwalBulan")
dtWkt_TglAkhirBulan = CekPeriode("TglAkhirBulan")
If (dtPeriodeSekarang > dtWkt_TglAkhirBulan) Or (dtPeriodeSekarang < dtWkt_TglAwalBulan) Then
ValidPeriode = False
Else
ValidPeriode = True
End If
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function BuatQuery(qryNama, qrySQLStatemen)
'------------------------------------------
' Fungsi untuk membuat tabel/query
'------------------------------------------
Dim obj As AccessObject, dbsObject As Object
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim fld As DAO.Field2
On Error GoTo Err_Msg
Set dbsObject = Application.CurrentData
For Each obj In dbsObject.AllQueries
If obj.Name = qryNama Then
DoCmd.DeleteObject acQuery, obj.Name
End If
Next obj
Set dbs = CurrentDb()
Set qdf = dbs.CreateQueryDef(qryNama, qrySQLStatemen)
dbs.Close
Set qdf = Nothing
Set dbs = Nothing
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function HapusObjekYgTidakPerlu(strObjekYgAkanDihapus As String)
'------------------------------------------
' Fungsi untuk menghapus tabel/query yang dihasilkan
' setelah selesainya sebuah proses yang memerlukan pembuatan
' tabel/query sementar. Untuk keamanan data,
' maka tabel/query itu harus dihapus.
'------------------------------------------
Dim obj As AccessObject, dbsObject As Object
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim qdf As DAO.QueryDef
On Error GoTo Err_Msg
DoCmd.SetWarnings False
Set dbsObject = Application.CurrentData
For Each obj In dbsObject.AllTables
If obj.Name = strObjekYgAkanDihapus Then
DoCmd.DeleteObject acTable, obj.Name
End If
Next obj
For Each obj In dbsObject.AllQueries
If obj.Name = strObjekYgAkanDihapus Then
DoCmd.DeleteObject acQuery, obj.Name
End If
Next obj
DoCmd.SetWarnings True
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function CekAccdeMde() As Boolean
'------------------------------------------
' Digunakan untuk mengecek apakah file yang
' terbuka ini bisa diedit atau tidak.
'------------------------------------------
Dim strMDE As String
Dim dbs As Object, prp As Variant
On Error Resume Next
Set dbs = CurrentDb
strMDE = dbs.Properties("MDE")
If Err = 0 And strMDE = "T" Then
' Bila MDE/ACCDE database.
CekAccdeMde = True
Else
CekAccdeMde = False
End If
End Function
Function CekPropertiStartUp() As Boolean
'------------------------------------------
' Digunakan untuk mengecek apakah properti
' dari file yang terbuka ini sudah "true"
'------------------------------------------
Const DB_Text As Long = 10
Const DB_Boolean As Long = 1
Dim dbCurrent As DAO.Database
On Error GoTo Err_Msg
CekPropertiStartUp = False
Set dbCurrent = CurrentDb
If dbCurrent.Properties("AllowFullMenus") = True Then CekPropertiStartUp = True
Set dbCurrent = Nothing
Exit_Function:
Exit Function
Err_Msg:
MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
Resume Exit_Function
End Function
Function AturPropertiStartUp(ptyValue As Boolean)
'------------------------------------------
' Digunakan untuk mengatur properti dari
' file database yang terbuka ini
'------------------------------------------
Const DB_Boolean As Long = 1
Const DB_Byte As Byte = 1
Dim dbCurrent As DAO.Database
On Error GoTo Err_Msg
Set dbCurrent = CurrentDb
UbahProperti "StartupShowDBWindow", DB_Boolean, ptyValue
UbahProperti "StartupShowStatusBar", DB_Boolean, ptyValue
UbahProperti "AllowFullMenus", DB_Boolean, ptyValue
UbahProperti "AllowBreakIntoCode", DB_Boolean, ptyValue
UbahProperti "AllowSpecialKeys", DB_Boolean, ptyValue
UbahProperti "AllowBypassKey", DB_Boolean, ptyValue
UbahProperti "AllowToolbarChanges", DB_Boolean, ptyValue
UbahProperti "AllowDefaultShortCutMenus", DB_Boolean, ptyValue
UbahProperti "UseMDIMode", DB_Byte, 1
Set dbCurrent = Nothing
Exit_Function:
On Error Resume Next
Set dbCurrent = Nothing
Exit Function
Err_Msg:
Select Case Err.Number
Case 3270 'properti tidak ada
Exit Function
Resume Next
Case Else
End Select
Resume Exit_Function
End Function
Function UbahProperti(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
'------------------------------------------
' Digunakan untuk mengubah properti
' dari file yang terbuka ini.
'------------------------------------------
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Err_Msg
dbs.Properties(strPropName) = varPropValue
UbahProperti = True
Exit_Function:
Exit Function
Err_Msg:
If Err = conPropNotFoundError Then 'properti tidak ada
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
UbahProperti = False
Resume Exit_Function
End If
End Function

Comments
Post a Comment