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.
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:
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).
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.
Bila menuliskan langsung sebagai fungsi di modul:
Kita harus membuat fungsi string koneksi MySQL yang outputnya berupa srting terlebih dulu, seperti ini:
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:
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
pak yanto
ReplyDeletekalau 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
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.
Deletesiap pak yanto, terima kasih
DeletePak, 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