Statement SQL didalam VBA

Ketika bekerja didalam VBA, seringkali kita membutuhkan beberapa statement SQL, terutama ketika bekerja dengan DAO maupun ADO (penjelasan mengenai DAO dan ADO akan penulis jelaskan pada bab berikutnya). Penulisan statement SQL ditulis dengan type data string, dan harus sesuai dengan metode penulisan statament SQL yang valid (yang benar dan sesuai dengan kaidah Transact SQL).

Cara termudah dalam menulis statement SQL didalam VBA adalah dengan membuat suatu query dahulu dalam mode “Design View” di Microsoft Access, kemudian masuk kedalam mode “SQL View”, lalu copy seluruh statement yang ada dan di paste kan
kedalam kode VBA Anda.

Seringkali penggunaan statement SQL berdasarkan suatu nilai yang diset didalam suatu control pada form. Jika demikian halnya, maka Anda harus memasukkan nama control tersebut kedalam statement SQL Anda.

Membangun statement SQL dengan DAO

Contoh dibawah ini memperlihatkan pembuatan statement SQL sederhana menggunakan object QueryDef pada DAO. Query ini menampilkan semua order dari suatu table “Orders” setelah tanggal 31 Maret 1996. Penggunaan tanggal didalam statement SQL harus menggunakan format tanggal English atau United Kingdom, yaitu penulisannya bulan dahulu, kemudian tanggal, baru terakhir tahun (mm-dd-yy).

Public Sub GetOrders()

   Dim dbs As DAO.Database

   Dim qdf As DAO.QueryDef

   Dim strSQL As String

   Set dbs = CurrentDb

   strSQL = “SELECT * FROM Orders WHERE OrderDate >#3-31-1996#;”

   Set qdf = dbs.CreateQueryDef(“SecondQuarter”, strSQL)

End Sub

Contoh dibawah ini sama dengan contoh diatas, hanya saja menggunakan variable “dteStart” dalam penggunaan criteria tanggalnya:

Dim dbs As Database, qdf As QueryDef, strSQL As String

Dim dteStart As Date

dteStart = #3-31-1996#

Set dbs = CurrentDb

strSQL = “SELECT * FROM Orders WHERE OrderDate” _

    & “> #” & dteStart & “#;”

Set qdf = dbs.CreateQueryDef(“SecondQuarter”, strSQL)

Contoh dibawah ini sama dengan contoh diatas, hanya saja dalam penggunaan criteria tanggal menggunakan control “OrderDate” didalam form “Orders”.

Dim dbs As Database, qdf As QueryDef, strSQL As String

Set dbs = CurrentDb

strSQL = “SELECT * FROM Orders WHERE OrderDate” _

    & “> #” & Forms!Orders!OrderDate & “#;”

Set qdf = dbs.CreateQueryDef(“SecondQuarter”, strSQL)

Membangun statement SQL dengan ADO

Contoh dibawah ini memperlihatkan pembuatan statement SQL sederhana menggunakan ADO.

Dim rs As New ADODB.Recordset

Dim strSQL As String

strSQL = “SELECT * FROM Orders WHERE OrderDate >#3-31-1996#;”

rs.Open strSQL, CurrentProject.Connection, _

adOpenKeyset, adLockOptimistic

Contoh dibawah ini sama dengan contoh diatas, hanya saja menggunakan variable “dteStart” dalam penggunaan criteria tanggalnya:

Dim rs As New ADODB.Recordset

Dim strSQL As String

Dim dteStart As Date

dteStart = #3/31/1996#

strSQL = “SELECT * FROM Orders WHERE OrderDate” _

    & “> #” & dteStart & “#;”

rs.Open strSQL, CurrentProject.Connection, _

adOpenKeyset, adLockOptimistic

Contoh dibawah ini sama dengan contoh diatas, hanya saja dalam penggunaan criteria tanggal menggunakan control “OrderDate” didalam form “Orders”.

Dim rs As New ADODB.Recordset

Dim strSQL As String

strSQL = “SELECT * FROM Orders WHERE OrderDate” _

    & “> #” & Forms!Orders!OrderDate & “#;”

rs.Open strSQL, CurrentProject.Connection, _

<

p style=”text-align:justify;”>adOpenKeyset, adLockOptimistic

Beri Nilai Artikel Ini:

Leave a Reply

Do NOT follow this link or you will be banned from the site!
%d bloggers like this: