Kalo aye peratiin kaye nye cuma nama doank nih IDIOOT, sebenernye otaknye dimane-mane.... ha... ha.... ha.... Salam kenal bang....
Tapi buat yang baru belajar VB pasti bingung tuh bang, ame kode-kode yang abang kasih. Ada yang lebih gampang gak...? ----- Original Message ----- From: IdiOot To: [email protected] Sent: Monday, October 22, 2007 3:56 AM Subject: [indoprog-vb] Re: VB dengan Access (database) Hai mas galuh, gimana dah ketemu blom solusinya. Sebetulnya bagus juga sih pake trik App.path tapi sayang metode ini hanya bisa digunakan untuk local database saja dan kita databasenya menjadi statis. Gimana klo databasenya ada di komputer lain yang terkoneksi kedalam jaringan ? Coba pake SaveSetting untuk menyimpan lokasi databasenya kedalam registry sehingga kita dapat mengambil database dimanapun lokasi database tersebut berada. dan untuk mengambil kembali lokasi database yang tersimpan dalam registry gunakan GetSetting. Untuk mengambil database bisa menggunakan object commponent CommonDialog, atau dengan menggunakan fungsi API. dalam Sample code ini saya menggunakan fungsi API karena dengan menggunakan fungsi API kita dapat langsung berkomunikasi dengan system sehingga waktu proses menjadi lebih singkat. ini sample codenya Option Explicit 'Constant Flag untuk Dialog box Const cdlOFNExtensionDifferent = &H400 Const cdlOFNFileMustExist = &H1000 Const cdlOFNHideReadOnly = 4 Const cdlOFNPathMustExist = &H800 Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type 'Deklarasi API untuk membuka File Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Private OFName As OPENFILENAME Private conex As New ADODB.Connection Private Sub Command1_Click() Dim sFile As String 'Tampilkan Dialog box untuk mengambil file database sFile = ShowOpen If sFile <> "" Then 'Jika file tidak kosong koneksikan ke database If KoneksiData(sFile) Then 'simpan Lokasi database di registry sehingga bisa diambil nanti SaveSetting App.EXEName, "Database", "Lokasi", sFile MsgBox "Data telah berhasil terkoneski ke file " + sFile, vbInformation Else MsgBox "Koneksi ke Database Gagal " + vbCrLf + sFile, vbExclamation End If Else 'User membatalkan pengambilan data MsgBox "Anda telah membatalkan pengambilan data" End If End Sub Private Function ShowOpen() As String 'Set ukuran dari struktur OFName.lStructSize = Len(OFName) 'Set Owner dari window OFName.hwndOwner = Me.hWnd 'Set instance dari window OFName.hInstance = App.hInstance 'Set filter file OFName.lpstrFilter = "Access Database (*.mdb)" + Chr$(0) + "*.mdb" + Chr$(0) 'Buat buffer OFName.lpstrFile = Space$(254) 'Set panjang maksimum file OFName.nMaxFile = 255 'Buat buffer lagi OFName.lpstrFileTitle = Space$(254) 'Set panjang maksimum karakter OFName.nMaxFileTitle = 255 'Set Direktori default OFName.lpstrInitialDir = "C:\" 'Set judul dari dialog box OFName.lpstrTitle = "Set Lokasi Database" 'Tambahkan extra Flag ' Flag untuk mematikan semua extensi yang berbeda, menyembunyikan file read only, dan direktori harus ada OFName.flags = cdlOFNExtensionDifferent Or cdlOFNFileMustExist Or cdlOFNHideReadOnly Or cdlOFNPathMustExist 'Atau anda juga bisa menampilkan dialog box tanpa Flag 'OFName.flags = 0 'Tampilkan Form dialog If GetOpenFileName(OFName) Then ShowOpen = Trim$(OFName.lpstrFile) Else ShowOpen = "" End If End Function Private Function KoneksiData(lokasiDB As String) As Boolean Dim Koneksi As String On Error GoTo KoneksiGagal 'Driver Jet OLEDB Koneksi = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & lokasiDB & ";Persist Security Info=False" conex.Open Koneksi KoneksiData = True Exit Function KoneksiGagal: KoneksiData = False End Function Semoga dengan sedikit code ini dapat membantu anda dan teman-teman yang lain. Salam, Aiska Hendra Freelance Programmer --- In [email protected], oki Hartanto <[EMAIL PROTECTED]> wrote: > > Ditangani ama program aja biar aman, jadi pada saat program dijalanin cek apakah direktory tempat database di buat ada atao ngk, kalo ngk ada bikin direktory baru, terus copyin databasenya juga ke direktory itu, nah file databasenya simpan aja di tempat aplikasi di install, biasanya udah otomatis disimpan disitu.., kalo perlu perintah tentang copy, rename, bikin foleder atauy semua yang berhubungan dengan file saya bisa bantu..., mungkin ada yang udah tau juga pake microsoft scripting runtime, gampang cara kerjanya. > > salam > > > oki > > > Hery Kurniawan <[EMAIL PROTECTED]> wrote: nah ini dah ada penjelasannya hehehehehe > > Steven Luck <[EMAIL PROTECTED]> wrote: Eh, sori, salah kasih pathnya.. hehe.. > Nih yang bener... > > App.path itu return path tempat aplikasinya (executable file) berada. > > Jadi misalnya program VBnya itu buka database db_Problems.mdb, dan nama file executable VB yang dibuat : file.exe > > Semua file database & exe nya di masukin dalam c:\Program. > > Nah, pas buat connection stringnya yang seharusnya : > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Program\db_Problems.mdb;Persist Security Info=False" > > bisa diganti jadi: > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_Problems.mdb";Persist Security Info=False" > > Catatan : File-nya mesti satu folder dengan file aplikasi (executable) nya. > > Kalo misalkan database-nya dimasukin dalam c:\Program\DB > maka diganti jadi gini connection stringnya: > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB\db_Problems.mdb";Persist Security Info=False" > > Cya. > > Steven Luck <[EMAIL PROTECTED]> wrote: App.path itu return path tempat aplikasinya (executable file) berada. > > Jadi misalnya program VBnya itu buka database data.mdb, dan nama file executable VB yang dibuat : file.exe > > Semua file database & exe nya di masukin dalam c:\Program. > > Nah, pas buat connection stringnya yang seharusnya : > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\My Documents\Steven's Privacy\Lesson\ACM Problems\ACM Accepted\Organizer\db_Problems.mdb;Persist Security Info=False" > > bisa diganti jadi: > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_Problems.mdb";Persist Security Info=False" > > Catatan : File-nya mesti satu folder dengan file aplikasi (executable) nya. > > Kalo misalkan database-nya dimasukin dalam c:\Program\DB > maka diganti jadi gini connection stringnya: > con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB\db_Problems.mdb";Persist Security Info=False" > > Cya. > > CMIIW > > fachry ai <[EMAIL PROTECTED]> wrote: mohon dikasih penjelasan mengenai app.path... > terima kasih banyak... > > --- Hery Kurniawan <[EMAIL PROTECTED]> wrote: > > > coba pakai app.path ajah.... > > > > semoga membantu > > > > > > --- fachry ai <[EMAIL PROTECTED]> wrote: > > > > > kebetulan gw juga lagi belajar saat ini.... > > > mungkin klo lu tau ntar, > > > kasi tw gw juga yah,... > > > biar kita sama2 pintar..... > > > cayo,.... > > > Happy Idoel Fitrie 1428 H.... > > > > > > galuh adi insani <[EMAIL PROTECTED]> wrote: > > > Teman-teman Indoprog semuanya saya > > membuat > > > sebuah aplikasi dengan > > > menggunakan database Access, pembuatannya adalah > > > dengan membuat database > > > Accessnya terlebih dahulu kemudian baru saya buat > > > script visual > > > basicnya, berikut contoh script VBnya: > > > > > > > Private Sub Form_Load() > > > > Dim Koneksi As String > > > > 'Driver ODBC Connection String > > > > Koneksi = "Driver={Microsoft Access Driver > > > (*.mdb)};" & _ > > > > "Dbq=Kendali.mdb;" & _ > > > > "DefaultDir=C:\Kendali;" & _ > > > > "Uid=Admin;Pwd=;" > > > > conex.Open Koneksi > > > > End Sub > > > Yang menjadi permasalahan saya adalah file > > database > > > itu haruslah > > > terletak di dalam folder Kendali dengan nama > > > Kendali.mdb dan terletak di > > > drive C:. Pada saat saya package dengan package > > and > > > deployment, maka > > > akan terbentuk sebuah instaler. Nah pertanyaan > > saya > > > bagaimana caranya > > > agar pada saat saya instal program ini maka akan > > > terbentuk secara > > > default sebuah folder kendali yang berisi database > > > Kendali.mdb tersebut > > > dan letaknya persis seperti saat saya buat script > > > (C:\Kendali), karena > > > jika database tersebut saya letakkan kedalam > > folder > > > yang lain maka tidak > > > akan konek databasenya. > > > > > > Pertanyaan saya berikutnya adalah bagaimana > > caranya > > > agar meskipun > > > database diletakkan ditempat folder sembarang, > > > tetapi software dapat > > > mengenali database saya tersebut dengan nama > > > Kendali.mdb dengan cara > > > perubahan script, mungkin ada diantara teman-teman > > > yang ingin memberi > > > tahu saya script tersebut. > > > > > > Sebelum dan sesudahnya saya ucapkan banyak > > > terimakasih. > > > > > > Salam, > > > Galuh Adi Insani > > > > > > ++ Saya ucapkan mohon maaf lahir dan bathin, > > selamat > > > Idhul Fitri ++ > > > > > > > > > > > > > > > > > > Send instant messages to your online friends > > > http://uk.messenger.yahoo.com > > > > > > [Non-text portions of this message have been > > > removed] > > > > > > > > > > > > > > > > > __________________________________________________________ > > Boardwalk for $500? In 2007? Ha! Play Monopoly Here > > and Now (it's updated for today's economy) at Yahoo! > > Games. > > > http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow > > > > > > Send instant messages to your online friends http://uk.messenger.yahoo.com > > > > > Steven Luck > > "The Only Thing for The Triumph of Evil is For A Good Man to Do Nothing" > > --------------------------------- > Check out the hottest 2008 models today at Yahoo! Autos. > > [Non-text portions of this message have been removed] > > > > > > Steven Luck > > "The Only Thing for The Triumph of Evil is For A Good Man to Do Nothing" > > --------------------------------- > Boardwalk for $500? In 2007? Ha! > Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games. > > [Non-text portions of this message have been removed] > > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > [Non-text portions of this message have been removed] > > > > > > > Oki Hartanto > > My Blog n See My picture in ..:: OKI_H ::.. > > > --------------------------------- > Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. > > [Non-text portions of this message have been removed] > [Non-text portions of this message have been removed]
