Mohon Bantuan, Cara Ambil Data Dari Ms Access

  1. 7 minggu lalu

    Salam,
    Mohon bantuannya gimana caranya buat VBA, Mengambil Data dari database access, terima kasih.
    Salam

  2. manweljs_

    Mei 20 Terverifikasi + 9.721 Poin
    Di sunting 7 minggu lalu oleh manweljs_

    @Aupe

    coba skrip berikut :

    Sub tesambildata()
    Dim db As String
    Dim connect As String
    Dim connection As ADODB.connection
    Dim recordset As ADODB.recordset
    Dim col As Integer
    
    db = Application.GetOpenFilename
    
    Set connection = New ADODB.connection
    connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
    connect = connect & "Data Source=" & db & ";"
    connection.Open connect
    
    Set recordset = New ADODB.recordset
    With recordset
        Source = "SELECT Provinsi, Kab_Kota, Kecamatan, Kelurahan FROM Table1 "
        .Open Source:=Source, ActiveConnection:=connection
        Range("C3").CopyFromRecordset recordset
    End With
    
    Set recordset = Nothing
    connection.Close
    Set connection = Nothing
    
    End Sub

    Catatan :

    1. Ganti nama kolom (di file data base) dari "Kab/Kota" menjadi "Kab_Kota"
    2. Pastikan @Aupe sudah mengaktifkan Microsoft ActiveX Data Objects 2.0 Library di references, gambarnya seperti ini :

    reference.PNG

    kalau berhasil, harusnya hasilnya seperti ini :

    tes aja.gif

  3. 6 minggu lalu

    Terima kasih mas @manweljs_ sangat membantu sudah bisa running,
    hanya ketika ambil data, tapi kita cancel, ada bug mas, giman perbaikinya ya.. terima kasih

  4. Maaf mas @manweljs_ satu lagi, gimana klo database accesnya ada password, giman scrip-nya mas, misal password db accessnya 123, terima kasih sebelumnya mas,

  5. manweljs_

    Mei 21 Terverifikasi + 9.721 Poin
    Di sunting 6 minggu lalu oleh manweljs_

    mas @Aupe

    ...ketika ambil data, tapi kita cancel, ada bug mas, giman perbaikinya ya...

    gunakan error trapping, misalnya:

    ...
    db = Application.GetOpenFilename
    on error resume next 
    ...


    atau menambahkan logika if misalnya:

    ...
    db = Application.GetOpenFilename
    If db = False Then 
    ....
    end if
    ...


    dan lain sebagainya

    ...gimana klo database accesnya ada password, giman scrip-nya mas, misal password db accessnya 123,

    edit skripnya dari :

    ...
    connect = connect & "Data Source=" & db & ";"
    ...

    menjadi :

    ...
    connect = connect & "Data Source=" & db & ";Jet OLEDB:Database Password=123;"
    ...

    oh iya, bagian Dim col As Integer pada skrip diatas dihapus sj, karena sy sudah menggunakan alamat cell nya langsung yaitu Range("C3"). tapi kalo mau digunakan dengan cara berbeda silahkan sj

  6. manweljs_

    Mei 21 Terverifikasi + 9.721 Poin
    Di sunting 6 minggu lalu oleh manweljs_

    atau menambahkan logika if misalnya:

    ...
    db = Application.GetOpenFilename
    If db = False Then 
    ....
    end if
    ...

    maksud saya

    if db <> False then

  7. Terima kasih banyak mas @manweljs_ berhasil, terima kasih.

    tapi sedikit bingung menggunakan untuk kotak pesan

    Sub ambildata()
    Dim db As String
    Dim connect As String
    Dim connection As ADODB.connection
    Dim recordset As ADODB.recordset

    db = Application.GetOpenFilename
    On Error Resume Next

    Set connection = New ADODB.connection
    connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
    connect = connect & "Data Source=" & db & ";Jet OLEDB:Database Password=a;"
    connection.Open connect

    Set recordset = New ADODB.recordset
    With recordset
    Source = "SELECT Provinsi, Kab_Kota, Kecamatan, Kelurahan FROM Table1 "
    .Open Source:=Source, ActiveConnection:=connection
    Range("C3").CopyFromRecordset recordset
    End With

    Set recordset = Nothing
    connection.Close
    Set connection = Nothing

    MsgBox "Ambil Data Sukses...!", , "Pesan"

    End Sub

  8. manweljs_

    Mei 21 Terverifikasi + 9.721 Poin
    Di sunting 6 minggu lalu oleh manweljs_

    mas @Aupe

    manfaatkan error trap tersebut, misalnya pada akhir prosedur edit menjadi :

    ...
    If Err.Number = 0 Then MsgBox "Ambil Data Sukses...!", , "Pesan"
    Err.Clear
    ...

    sebagai catatan sj, harus hati2 dalam menggunakan error trap, anda harus tau kapan sebuah prosedur diijinkan untuk error dan kapan tidak diijinkan error. jadi sy cuma memberikan contoh sj, untuk pengaplikasiannya tinggal dikembangkan sendiri.

    misalnya jika mas @Aupe pengen datanya diambil dari banyak file sekaligus, maka bisa menggunakan metode array yg sudah sy contohkan. yang terpenting itu di mengerti fungsi setiap baris2 skripnya :)

  9. Terima Kasih mas @manweljs_ sangat membantu, sukses terus mas @manweljs_ sekali lagi terima kasih atas ilmunya..

  10. manweljs_

    Mei 22 Terverifikasi + 9.721 Poin
    Di sunting 6 minggu lalu oleh manweljs_

    sama - sama mas, sukses terus juga untuk mas @Aupe :)

 

atau Mendaftar untuk ikut berdiskusi!