Skip to main content

String Koneksi MySQL di Access VBA

Sebelum melakukan koneksi ke database MySQL menggunakan driver Connector/ODBC, kita harus mengatur sebuah ODBC Data Source Name (DSN).  Data source network terdiri dari berbagai macam parameter konfigurasi yang diperlukan untuk melakukan komunikasi dengan sebuah database dalam sebuah nama tertentu. Kita menggunakan DSN dalam sebuah aplikasi untuk berkomunikasi dengan database, karena cara ini dipandang lebih mudah dari pada membuat parameter individual dalam aplikasi itu.

Berbagai macam parameter yang disediakan melalui DSN dapat digunakan secara spesifik, baik berdasarkan user maupun sistem atau diatur dengan menggunakan sebuah file DSN. Pengaturan DSN beserta parameter yang ada di dalamnya dapat dibaca di posting yang berjudul Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal yang menjelaskan pengaturan ODBC dengan cara yang berbeda, tergantung pada platform dan driver ODBC yang digunakan.

Selain menggunakan ODBC DSN, kita juga dapat melakukan koneksi ke server MySQL dengan menggunakan SQLDriverConnect, dengan menentukan nama driver.


Gambar 1. Driver ODBC MySQL (dihighlight warna biru)

Bila menggunakan ODBC Connector, MySQL menyediakan dua macam driver, yaitu MySQL ODBC 5.3 ANSI Driver dan MySQL ODBC 5.3 Unicode Driver, seperti tampak pada gambar 1 di atas. Pilih saja salah satu di antara dua driver ini. Driver itu digunakan untuk menentukan string koneksi pada Connector/ODBC tanpa menggunakan DSN. String koneksi ini bisa digunakan di VBA, baik di Access, Excel, maupun aplikasi Office lainnya. Berikut ini adalah string koneksi yang digunakan di Access VBA:

"Driver={MySQL ODBC 5.3 ANSI Driver};" & _
"Database=Nama Database/Schema;" & _
"UID=Nama User ID;" & _
"PWD=Password;" & _
"SERVER=Localhost;" & _
"Port=3306"

Kita dapat mengetahui nilai dari masing-masing parameter Database, UID, PWD, Server, dan Port dengan membuka MySQL Workbench. Caranya, bila MySQL Workbench sudah terbuka dan aktif, bukalah salah satu connection yang ada dalam daftar satu MySQL Connections, misalnya seperti Local Instance MySQL57 seperti di bawah ini:

Setelah koneksi Local Instance MySQL57 terbuka, klik menu Database dan pilih Manage Connections...,  Sehingga tampilannya menjadi seperti gambar di bawah ini:


Pada gambar di atas, masing-masing kotak berwarna merah menunjukkan setiap nilai dari parameter yang ada dalam string koneksi di atas. Pada gambar di atas, parameter Database bernilai Akunting yang merupakan salah satu nama Schema, Server bernilai localhost yang merupakan Host Name, Port bernilai 3306, UID bernilai root yang merupakan Username, dan Password sesuai dengan nilai yang ada di password (Store in Vault).

Implementasi:


Untuk mengimplementasi string koneksi MySQL di atas, kita dapat menuliskan string koneksi langsung sebagai parameter saat membuka database atau dengan membuat fungsi di modul yang outputnya berupa string. Output inilah yang kemudian digunakan sebagai parameter untuk membuka database. Berikut ini contoh kasusnya:

Bila menuliskan langsung sebagai parameter:

Contoh fungsi membukaDatabase ini akan menjalankan perintah OpenDatabase di mana parameter Connect berisi string koneksi MySQL seperti di atas.

Function membukaDatabase()
  Dim daoDatabase As DAO.Database
On Error GoTo Err_Msg
    Set daoDatabase = OpenDatabase("", dbDriverNoPrompt, True, _
    "Driver={MySQL ODBC 5.3 ANSI Driver};" & _
    "Database=akunting;" & _
    "UID=root;" & _
    "PWD=abcd;" & _
    "SERVER=Localhost;" & _
    "Port=3306")
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function membukaDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.description
  Resume Exit_Function
End Function

Bila menuliskan langsung sebagai fungsi di modul:

Kita harus membuat fungsi string koneksi MySQL yang outputnya berupa srting terlebih dulu, seperti ini:
Function strKoneksiMySQL() As String
  strKoneksiMySQL = "Driver={MySQL ODBC 5.3 ANSI Driver};" & _
    "Database=Akunting;" & _
    "UID=root;" & _
    "PWD=abcd;" & _
    "SERVER=Localhost;" & _
    "Port=3306"
End Function

Setelah itu membuat fungsi lain yang digunakan untuk membuka database dengan menggunakan strKoneksiMySQL sebagai nilai dari parameter Connect pada perintah OpenDatabase:

Fungsi membukaDatabase diubah menjadi seperti ini:
Function membukaDatabase()
  Dim daoDatabase As DAO.Database
On Error GoTo Err_Msg
    Set daoDatabase = OpenDatabase("", dbDriverNoPrompt, True, strKoneksiMySQL)
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function membukaDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.description
  Resume Exit_Function
End Function

Comments

  1. pak yanto
    kalau kita punya ip public bisakah itu kita gunakan untuk odbc antara ms access dan ms sql server. di router nanti ip public tersebut kita natkan ke ip server. terima kash

    ReplyDelete
    Replies
    1. Jujur, saya belum pernah mencoba. Kalau menggunakannya via vpn (login dr internet ke vpn, misalnya), itu bisa. Tapi kalau langsung dr ip public belum pernah nyoba. Seharusnya bisa ya.

      Delete
    2. siap pak yanto, terima kasih

      Delete
    3. Pak, coba baca ini, siapa tahu, tertarik. https://access-terapan.blogspot.com/2020/06/Aplikasi-E-Document-Sederhana-Menggunakan-Access-Front-End-dan-SQL-Server-Back-End%20.html

      Delete

Post a Comment

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access