Shift Key merupakan kunci utama untuk masuk ke database window Access. Kendatipun demikian, sesungguhnya pengaturan Shift Key ini tidak akan berpengaruh banyak kepada programmer, hacker ataupun user yang sudah mengetahui kuncinya atau tata cara mengaktifkan dan menonaktifkan Shift Key ini. Bahkan, file EXE tertentu yang sudah dicompile pun, dapat di decompile kembali oleh para programmer yang sudah mengetahui caranya. Kendatipun demikian, untuk kepentingan belajar, marilah kita bahas satu persatu pengaturan Shift Key ini. :)
Sebelum menjalankan fungsi-fungsi di bawah ini, pastikan DAO sudah ditambahkan di reference VBA nya. Juga setting startup untuk "Display Database Window" pada file tersebut harus sudah di Off kan. Caranya, klik menu Tools -> Startup (utk Access 2003). Hilangkan tanda centang pada pilihan "Display Database Window". Juga harap dibackup dahulu file original yang Anda gunakan sebagai latihan, dikhawatirkan saat menjalankan beberapa fungsi dibawah ini terjadi error yang menyebabkan kerusakan pada file Anda.
1. DISABLE SHIFT KEY UNTUK FILE INTERNAL:
Public Function DisableShiftKeyInte
On Error GoTo ShiftError
Dim db As DAO.Database
Dim ShiftKey As DAO.Property
Set db = CurrentDb()
db.Properties(
GoTo nol
ShiftError:
Set ShiftKey = db.CreateProperty(
db.Properties.
nol:
db.Close
Set db = Nothing
End Function
2. DISABLE SHIFT KEY UNTUK FILE EXTERNAL:
Public Function DisableShiftKeyExte
'LokasiFileLengkap adalah lokasi file beriut dengan namanya
'Misal: "C:\MyDB.MDB"
On Error GoTo ShiftError
Dim db As DAO.Database
Dim ShiftKey As DAO.Property
Set db = OpenDatabase(
db.Properties(
GoTo nol
ShiftError:
Set ShiftKey = db.CreateProperty(
db.Properties.
nol:
db.Close
Set db = Nothing
End Function
3. ENABLE SHIFT KEY UNTUK FILE INTERNAL:
Public Function EnableShiftKeyInter
On Error GoTo ShiftError
Dim db As DAO.Database
Dim ShiftKey As DAO.Property
Set db = CurrentDb()
db.Properties(
GoTo nol
ShiftError:
Set ShiftKey = db.CreateProperty(
db.Properties.
nol:
db.Close
Set db = Nothing
End Function
4. ENABLE SHIFT KEY UNTUK FILE EXTERNAL:
Public Function EnableShiftKeyExter
'LokasiFileLengkap adalah lokasi file berikut dengan namanya
'Misal: "C:\MyDB.MDB"
On Error GoTo ShiftError
Dim db As DAO.Database
Dim ShiftKey As DAO.Property
Set db = OpenDatabase(
db.Properties(
GoTo nol
ShiftError:
Set ShiftKey = db.CreateProperty(
db.Properties.
nol:
db.Close
Set db = Nothing
End Function
TATA CARA PENGGUNAAN:
Cukup menjalankan salah satu dari fungsi-fungsi diatas di immediate window VBA, misal:
?DisableShiftKeyInt
Lalu tekan Enter.
?DisableShiftKeyExt
Lalu tekan Enter.
?EnableShiftKeyInte
Lalu tekan Enter.
?EnableShiftKeyExte
Lalu tekan Enter.
----- Original Message -----From: WidodoSent: Thursday, April 05, 2012 10:21 AMSubject: RE: [belajar-access] Bagaimana mengambil field secara otomatis dari form loginDear Mas Sofyan,
Terimakasih banyak, sangat membantu sekarang sudah jalan.
Semoga Mas Sofyan Sehat dan Sukses selalu, amin ya robbal alamin.
Satu lagi Mas, kemarin programnya saya sudah buat jadi ACCDE, tpi sama orang audit di buka pakai shift + enter, ga taunya databasenya kebuka semua dan bisa di edit, bagaimana cara proteksinya yah...
Terimakasih
Salam
Widodo
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of Sofyan Efendi
Sent: 04 April 2012 14:43
To: belajar-access@yahoogroups.com
Subject: Re: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Dear mas Widodo, mohon maaf procedure yg Mas saya revisi menjadi:
Private Sub Command6_Click()
DoCmd.DeleteObject acQuery, "qbod"
dodo = Nz(DLookup("[Level]", "[Tbl_Password]", "[Passwd] = '" & _
TxtPass.Value & "' AND [User] = '" & TxtUser.Value & "'"), 0)
Dim dbSample As Database
Dim qdfSample As QueryDef
Set dbSample = CurrentDb()
If dodo = 2 Then
Set qdfSample = dbSample.CreateQueryDef("qbod", "SELECT SOP.Kode_Dokumen, SOP.Dept, SOP.SubDept, SOP.Nama_Dokumen, SOP.Revisi, SOP.Status, thakakses.mgr_hrd" & _
" FROM SOP INNER JOIN thakakses ON SOP.Kode_Dokumen = thakakses.Kode_Dokumen" & _
" WHERE (((SOP.Status) = 'Release') And ((thakakses.bod) = -1))" & _
" ORDER BY SOP.Dept, SOP.SubDept;")
ElseIf dodo = 3 Then
Set qdfSample = dbSample.CreateQueryDef("qbod", "SELECT SOP.Kode_Dokumen, SOP.Dept, SOP.SubDept, SOP.Nama_Dokumen, SOP.Revisi, SOP.Status, thakakses.mgr_hrd" & _
" FROM SOP INNER JOIN thakakses ON SOP.Kode_Dokumen = thakakses.Kode_Dokumen" & _
" WHERE (((SOP.Status) = 'Release') And ((thakakses.mgr_hrd) = -1))" & _
" ORDER BY SOP.Dept, SOP.SubDept;")
End If
Form_flogin.Visible = False
DoCmd.OpenForm "fbod"
qdfSample.Close
dbSample.Close
'If dodo = 1 Then
' Me.txtlevel = dodo
' Form_flogin.Visible = False
' DoCmd.OpenForm "fbod"
'ElseIf dodo = 2 Then
' Form_flogin.Visible = False
' DoCmd.OpenForm "fbod"
'ElseIf dodo = 3 Then
' Form_flogin.Visible = False
' DoCmd.OpenForm "fmgrmkt"
'ElseIf dodo = 35 Then
' Me.txtlevel = dodo
' 'DoCmd.Close acForm, Me.Name, acSaveYes
' DoCmd.OpenForm "fbod"
'Else
' MsgBox "Maaf User dan atau Password Salah, Silahkan coba lagi..., Untuk registrasi harap hubungi MS Departemen.", vbCritical, "Perhatian..."
' dodo = 0
' Me.TxtUser.SetFocus
'End If
End Sub
Dengan demikian, kita tidak perlu buat banyak form dan query... Cukup dibuat definisi query masing2 level di VBA...
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
http://imopi.wordpress.com/----- Original Message -----
From: Widodo
Sent: Wednesday, April 04, 2012 1:43 PM
Subject: RE: [belajar-access] Bagaimana mengambil field secara otomatis dari form login [1 Attachment]
Dear Mas Sofyan,
Terimakasih banyak atas bantuannya, saya sudah coba belum sukses juga/belum sesuai keinginan... terlampir saya kirimkan contoh programnya, tolong dibantu yah..
Wassalamu alaikum wr wb.
widodo
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of Sofyan Efendi
Sent: 03 April 2012 16:14
To: belajar-access@yahoogroups.com
Subject: Re: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Dear Mas Widodo,
Tolong diganti kolom Expr1:.. dst semuanya menjadi BOD saja yg merujuk ke table thakakses. Kemudian pada kriteria, ganti dari Yes menjadi: iif([forms]![flogin]![txtuser]="bod";-1;0). Insya Allah bisa mas...
Namun cara ini mungkin kurang praktis dalam dunia perdatabasean ... biasanya satu query, satu form.. Bisa tidaknya send kabar kemari yah, insya Allah kami coba bantu lagi...
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
http://imopi.wordpress.com/----- Original Message -----
From: Widodo
Sent: Tuesday, April 03, 2012 3:20 PM
Subject: RE: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Terimakasih Mas Sofyan, yang pengin dirubah adalah fieldnya merujuk pada text box di form login bukan criteria yang merujuk ke form login, saya coba berdasarkan petunjuk Mas Sofyan seperti dibawah ini, harusnya hasilnya adalah yes/no namun yang keluar adalah tulisan 'bod' semua karena saya login menggunakan akses bod.
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of Sofyan Efendi
Sent: 03 April 2012 9:44
To: belajar-access@yahoogroups.com
Subject: Re: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Dear Mas Widodo, satu saja form dan querynya, nanti di querynya menggunakan criteria yg merujuk langsung ke text box user name di form login...
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
http://imopi.wordpress.com/----- Original Message -----
From: Widodo
Sent: Tuesday, April 03, 2012 9:16 AM
Subject: RE: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Saya sudah coba belum sukses yah...J
Jadi ceritanya gini.... saya buat program untuk distribusi SOP, terdapat 35 user dengan 35 akses file SOP yang berbeda-beda setiap usernya, saya buat 3 tabel sbb :
1. Tabel password
2. Tabel hak akses
3. Tabel prosedur
Saat ini saya membuat 35 queri dan 35 form, setiap user login langsung open form sesuai hak aksesnya. Saat ini saya buat query seperti gambar dibawah, misalkan usernya BOD saya buat query dan form khusus untuk BOD, begitu juga untuk marketing manager dan seterusnya. Maunya saya cukup 1 query dan 1 form untuk semua user, pada saat login/open/load form langsung merubah query sesuai user namenya. Bagaimana caranya yah...
Mohon bantuan para master. terimakasih
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of Mas Uki
Sent: 02 April 2012 8:42
To: belajar-access@yahoogroups.com
Subject: Bls: [belajar-access] Bagaimana mengambil field secara otomatis dari form login
Dear Bung Widodo,
Sepertinya saya pernah mengalami hal seperti ini, dan solusinya menggunakan QueryDef, caranya anda harus mendefinisikan nama query dan SQL-nya lewat VBA, jadi harus dikaitkan dengan event atau apapun yang bisa memanggilnya (dengan form misalnya). (Maaf gambar terlalu kecil, saya tidak dapat dengan jelas membacanya).
Saya asumsikan nama tabel : MASTER
Nama field yang dimaksud terdapat pada TextBox dengan nama NO_ID (bisa diganti dengan combo box yg bisa dipilih)
Nama event : misal tombol (Command1) diklik
Private Sub Command1_Click()
On Error Resume Next
Dim kode, SQL As String
Dim db As Database
Dim nmkueri As QueryDef
kode = Me.NO_ID
SQL = "SELECT " & kode &" FROM MASTER"
Set db = CurrentDb
Set nmkueri = db.CreateQueryDef("LiatKode", SQL)
DoCmd.OpenQuery "LiatKode", acViewNormal, acReadOnly
db.QueryDefs.Delete "LiatKode"
db.Close
End Sub
Anda bisa memodifikasi sesuai dengan kebutuhan anda, semoga membantu.
Best Regards,
Sukiono
PT. Kumala Kencana Cipta
www.kumalahome.com
Dari: Widodo <widodo_wiranto@yahoo.co.id>
Kepada: belajar-access@yahoogroups.com
Dikirim: Minggu, 1 April 2012 17:57
Judul: [belajar-access] Bagaimana mengambil field secara otomatis dari form login [1 Attachment]
Dear Para master Access,
Bagimana caranya membuat query yang fieldnya ngambil langsung dari User name di form login, sehingga saya tidak perlu membuat banyak query dan form. Terlampir saya kirimkan capture querynya. Terimakasih
Salam
Widodo
Tidak ada komentar:
Posting Komentar