manipulasi data dalam dbgrid (MSDataGrid)
Untuk programer visual basic yang sering menggunakan grid standar dari microsoft ( msdatagrid OLEDB ) sering kali menemui kesulitan untuk memanipulasi data dalam grid dan mengeksekusi sub pencarian data. Misalnya untuk kasus saat ini kita akan mencoba membuat sebuah program kecil yang bisa menampilkan record pada grid, serta kita bisa melakukan pencarian record tertentu, seperti aplikasi basket belanja untuk POS.
Pada form yang dibuat sipengguna aplikasi bisa memasukkan kode barang pada column [kode barang] dan otomatis aplikasi melengkapi recordnya pada column berikutnya. Kita langsung masuk kekode program, pada kode program dibawah ini kita menggunakan beberapa recordset untuk melakukan retrieve data pada database.
Option Explicit Dim Conn As ADODB.Connection Dim RsBarang As ADODB.Recordset Dim RsPenjualan As ADODB.Recordset Dim StrBarang As String Dim StrPenjualan As String
Selain itu kita juga akan membuat beberapa sub yang memanfaatkan beberapa event seperti Form_Load dan AfterColEdit untuk gridnya.
Private Sub Form_Load()
Set Conn = Nothing
Set Conn = New ADODB.Connection
Conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;" & _
"User ID=sa;Initial Catalog=PesonaHijau;Data Source=localhost"
Conn.CursorLocation = adUseClient
Conn.Open
Set RsPenjualan = Nothing
Set RsPenjualan = New ADODB.Recordset
StrPenjualan = "Delete From Temp_Jual"
RsPenjualan.Open StrPenjualan, Conn, adOpenDynamic, adLockOptimistic
Set RsPenjualan = Nothing
Set RsPenjualan = New ADODB.Recordset
StrPenjualan = "Select * From Temp_Jual"
RsPenjualan.Open StrPenjualan, Conn, adOpenDynamic, adLockOptimistic
Set GridPenjualan.DataSource = RsPenjualan
GridPenjualan.TabAction = dbgGridNavigation
Set RsBarang = Nothing
Set RsBarang = New ADODB.Recordset
StrBarang = "Select * From Barang"
RsBarang.Open StrBarang, Conn, adOpenDynamic, adLockOptimistic
End Sub
Dan pada grid memanfaatkan event aftercoledit.
Private Sub GridPenjualan_AfterColEdit(ByVal ColIndex As Integer)
If ColIndex = 0 Then
Set RsBarang = Nothing
Set RsBarang = New ADODB.Recordset
StrBarang = "Select * From Barang Where [Kode Barang] = '" & _
Trim(GridPenjualan.Columns(0).Value) & "'"
RsBarang.Open StrBarang, Conn, adOpenDynamic, adLockOptimistic
If RsBarang.RecordCount <> 0 Then
GridPenjualan.Columns(1).Value = Trim(RsBarang.Fields("Nama Barang").Value)
GridPenjualan.Columns(2).Value = 1
RsPenjualan.Requery
RsPenjualan.MoveLast
GridPenjualan.Row = RsPenjualan.RecordCount
GridPenjualan.CurrentCellModified = True
Else
RsPenjualan.CancelBatch adAffectCurrent
RsPenjualan.Requery
RsPenjualan.MoveLast
End If
End If
End Sub





stmikbg.com adalah web untuk komunitas bagi anak-anak stmik bumigora khususnya dan anak-anak IT umumnya, baek yang cupu maupun yang expert.