Membuat menu samping dengan komponen vbAccelerator VB6 Explorer Bar
Masih pembahasan tentang pembuatan menu alternatif selain menggunakan tool standar vb (menu editor), kali ini kita akan menggunakan komponen vbAccelerator VB6 Explorer Bar.
vbAccelerator VB6 Explorer Bar adalah salah satu komponen keren dan gratis yang tersedia di situs www.vbaccelerator.com.
Dan masih menggunakan resource yang sama dengan postingan saya sebelumnya, kita akan membuat menu dengan tampilan seperti berikut :
Untuk memudahkan kita memahami penggunaan komponen vbAccelerator Explorer Bar, minimal ada 2 istilah yang harus kita ketahui :
- Bar Menu, gampangnya kita sebut saja menu induk
- Item Menu tentu saja ini menu anaknya
Adapun contoh prosedur/fungsi untuk menambahkan Bar Menu dan Item Menu:
Private Function setBarMenu(ByVal explorerBar As Object, ByVal menuName As String, _
ByVal menuCaption As String, ByVal iconIndex As Long) As Object
Dim cBar As Object
Set cBar = explorerBar.Bars.Add(, menuName, menuCaption)
cBar.IsSpecial = True
cBar.iconIndex = iconIndex
cBar.TitleForeColor = WARNA_BIRU_TUA
cBar.TitleForeColorOver = WARNA_BIRU_TUA
cBar.TitleBackColorLight = WARNA_BIRU
cBar.TitleBackColorDark = RGB(234, 241, 253)
cBar.BackColor = WARNA_ABU_ABU
Set setBarMenu = cBar
End Function
Private Sub setItemMenu(ByVal cBar As Object, ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Long)
Dim cItem As Object
Set cItem = cBar.Items.Add(, menuName, menuCaption)
With cItem
.iconIndex = iconIndex
.TextColor = WARNA_BIRU_TUA
.TextColorOver = WARNA_PUTIH
End With
End Sub
Sebelum kita akan mengetikan kode lengkap untuk membuat menu dengan komponen vbAccelerator Explorer Bar, tambahkan terlebih dahulu komponen/referensi berikut ke dalam project Anda :
- vbAccelerator Explorer Bar (Menu Project -> Component)
- vbAccelerator Image List (Menu Project -> Component), komponen ini untuk menambahkan icon di menu bar/item
- vbAccelerator VB6 Subclassing and Timer Assistant (Menu Project -> References) pembahasan tentang komponen ini bisa di lihat di sini
kemudian drag komponen vbAccelerator Explorer Bar dan vbAccelerator Image List ke form
Contoh penggunaan prosedur/fungsi setBarMenu dan setItemMenu :
Private Sub addMenu(ByVal explorerBar As Object, ByVal barIcons As Object, ByVal itmIcons As Object)
Dim rsMenuInduk As ADODB.Recordset
Dim rsMenuAnak As ADODB.Recordset
Dim cBar As Object
Dim i As Long
Dim x As Long
Dim rowCount(1) As Long
With explorerBar
.UseExplorerStyle = False
.Redraw = False
.BackColorStart = WARNA_BIRU
.BackColorEnd = WARNA_BIRU
.ImageList = itmIcons.hIml
.BarTitleImageList = barIcons.hIml
'menampilkan menu induk
strSql = "SELECT id, menu_name, menu_caption " & _
"FROM menu_induk " & _
"ORDER BY id"
Set rsMenuInduk = openRecordset(strSql)
If Not rsMenuInduk.EOF Then
rowCount(0) = getRecordCount(rsMenuInduk)
For i = 1 To rowCount(0)
Set cBar = setBarMenu(explorerBar, rsMenuInduk("menu_name").Value, rsMenuInduk("menu_caption").Value, 0)
'menampilkan menu anak
strSql = "SELECT menu_name, menu_caption " & _
"FROM menu_anak " & _
"WHERE menu_induk_id = " & rsMenuInduk("id").Value & " " & _
"ORDER BY id"
Set rsMenuAnak = openRecordset(strSql)
If Not rsMenuAnak.EOF Then
rowCount(1) = getRecordCount(rsMenuAnak)
For x = 1 To rowCount(1)
Call setItemMenu(cBar, rsMenuAnak("menu_name").Value, rsMenuAnak("menu_caption").Value, 0)
rsMenuAnak.MoveNext
Next x
End If
Call closeRecordset(rsMenuAnak)
rsMenuInduk.MoveNext
Next i
End If
Call closeRecordset(rsMenuInduk)
Set cBar = setBarMenu(explorerBar, "mnuKeluar", "Keluar", 1)
Call setItemMenu(cBar, "mnuKeluarDrProgram", "Keluar dari Program", 0)
.Redraw = True
End With
End Sub
Dan terakhir source code untuk menghandle menu yang di klik :
Private Sub vbalExplorerBarCtl1_ItemClick(itm As vbalExplorerBarLib6.cExplorerBarItem)
Select Case itm.Key
Case "mnuBarang": 'TODO : tampilkan frmBarang disini
Case "mnuCustomer"
Case "mnuSupplier"
Case "mnuPembelian"
Case "mnuReturPembelian"
Case "mnuPenjualan"
Case "mnuBiayaOperasional"
Case "mnuGajiKaryawan"
Case "mnuLapPembelian"
Case "mnuLapJthTempo"
Case "mnuLapPenjualan"
End Select
End Sub
Contoh source code langkap bisa didownload disini.
Selamat mencoba







vbAccelerator Explorer Bar, vbAccelerator Image List, vbAccelerator VB6 Subclassing and Timer Assistant apakah sudah d VB nya? cara buka gmn? tks..
Ketiga komponen/library tersebut bukan komponen standar VB6 jadi Anda harus mendownload di http://www.vbaccelerator.com/ kemudian meregistrasikannya dengan perintah regsvr32 .
Setelah itu Anda tinggal menambahkan ke project Anda melalui menu Project -> Components… untuk vbAccelerator Explorer Bar dan vbAccelerator Image List dan dari menu Project -> References … untuk vbAccelerator VB6 Subclassing and Timer Assistant
Pada sample yang membahas ke 3 komponen/library tersebut sudah saya ikutsertakan coba dicek lagi.
Maaf Pa,, kok link ke 4share.com-nya dah ga aktif yah,,,
Oke om tq laporannya, skrg linknya udah aktif lagi silahkan lanjut downloadnya
maaf numpang tanya, ko pas nampilkan form nya gak bisa yah?
Case “mnuBarang”: form1.show
Case “mnuCustomer”
dia ga mau?
coba gini mas :
klo nampil pesan “tesss”, berarti mas yg salah nyebutin nama formnya
Selamat mencoba
wah thanks yah ia salah nyebutin ternyata..heehee…oia klo misalnya dr menu logi saya mau pilih menu2 aza yang boleh muncul, gimana caranya?
maksudnya, klo misalnya dr form login saya mau pilih menu2 mana aza yang boleh muncul, gimana caranya? contoh nya operator hanya bisa muncul menu itu aza beda dgn administrator.terimakasih
Klo masalah ini butuh pembahasan khusus, cukup panjang dan enggak cukup klo sy jawab disini.
Mungkin klo ada waktu akan sy buat artikel khusus untuk masalah ini.
hmm, klo mau visible satu menu aza deh gimana caranya pak? mohon pencerahan?
klo pake menu editor kan tinggal formutama.menumaster.visible = false..nah klo pake menu itu gimana caranya yah? terimakasih banyak bantuannya.
Nah klo pertanyaan gini jadi lebih simple
, yang jelas komponen vbAccelerator Explorer Bar tidak mempunyai properties visible untuk item menunya tetapi sebagai gantinya kita bisa memanfaatkan method Add dan Remove. Contoh berikut yang dijadikan target menu Barang.
Private Sub cmdHideMenu_Click() Dim cItem As cExplorerBarItems Set cItem = vbalExplorerBarCtl1.Bars("mnuMaster").Items If cItem.Exists("mnuBarang") Then cItem.Remove "mnuBarang" End SubPrivate Sub cmdShowMenu_Click() Dim cItem As cExplorerBarItems Set cItem = vbalExplorerBarCtl1.Bars("mnuMaster").Items If Not cItem.Exists("mnuBarang") Then cItem.Add 1, "mnuBarang", "Barang", 0 vbalExplorerBarCtl1.Redraw = False cItem("mnuBarang").TextColor = WARNA_BIRU_TUA cItem("mnuBarang").TextColorOver = WARNA_BIRU vbalExplorerBarCtl1.Redraw = True End If End SubSelamat mencoba
wah pak terimakasih banyak, dah berhasil….sangat membantuuuu sekali. jd hutang budi neh….
Oke mas kapan2x sy tagih
siyapppp….hee heee…oia klo mnumasternya yg mau diremove beserta item2 nya gimana?
Private Sub cmdRemoveMenuBar_Click() vbalExplorerBarCtl1.Bars.Remove "mnuMaster" End SubSelamat mencoba
mas aku punya project pake vbalexpbar, tapi tapi setelah dicompile outofdate, ada yg punya update-tan nya gak
Biasanya pesan error outofdate menyebutkan file dll/ocxnya, mungkin mas bisa menyebutkan nama filenya apa?
Kk wa murid politeknik padang nih,,lagi mulai suka make VB6,,lagi bikin project sendiri
kalo bisa boleh minta YM-nya ga,,minimal buat nanya2 mengenai project yang saya rancang,,soalnya kesannya terlalu rame and ga sederhana,,
trus kmaren coba ngambil menusampingnya kk mau di implan ke form utama saya tapi gagal gitu,,
ym id sy k4m4r82, tapi sy jarang OL jadi klo ada yg mau ditanya via email aja : k4m4r82@yahoo.com klo sy bisa jawab insya Allah sy jwb.
untuk penggunaan menu sampingnya kan udah ada contohnya tinggal jalanin aja, yg penting jangan lupa semua komponen yg dibutuhkan sudah terdaftar di system windownya.
Mas klo keluar programnya gmn Sintaxnya???
Loh bukannya tinggal pake Unload Me atau End
heeee,,,iya maz,,aqunya Oon,,,
oia mas ko gak bisa ya Vbacceleratornya dijalanin di Komputer Lain,,
ada tulisan errornya
“sintax error ’0′”
apa tuh artinya maz???
Ya mungkin aja komponen vbalExpBar6.ocx dan SSubTmr6.dll belum diregistrasikan di komputer tsb.
gmn caranya mas,,tolongin dong,,heeee
Weww belom bisa register komponen ya?
Coba copy kan file vbalExpBar6.ocx dan SSubTmr6.dll ke folder windows\system32
trus dari Start -> run, kemudian ketik :
dilanjutkan dg komponen yg 1 lagi
Selamat mencoba
ohhhh itu sih udah mas,,tp tetep gak bisa
Maksudnya waktu jalanin sample programnya enggak bisa? Ada pesan error enggak ?
Wahhh Keren habis.., design GUI jadi keren nih…
Thx Bro…..
TQ BRO….
Sama2x bro
Mas,waktu aku jalanin kok error ,error numbernya 457,dibagian Set cItem = cBar.Items.Add(, menuName, menuCaption)…
mohon bantuannya yah mas…
Error “This key is already associated with an element of this collection” ini pasti gara2x kebiasaan buruk copas tapi lupa ngerubahnya.
Coba cek tabel menu_anaknya, pasti ada entri menu_name yang sama.
gan saya baru pemula di pemrograman, saya puya project vb6… saya menggunakan sql server2000. Pertanyaan saya, bagaimana caranya supaya aplikasi yang saya buat, bisa di jalankan pada komputer orang lain tanpa harus mengistal vb & sql servernya terlebih dahulu…. Mohon petunjuknya…. atau langsung ke email saya gan… terima kasih sebelumnya… juragan4@gmail.com
Gini gan :
1. Klo diinstall di 1 komputer (standalone) sql server tetap wajib diinstall, tapi klo aplikasinya klien server untuk sql servernya cukup diinstall di komputer server.
2. Untuk distribusi aplikasinya (tanpa harus install vb) tinggal buat aja paketnya, bisa menggunakan Package & Deployment Wizard atau menggunakan paket installer lainnya seperti Inno Setup dan NSIS
Selamat mencoba
gan :
untuk kedua point diatas alhamdulillah saya sudah ngerti. berarti inti nya pembuatan paket instalasi vb+sql server tu gak bisa tanpa menginstal sql nya terlebih dahulu ya? pa da trik2 khusus gan untuk masalah saya ini … petunjuknya gan…
Ya enggak ada trik khusus, tinggal install aja satu2, install sql server kemudian install paket instalasi yg udah di bwt, klo mau 1 paket langsung jadi ya udah agan ganti aja databasenya bisa pake MySQL atau Firebird, kan udah sy bahas bahagaimana menggabungkan kedua database tersebut ke dalam paket instalasi.
Makasih banyak agan atas info nya… mudah2n sangat berguna untuk saya …salam programer INDONESIA
Oke gan sama2x
mas klo untuk vb.net 2008 ada nggk source code nya??
Ada om coba .NET ExplorerBar Control
mas.. bagus nih posting nya..
tapi saya pakenya adodc… newbie lagi..
bisa kirim kalo e-mail script kalo pake adodc
Sory ya om sy udah lama enggak pake komponen adodc dan udah lupa cara makenya
keren bro semua ulasanya,,,
thanks…
Oke om sama2x
Wahh keren….
saya ada masalah nih, pas keluar dari program pake perintah end atau unload_me selalu not responding.
Kenapa yah….
thx bro buat bantuannya…
Mungkin ada error di program om, coba non-aktifkan dulu error handlernya atau untuk keluarnya coba menggunakan prosedur berikut :
Private Sub unloadAllForms(ByVal fMain As Form) Dim frm As Form On Error Resume Next For Each frm In Forms If frm.Name <> fMain.Name Then Unload frm Set frm = Nothing End If Next frm Unload fMain Set fMain = Nothing End SubCara menggunakannya seperti berikut :
Selamat mencoba
kalo digunakan untuk di MDI form bisa nggak ya?
Ya jelas bisa om, penggunaannya juga sama aja
Saya mau pke dbnya mysql,trus conect pke odbc,kira2 ada contohnya g,saia masih new bie sama vb.klo ada di email ya.tq
Install aja om mysql connector/odbc, trus buka manualnya disitu sudah lengkap banget contohnya.
Status “newbie” bukan alasan untuk males belajar sendiri.
Saya sudah develop aplikasi dengan model ini. tapi pada waktu integrasi ke server terjadi error, ke – 3 file tersebut sdh saya register, dan hasilya success. nah, error yang saya peroleh itu ada 2, yang pertama vbalexplorerbarlib run-time error ’0′
yang kedua “run-time error ’440′ automation error.
dsini sini saya meletakkan vbacceleratornya di MDI dan server yang saya gunakan adalah win server 2003.
is there any solution?
Sy sudah coba om source diatas bisa jalan kok di win server 2003
bos aku boleh minta source code login nya ga,,lo login pake admin semua tabel bisa diklik lo pake petugas yg bisa diklik cuma sebagian.1 lagi rumus keluar dari menu utama diasat supaya keluar pesan yakin anda mau keluar?pilih ok or cancel.tolong bls.terimakasih
bos aku boleh minta source code login nya ga,,lo login pake admin semua tabel bisa diklik lo pake petugas yg bisa diklik cuma sebagian.1 lagi rumus keluar dari menu utama diatas supaya keluar pesan yakin anda mau keluar?pilih ok or cancel.tolong bls.terimakasih.
Untuk login coba meluncur ke link ini om.
Trus klo perintah untuk konfirmasi pesannya cukup seperti ini :
Private Sub cmdKeluar_Click() If MsgBox("Apakah Anda ingin keluar ???", vbQuestion + vbYesNo, "Konfirmasi") = vbYes Then 'TODO : perintah keluar dari program End If End Submaksud aku bos bkan yang rumus ini,rumus yg laen.kan dari gambar menu disamping kan ada menu keluar di dlm menu kluar ada menu keluar dari program,,biar pas di klik keluar dari program,,programnya langsung keluar itu rumus atau caranya gmn bos..terimaksh.
Coba ini om :
Private Sub vbalExplorerBarCtl1_ItemClick(itm As vbalExplorerBarLib6.cExplorerBarItem) Select Case itm.Key Case "mnuBarang": 'TODO : tampilkan frmBarang disini Case "mnuCustomer" Case "mnuSupplier" Case "mnuPembelian" Case "mnuReturPembelian" Case "mnuPenjualan" Case "mnuBiayaOperasional" Case "mnuGajiKaryawan" Case "mnuLapPembelian" Case "mnuLapJthTempo" Case "mnuLapPenjualan" Case "mnuKeluarDrProgram" If MsgBox("Apakah Anda ingin keluar ???", vbQuestion + vbYesNo, "Konfirmasi") = vbYes Then End End If End Select End Subsaya juga mengalami hal serupa pada komponen ini ketika di compile saya buat koding untuk keluar dengan perintah terakhir “End”
alhasil, setelah aplikasi keluar selalu keluar pesan error dari komputer bukan karena komponen tidak teregister melainkan pesan seperti ini “Nama Program” has encountered a problem and needs to close. We are sorry for the inconvenience. apalagi kalau dipadukan dengan komponen command Bar muncul pesan errornya dua kali..
kira2 masalahnya apa yah??, saya coba trik coding terdahulu “Call unloadAllForms(frmMain)” berhasil ! tapi aplikasi tetap berjalan di Mask Manager.
mohon pencerahannya nih kang , sebelumnya terima kasih..
Klo ini memang agak susah om ngelacaknya, kecuali klo liat langsung sourcenya
Iya juga sih tapi kayaknya banyak bnget dech! cuman intinya berarti ada bug yang dikarenakan salah sourcenya yah?
maksudnya bukan salah di source kang aplikasi berhasil di compile namun hasil *.exe nya ketika dijalankan waktu keluar dari aplikasi maksud saya, maaf belibet maklum bukan programer asli jdi kurang mengerti bahasa inteleknya
. aplikasi juga berjalan normal hanya ketika aplikasi sudah keluar muncul pesan error tersebut.
Coba gini om, jalankan aplikasi kemudian langsung keluar, trus cek apa masih terlihat di task manager ?
Jika tidak terlihat di task manager coba jalankan lagi aplikasinya trus buka beberapa form kemudian keluar lagi dan jika terlihat di task manager berarti ada form tertentu yg gagal diclose oleh perintah unloadAllForms
saya masukan source ini
If App.PrevInstance = True Then
MsgBox ” Aplikasi Sudah di Jalankan…”, vbCritical
end
Exit Sub
End If
jadi ketika saya coba aplikasinya masih tetap berjalan di Task Manager di tambah pesan dari msgbox juga
source untuk pemanggilan unloadAllForms saya gunakan
Call unloadAllForms(mdiMenu) sebagai menu utama
Berarti begitu aplikasi dijalankan trus langsung ditutup masih nyangkut di task manager juga ya? Klo iya coba dinonaktifkan beberapa perintah dievent load form utamanya.
iya kang bener alhamdulillah sekarang dah beres….
wah makasih banyak dah banyak membantu saya nih
Oke om siip
Pa kabar mas, langsung tanya aja nih kalo mau di modifikasi dengan penambahan submenu bagaimana ya?
Kayaxnya enggak bisa om ? Soalnya sy belum pernah melihat menu2x yg berstyle explorer bar yg ada sub menunya.
baik trims, tapi bisakah klo Private Sub SetItemMenu kita jadikan function sepert SetMenuBar sehingga di dapatkan nilai nya untuk di jadikan SubMenuItem…? trims atas pencerahnnya
Yahh si om pake acara maksa lagi
(just kidding)
Coba langsung om cek di source aslinya disini, klo memang memungkinkan untuk membuat submenunya tentu disumber aslinya sudah dikasih contoh penggunaanya.
ha..ha…! sori atas pemaksaannya…tapi saya sudah bisa kok dari source code yg saya copas, salut buat source code nya..thx
Akhirnya case closed ya om
mas..mau tanya..sorce code prosedur/fungsi setBarMenu dan setItemMenu di taruh dmn sih?? di form vb nya ato dmn? trus klo dtbsenya pke sql codingnya sm ga??
Langsung download aja mba contoh lengkapnya disini
untuk sqlnya tetap sama
mas, mo tnya..
kak mau tanya, saya ada error di sini om
Option Explicit Private cn As ADODB.Connection Private Const WARNA_BIRU_TUA As Long = &H800000 Private Const WARNA_BIRU As Long = &HED9564 Private Const WARNA_ABU_ABU As Long = &HDEC4B0 Private Const WARNA_PUTIH As Long = &H80000005 Private Function setBarMenu(ByVal explorerBar As Object, ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Long) As Object Dim cBar As Object Set cBar = explorerBar.Bars.Add(, menuName, menuCaption) cBar.IsSpecial = True cBar.iconIndex = iconIndex cBar.TitleForeColor = WARNA_BIRU_TUA cBar.TitleForeColorOver = WARNA_BIRU_TUA cBar.TitleBackColorLight = WARNA_BIRU cBar.TitleBackColorDark = RGB(234, 241, 253) cBar.BackColor = WARNA_ABU_ABU Set setBarMenu = cBar End Function Private Sub setItemMenu(ByVal cBar As Object, ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Long) Dim cItem As Object Set cItem = cBar.Items.Add(, menuName, menuCaption) With cItem .iconIndex = iconIndex .TextColor = WARNA_BIRU_TUA .TextColorOver = WARNA_PUTIH End With End Sub Private Sub addMenu(ByVal explorerBar As Object, ByVal barIcons As Object, ByVal itmIcons As Object) Dim cBar As Object Dim rsMenuInduk As ADODB.Recordset Dim rsMenuAnak As ADODB.Recordset Set rsMenuAnak = New ADODB.Recordset Set rsMenuInduk = New ADODB.Recordset Dim i As Long Dim x As Long Dim rowCount(1) As Long With explorerBar .UseExplorerStyle = False .Redraw = False .BackColorStart = WARNA_BIRU .BackColorEnd = WARNA_BIRU .ImageList = itmIcons.hIml .BarTitleImageList = barIcons.hIml 'menampilkan menu induk rsMenuInduk.Open "SELECT id, menu_name, menu_caption FROM menu_induk ORDER BY id", cn, adOpenStatic, adLockOptimistic, adCmdText 'Set rsMenuInduk = OpenRecordset(strSql) If Not rsMenuInduk.EOF Then rowCount(0) = getRecordCount(rsMenuInduk) For i = 1 To rowCount(0) Set cBar = setBarMenu(explorerBar, rsMenuInduk.Fields("menu_name").Value, rsMenuInduk.Fields("menu_caption").Value, 0) 'menampilkan menu anak rsMenuAnak.Open "SELECT menu_name, menu_caption FROM menu_anak WHERE menu_induk_id = '" & rsMenuInduk.Fields("id").Value & "' ORDER BY id", cn, adOpenStatic, adLockOptimistic, adCmdText 'Set rsMenuAnak = OpenRecordset(strSql) If Not rsMenuAnak.EOF Then rowCount(1) = getRecordCount(rsMenuAnak) For x = 1 To rowCount(1) Call setItemMenu(cBar, rsMenuAnak.Fields("menu_name").Value, rsMenuAnak.Fields("menu_caption").Value, 0) rsMenuAnak.MoveNext Next x End If Call closeRecordset(rsMenuAnak) rsMenuInduk.MoveNext Next i End If Call closeRecordset(rsMenuInduk) Set cBar = setBarMenu(explorerBar, "mnuKeluar", "Keluar", 1) Call setItemMenu(cBar, "mnuKeluarDrProgram", "Keluar dari Program", 1) .Redraw = True End With End Sub Private Sub Form_Load() Set cn = New ADODB.Connection cn.Provider = "Microsoft.Jet.OLEDB.4.0" cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\db_gerbang.mdb" Me.BackColor = WARNA_BIRU Call addMenu(vbalExplorerBarCtl1, barIcons, itemIcons) End Sub Private Sub vbalExplorerBarCtl1_ItemClick(itm As vbalExplorerBarLib6.cExplorerBarItem) Select Case itm.Key Case "mnuAdmin": 'TODO : tampilkan frmBarang disini Case "mnuKashift" Case "mnuPultol" 'Case "mnuPembelian" 'Case "mnuReturPembelian" 'Case "mnuPenjualan" 'Case "mnuBiayaOperasional" 'Case "mnuGajiKaryawan" 'Case "mnuLapPembelian" 'Case "mnuLapJthTempo" 'Case "mnuLapPenjualan" End Select End Sub Public Function getRecordCount(ByVal vRs As ADODB.Recordset) As Long vRs.MoveLast getRecordCount = vRs.RecordCount vRs.MoveFirst End Function Public Sub closeRecordset(ByVal vRs As ADODB.Recordset) If Not (vRs Is Nothing) Then If vRs.State = adStateOpen Then vRs.Close End If Set vRs = Nothing End Subsaya ada masalah di bagian pas koneksi manggil menu anak, tulisannya “data type missmatch”
mohon bantuannya
Coba dulu om source aslinya disini.
udah bsa kak, mau tanya lagi nih, ntu kan menu nya pas di load, menu anak nya langsung tampil ya, trus biar g langsung tampil gimana? jadi biar g terlalu panjang, maksudnya gini, pas di klik menu induk, baru menu anak nya muncul.. terima kasih
Coba seperti ini om :
Set cBar = setBarMenu(explorerBar, rsMenuInduk("menu_name").Value, rsMenuInduk("menu_caption").Value, 0) cBar.State = eBarCollapsed ' INI PERINTAH UNTUK MENYEMBUNYIKAN MENU ANAKNYAmau tanya lagi kak, klo buat biar supaya transparant gimana kak?, soalnya kan aku pasang gambar di menu nya, jadi biar sinkron gitu?
Klo ini memang keterbatasan komponennya om, enggak bs dibuat transparant
oke oom, terima kasih banyak yah
…
Sama2x om
bos program y dah qu coba tapi ga bisa lho muncul pesan “this key is already associated with an element of this collectio”,,itu gmn?
*collection
Error itu biasa muncul klo om nambah menu baru trus dengan nama yang sama, kan dari pesannya udah jelas “this key is already associated with an element of this collection”
trus cranya biar ga error lagi gimana??qu conek databasenya pake rumus Public Sub bukadatabase()
Set konekdb = New ADODB.Connection
‘definisikan provider dan nama database
strkonekdb = “Provider=microsoft.jet.OLEDB.4.0;Persist ” & “Security info=false;data source=” & App.Path + “\sekolah.mdb”
‘untuk membuka koneksi
On Error Resume Next
If konekdb.State = adStateOpen Then
konekdb.Close
Set konekdb = New ADODB.Connection
konekdb.Open strkonekdb
Else
konekdb.Open strkonekdb
End If
bisa ga buat yang menu samping.terimaksih
D’oh om, engga ada hubungannya lagi dengan perintah bukadatabasenya.
Kan dijawaban sebelumnya sudah sy kasih tau penyebabnya karena ada nama menu yang sama, coba deh klik gambar ini klo masih belum jelas.
oh ya boss,,dah muncul menu utamanya.terimakasih,,tapi isi menu anaknya ga ada yang muncul bos,,itu yang salah dimananya bos,,coding g ada yang error…!!sekali lagi terimakasih banyak bos..maaf dah byk tanya..!
Coba di capture om isi table menu induk dan anaknya trus di paste kesini linknya
ni link y bos http://www.facebook.com/photo.php?fbid=247585561922788&set=a.102543949760284.5842.100000140390269&type=1&theater
Klo ngeliat datanya sih udah benar, coba diklik menu Masternya nampil enggak menu anaknya ?
mnu masternya dah diklik tpi ga keluar jg bos,,ap y yg salah bos..!!mhon bantuanyya bos
Kayaxnya copas aja om kode untuk nampilin menunya disini
Private Sub addMenu(ByVal explorerBar As Object, ByVal baricons As Object, ByVal itmIcons As Object)
Dim rsMenuInduk As ADODB.Recordset
Dim rsMenuAnak As ADODB.Recordset
Dim cBar As Object
Dim i As Long
Dim x As Long
Dim rowCount(1) As Long
With explorerBar
.UseExplorerStyle = False
.Redraw = False
.BackColorStart = WARNA_BIRU
.BackColorEnd = WARNA_BIRU
.ImageList = itmIcons.hIml
.BarTitleImageList = baricons.hIml
‘menampilkan menu induk
strSql = “SELECT id, menu_name, menu_caption ” & _
“FROM menu_induk ” & _
“ORDER BY id”
Set rsMenuInduk = openRecordset(strSql)
If Not rsMenuInduk.EOF Then
rowCount(0) = getRecordCount(rsMenuInduk)
For i = 1 To rowCount(0)
Set cBar = setBarMenu(explorerBar, rsMenuInduk(“menu_name”).Value, rsMenuInduk(“menu_caption”).Value, 0)
‘menampilkan menu anak
strSql = “SELECT menu_name, menu_caption ” & _
“FROM menu_anak ” & _
“WHERE menu_induk_id = ” & rsMenuInduk(“id”).Value & ” ” & _
“ORDER BY id”
Set rsMenuAnak = openRecordset(strSql)
If Not rsMenuAnak.EOF Then
rowCount(1) = getRecordCount(rsMenuAnak)
For x = 1 To rowCount(1)
Call setItemMenu(cBar, rsMenuAnak(“menu_name”).Value, rsMenuAnak(“menu_caption”).Value, 0)
rsMenuAnak.MoveNext
Next x
End If
Call closeRecordset(rsMenuAnak)
rsMenuInduk.MoveNext
Next i
End If
Call closeRecordset(rsMenuInduk)
Set cBar = setBarMenu(explorerBar, “mnuKeluar”, “Keluar”, 1)
Call setItemMenu(cBar, “mnuKeluarDrProgram”, “Keluar dari Program”, 1)
.Redraw = True
End With
End Sub
Codingnya juga udah benar
Coba dibreakpoint (F9) aja mulai dari select untuk menampilkan menu anaknya
om mau tnya,,,kalau menunya di buat tanpa ambil dari database bi gak y???
maaf salah tulis OM,,mksudte tanpa database bisa tidak?
makasih
Ya jelas bisa om, tinggal panggil method setBarMenu dan setItemMenu.
Caranya tinggal liat kode diatas
Listingnya kaya gimana OM??maaf masih newbie nie,,,
Newbie bukan alasan utk tidak mencoba sendiri om, kan tinggal copas kode diatas trus tinggal ganti2x nilai parameternya
om, ane mo nanya nih, misal ada 4 menu induk, terus menu induk pertama ane buka, nah kemudian menu induk ke tiga mo ane buka, tapi pas ane klik menu induk yg ketiga trus menu induk pertama yg ane buka tadi biar hide ato colaps menu anak nya gimana om? , mkasih sebelum nya
Coba gini om :
Private Sub vbalExplorerBarCtl1_BarClick(bar As vbalExplorerBarLib6.cExplorerBar) Dim i As Integer For i = 1 To vbalExplorerBarCtl1.Bars.Count If vbalExplorerBarCtl1.Bars(i).Key <> bar.Key Then vbalExplorerBarCtl1.Bars(i).State = eBarCollapsed End If Next i End SubOm klo untuk mindahinya disisi kiri gmna itu om…. soalnya itu kok ada pada posisi kanan ya, jadi kyk g seperti Style XP.
Tinggal diatur properties alignnya om
Makasih om, ta’ coba dulu ah..
keren om berhasil sy coba..
terimakasih banyak..
Oke om sama-sama
saat di run muncul pesan runtime error ’0′. itu kesalahan dmnnya pak?
wah trnyata sudah bisa. hehe
Oke
Makasih banyak om kamar…
Sama2x om, emg dlm rangka apa nih ?
makasiih oom…
mw nanya,,kalo misal kita nampilin form1,,trus pas menu nya d klik form2 tampil trus form1 ilang gmana..???
kalo byasanya kan pake visible true sama false….kalo d exploler bar gmana??
Pertanyaannya belum jelas om, maksudnya cuma pengen menampilkan/menyembunyikan menu yg ada di Explorer bar ya ? Klo iya coba baca komen yg ke #12 diatas
hehehe…
sory om…
misalnya kita klik menu Barang kan muncul form barang,,,,
trus pas kita milih menu Customer kan muncul form customer,,trus ngilangin form barangnya gmana ???
sory om bikin bingung…
Loh bukannya tinggal klik tombol Close(x) yg ada dipojok kanan atas om
hehehe..iiaaa om…
om kalo perintah “case” yang di source code untuk menghandle menu yang di klik bisa diganti pake “if then” gag???
kalo ad tolong caranya gmana om…
Yg jelas bisa om dan lebih simple menggunakan select case makanya sy enggak make if
ok..
makasih omm…
Sama2x om
dalam rangka saya telah nyontek menu om untuk saya gunakan di program saya..
dan hasilnya mantap…
Oke om, yg namanya “dalam rangka belajar” enggak akan jauh2x dari melihat, mencontek dan mencoba
kok waktu di register ada tulisan error ya
error code 80004005
Kan waktu file samplenya diekstrak ada sub folder komponen didalamnya ada file install, itu yg dijalankan untuk meregister librarynya
Kalo cara register komponen di windows 7 gmana om??
pake perintah regsvr32 SSubTmr6.dll gag bisa.ERROR
Langsung dari VBnya aja menu Project -> References -> Browse trus cari file SSubTmr6.dllnya
mas.. kalo buat mdi form kok gak bisa yah? kalo di drag ke mdi form explorerbarnya jadi defaultnya diatas atau bawah, gak bisa kiri dan kana, kenapa yah.. mohon pencerahan..
Properties Alignnya diset vbAlignRight om
udah ane set alignnya om, tapi malah ukuran eplorerbarnya jadi nutupin MDI formnya, trus ane coba set widthnya di propertis gak bisa di rubah om..
Klik komponen vbalCommandBarnya trus tekan tombol kombinasi SHIFT + PANAH KIRI
ok om maknyuss resepnya….
tq…
Siippp
om… vbexplorerbar sama vbimagelistnya dah saya tempatin di mdiform,caption vblistimagenya juga udah saya ganti tapi pas di runing gak tampil om…
gimana yah..
Klo menu2xnya nampil enggak om ?
gak nampil om,blank gitu…
Makanya om klo nyopas itu harus diperhatikan juga kodenya.
Sample diataskan sy buat menggunakan SDI Form, sedangkan om kan ngetesnya di MDI Form, nama event Form Loadnya beda om.
Jadi kode berikut :
Private Sub Form_Load() Dim ret As Boolean ret = KonekToServer Me.BackColor = WARNA_BIRU Call addMenu(vbalExplorerBarCtl1, barIcons, itemIcons) End Subharus diganti menjadi
Private Sub MDIForm_Load() ' revisinya di baris ini Dim ret As Boolean ret = KonekToServer Me.BackColor = WARNA_BIRU Call addMenu(vbalExplorerBarCtl1, barIcons, itemIcons) End Subiya om salah disitunya.. hee…hee..
maklum lah om raja copaste..
btw saya nyoba di form baru kok minta di tempatin component ado data control yah om.. sedangkan di contoh program om gak ada component itu..
mohon pencerahannya (lagi).. buat newbie.
thnk..
Klo sy pake yg tipe library (menu Project -> References…) aktifkan pilihan Microsoft ActiveX Data Objects 2.x library.
Jadi ketika kita menambahkan komponen ADO, library diatas udah otomatis kepilih klo enggak yg harus diaktifkan manual seperti cara diatas.
ohh gitu om..
tq om atas penjelasannya, ntar saya nanya lagi hee..hee..
soalnya lagi ngerjain Tugas Akhir Om..
om pas gw jalanin di program gw kok formnya gak muncul yah, tapi gw coba di program om bisa muncul.. nama pemanggilan formnya dah bener, trus ngikut cara pake msgbox “tess” gak muncul juga..
Case “mnuBarang”: form1.show
Case “mnuCustomer”
Oke om silahkan dicoba dulu, bukannya enggak seru ngerjain TA dibantuin trus.
Seperti yg sy ingatkan sebelumnya perhatikan kode yg dicopas terutama masalah penaamaan apakah itu variabel, objek, event, konstanta dan sejenisnya.
iya om.. saya salah nempatin event nya…
Oke om berarti udah case closed ya
siiip…
kang, klo digabungkan dengn komponen vbaldtabcontrol yang bisa di hide ato pinned gimana ya caranya
Harusnya bisa om, kan komponen vbaldtabcontrol membutuhkan objek PictureBox jadi objek PictureBoxnya dijadikan container aja utk komponen vbAccelerator VB6 Explorer Barnya.
Selamat mencoba om
makasih banyak mas, udah bisa, ternyata property align dari picturebox atau component lain di MDI harus di setting sesuai lokasi yg diinginkan, baru diresize
Mas ada beberapa hal yg mau saya tanyakan berkaitan dengan post ini, khususnya pada penggunaan Explorer Bar di MDI Form, Saya sudah coba menggunakan explorer bar di MDI Form, dan berhasil, akan tetapi, tampilan explorernya kok memenuhi seluruh MDI Form area ? saya coba set explorer bar Height & Width, tetap ga bisa, selalu fill MDI Form, mungkin mas bisa share tipsnya….
Sudah ada yg nanya om, coba cek lagi komentar #129 – #134 diatas
setelah di coba kok muncul pesan “menu_induk doesn’t exist’
knapa ya???
Dicoba lagi om kode aslinya disini
berpengaruh gag sih kalau kita pake database mySql?
Ya gak lah, itu kan cuma tampilan menu …..Gak ngaruh ke database ya …..
Yuph sy setuju dengan om Ami, harusnya enggak ada pengaruh
masalahnya pas d runing debug terus kak….:(
Keterangan debug ya apa om ….?
‘db_me.menu_induk’ doesn’t exist
sebelum nya pas d module nya, saya rubah provider nya…
ya tinggal buat aja tabel menu_induknya om
om mau tanya menganti iconnya bisa gak kalo program udah jalan caranya gimana ya dan bisa dibuatkan icon yang panah putih dan lingkaran biru menjadi warna abu-abu,di saat pertama iconnya warna abu-abu pas di klik kanan warna biru makasih
Coba kode ini om utk merubah icon pada saat runtime :
Private Sub cmdGantiIcon_Click() Dim cItem As cExplorerBarItems Set cItem = vbalExplorerBarCtl1.Bars("mnuMaster").Items If cItem.Exists("mnuBarang") Then cItem.Item("mnuBarang").iconIndex = 1 ' icon index End If End SubKode masih mangacu pada sample diatas
makasih banyak bantuannya om,om ada icon lingkaran biru panah putih diganti abu-abu makasih sebagai tanda non aktif,gak bisa buat iconnya makasih
Sama om sy juga enggak bisa
JUGA MAU TANYA UNTUK vbacceleratorexplorerbar APA BISA DIBUAT MENU KLIK KANAN MUNCUL POP UP MENU KODENYA ADA MAKASIH
Silahkan dicoba dulu om, masa’ udah dapat banyak kode masih belum bisa mengembangkan sendiri.
Tunjukan dulu kode yg udah om coba, klo masih enggak jalan sesuai harapan baru sy bantu
Keywordnya ada dievent “ItemRightClick”
kok runtime error ’0′ pak, gimana solusinya???
Wah sakti banget sy om klo bisa ngasih solusi hanya berdasarkan error ’0′
Coba dirinci lagi errornya, atau dibaca dulu petunjuk yg sy sertakan seblum menjalankan source codenya
om mau tanya,.
knpa saat d jalanin ada menu anak yg tetap muncul, pdahal menu anak tsbt udh d keluarin
Dikeluarin ? Maksudnya dihapus dari database ?
bukan, gni contoh nya:
Case “mnuLock”:form12.show 1
nah saat form12 dbuka dr menu anak bisa, tp saat form12 mau d tutup, dy bsa keluar tp muncul lg
Maksudnya form12nya udah ditutup, trus nampil sendiri lagi secara otomatis ???
Penyebabnya mungkin ada kode aneh di form12, atau coba tambahkan form baru trus dipanggil seperti diatas masih terjadi enggak “fenomena” yg sama
iya benar
sygnya “fenomena” ini cm trjadi saat d form ini, saat d form lainya ga ad masalah
oh iya om, form yg aneh ni adlh form lock system, jd ktka sya msukin password d form ni hrus nya nutup, tp muncul lg scra otomatis
Coba seperti ini om, di fungsi lock system yg om buat kan seharusnya juga memanggil fungsi api untuk on top most jadi pada saat menampilkan form12 coba hilangkan parameter 1 (modal)nya.
form12.show 1 menjadi form12.show
tetap aja muncul otomatis om,
tp om stlah sy tambahkan printah msgbox trnyata form nya ga blik lg kok
Ya udah om, digituin aja
Atw coba dinonaktifkan kode2x yg disenyalir menyebabkan “fenomena” ini misal kode2x yg ada di event Form_Load, Form_Unload, Form_QueryUnload
trus satu2x diaktifkan kembali sampai kode penyebab “fenomena” ini ketangkep
Om untuk hak akses menggunakan vbAccelerator VB6 Explorer Bar gimana om..
klo yang di tutor om yang mengenai hak akses kan menggunakan form control..
klo menggunakan vbAccelerator VB6 Explorer Bar gimana om..
Mencurigakan, kok pertanyaannya mirip yg disini.
Kebetulan aja tu om.. ok deh Om berkat om masalah terpecahkan.. Trims ya om..
Sama-sama om
om untuk status bar.. ada ndak om komponen dari vbaccelator..
Ada om coba disini.