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]

Kirim email ke