Anda di halaman 1dari 16

Mengenal DataGrid

DataGrid merupakan komponen yang disediakan pada VB6 untuk menampilkan data
dalam bentuk tabel. Untuk menggunakan DataGrid, anda perlu mengikut sertakan
Microsoft DataGrid Control 6.0.

Maka pada toolbox anda akan bertambah DataGrid control.

Menggunakan DataGrid dengan ADODC


1. Tanamkan pada form sebuah ADODC dan DataGrid
Dengan connection string sebagai berikut :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft


Visual Studio\VB98\NWIND.MDB;Persist Security Info=False

Dan RecordSource ke tabel Customers

2. Aturlah properties DataGrid, DataSource ke ADODC1


3. Klik kanan pada DataGrid, dan pilih Retrieve fields

Dan Pilih Yes

Dan otomatis field-field yang ada pada tabel Customers akan ditampilkan pada
DataGrid
4. Anda dapat mengatur kolom pada DataGrid seperti menambah, mengurangi
ataupun menghapus pada Modus Edit, dengan klik kanan pada DataGrid1, dan
pilih Edit

Pada Modus Edit, jika klik kanan dilakukan, maka tampilkan popup menu akan
berubah menjadi sebagai berikut ini :

Misalnya anda ingin menghapus kolom CompanyName, maka anda dapat


memilih kolom CompanyName, dan klik kanan serta memilih Delete.

Memanfaatkan Split untuk membuat Freeze Column


1. Pada modus Edit pilih Split
2. Dan pada DataGrid akan terpisah menjadi dua jendela

Sembunyikan kolom-kolom pada jendela 1 dengan hanya menyisakan kolom


CustomerId, dengan klik kanan pada DataGrid1, dan pilih properties, kemudian
pada kolom Layout, pada Split0, dan lakukan untuk kolom CompanyName,
kemudian hilangkan tanda check pada properti Visible

Lakukan juga untuk kolom-kolom yang lain, dengan menyisakan kolom Customer
Id.
Sehingga tampilan menjadi sebagai berikut :

3. Kemudian hilangkan Record Selector untuk Split1


Sehingga menjadi sebagai berikut :

4. Kemudian atur ukuran Split sebesar ukuran CustomerId


5. Kemudian buang tanda check pada AllowSizing pada Split 0, ScrollBars set ke
dbgHorizontal

6. Dan akhirnya menjadi sebagai berikut :


5. Buatlah Referensi ke Microsoft ActiveX Data Object

Menggunakan DataGrid dengan ADO


1. Tanamkan sebuah DataGrid pada Form

2. Kemudian pada event Form_Load, lakukan koding berikut ini :

Dim MyConn As New Connection


Dim Rs As New Recordset

Private Sub Form_Load()


Dim Col As Column
MyConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist
Security Info=False"
MyConn.CursorLocation = adUseClient
MyConn.Open
Rs.Open "Customers", MyConn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = Rs
DataGrid1.Splits.Add (1)
For Each Col In DataGrid1.Splits(0).Columns
If Col.ColIndex > 0 Then
Col.Visible = False
End If
Next Col
DataGrid1.Splits(0).ScrollBars = dbgHorizontal
DataGrid1.Splits(1).RecordSelectors = False
DataGrid1.Splits(0).Size = 30
DataGrid1.Splits(0).AllowSizing = False
End Sub
Mengenal TrueDbGrid
Pada visual basic 6.0 telah tersedia Microsoft DataGrid, tetapi grid bawaan ini kadang-
kadang tidak memenuhi kebutuhan pemakai. Salah satu komponen Grid yang disediakan
oleh pihak ketiga (http://www.componentone.com) yang cukup populer dikalangan
programmer VB adalah TrueDbGrid.

Anda perlu mendownload dan menginstalasi TrueDbGrid sebelum dapat digunakan pada
project anda.

Setelah instalasi anda dapat memanfaatkan TrueDbGrid dengan menu Project,


Components, ComponentOne TrueDbgrid Pro 7.0 (OLEDB) untuk pemakaian dengan
ADO.

Sesaat setelah dimasukan kedalam project, pada toolbar anda akan bertambah dua kontrol
yaitu : TDBDropDown dan TDBGrid.
Menampilkan data dengan TrueDbGrid
Salah satu pemakaian TrueDbGrid adalah untuk menampilkan data. Pada TrueDbGrid
tersedia berbagai keunggulan seperti Split, Filter Bar.

Dan Lakukan koding berikut

Dim MyConn As New Connection


Dim Rs As New Recordset

Private Sub Form_Load()


Dim Split0 As TrueOleDBGrid70.Split
Dim Split1 As TrueOleDBGrid70.Split
Dim Col As Column
MyConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist
Security Info=False"
MyConn.CursorLocation = adUseClient
MyConn.Open
Rs.Open "Customers", MyConn, adOpenDynamic, adLockOptimistic
Set TDBGrid1.DataSource = Rs
Set Split0 = TDBGrid1.Splits.Add(0)
For Each Col In Split0.Columns
If Col.ColIndex > 0 Then
Col.Visible = False
End If
Next Col
Split0.ScrollBars = dbgAutomatic
Split0.SizeMode = dbgNumberOfColumns
Split0.Size = 1
Set Split1 = TDBGrid1.Splits(1)
Split1.RecordSelectors = False
TDBGrid1.Refresh
End Sub
Membuat Baris berbeda Warna

Dengan koding sebagai berikut :

Dim MyConn As New Connection


Dim Rs As New Recordset

Private Sub Form_Load()


Dim Split0 As TrueOleDBGrid70.Split
Dim Split1 As TrueOleDBGrid70.Split
Dim Col As Column
MyConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist
Security Info=False"
MyConn.CursorLocation = adUseClient
MyConn.Open
Rs.Open "Customers", MyConn, adOpenDynamic, adLockOptimistic
Set TDBGrid1.DataSource = Rs
Set Split0 = TDBGrid1.Splits.Add(0)
For Each Col In Split0.Columns
If Col.ColIndex > 0 Then
Col.Visible = False
End If
Next Col
Split0.ScrollBars = dbgAutomatic
Split0.SizeMode = dbgNumberOfColumns
Split0.Size = 1
Set Split1 = TDBGrid1.Splits(1)
Split1.RecordSelectors = False
Split0.AlternatingRowStyle = True
Split1.AlternatingRowStyle = True
Split0.EvenRowStyle.BackColor = RGB(&HCC, &HCC, &HCC)
Split1.EvenRowStyle.BackColor = RGB(&HCC, &HCC, &HCC)
TDBGrid1.Refresh
End Sub

Memanfaatkan Filterbar

Dim MyConn As New Connection


Dim Rs As New Recordset

Private Sub Form_Load()


Dim Split0 As TrueOleDBGrid70.Split
Dim Split1 As TrueOleDBGrid70.Split
Dim Col As Column
MyConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist
Security Info=False"
MyConn.CursorLocation = adUseClient
MyConn.Open
Rs.Open "Customers", MyConn, adOpenDynamic, adLockOptimistic
Set TDBGrid1.DataSource = Rs
Set Split0 = TDBGrid1.Splits.Add(0)
For Each Col In Split0.Columns
If Col.ColIndex > 0 Then
Col.Visible = False
End If
Next Col
Split0.ScrollBars = dbgAutomatic
Split0.SizeMode = dbgNumberOfColumns
Split0.Size = 1
Set Split1 = TDBGrid1.Splits(1)
Split1.RecordSelectors = False
Split0.AlternatingRowStyle = True
Split1.AlternatingRowStyle = True
Split0.EvenRowStyle.BackColor = RGB(&HCC, &HCC, &HCC)
Split1.EvenRowStyle.BackColor = RGB(&HCC, &HCC, &HCC)
'Mengaktifkan Filter Bar
Split0.FilterBar = True
Split1.FilterBar = True
TDBGrid1.AllowUpdate = False
TDBGrid1.Refresh
End Sub

Private Sub TDBGrid1_FilterChange()


Dim Filter As String
Dim Col As Integer
Col = TDBGrid1.Col
TDBGrid1.HoldFields
Filter = ""
For I = 0 To TDBGrid1.Columns.Count - 1
If TDBGrid1.Columns(I).FilterText <> "" Then
If Filter <> "" Then
Filter = Filter & " And "
End If
Filter = Filter & TDBGrid1.Columns(I).DataField & " Like '" & _
TDBGrid1.Columns(I).FilterText & "*'"
End If
Next I
Rs.Filter = Filter
TDBGrid1.Col = Col
TDBGrid1.EditActive = True
End Sub

Private Sub TDBGrid1_KeyPress(KeyAscii As Integer)


If KeyAscii = 27 Then
For I = 0 To TDBGrid1.Columns.Count - 1
TDBGrid1.Columns(I).FilterText = ""
Next I
Rs.Filter = ""
End If
End Sub

Pemanfaatan TrueDBGrid untuk Entry Data


TrueDBGrid dapat digunakan untuk entry data langsung dengan mengatur properti
AllowUpdate, dan AllowAddNew menjadi True, dengan syarat recordset tidak diopen
secara readonly.

Beberapa event yang berhubungan dengan Entry data pada kolom yang dapat diprogram
adalah sebagai berikut :

Private Sub DGrid_BeforeColUpdate(ByVal ColIndex As Integer, OldValue


As Variant, cancel As Integer)
If ColIndex = 2 Then
If ThisDocType = "4" Or ThisDocType = "6" Then
Call FindPart_No(DGrid.Columns(2).Value, Part_Name, Harga_Pokok,
Harga_Jual, cancel)
Else
Call FindItemRetur(DGrid.Columns(2).Value, txtNoDoc.Text,
Part_Name, Qty, Price, PDisc, Cash_Disc, Net_Price, cancel)
End If
End If
End Sub

Private Sub DGrid_AfterColUpdate(ByVal ColIndex As Integer)


If ColIndex = 2 Then
If ThisDocType = "4" Or ThisDocType = "6" Then
DGrid.Columns(3).Value = Part_Name
DGrid.Columns(4).Value = 1
DGrid.Columns(5).Value = Harga_Jual
DGrid.Columns(6).Value = 0
DGrid.Columns(7).Value = 0
Else
DGrid.Columns(3).Value = Part_Name
DGrid.Columns(4).Value = Qty
DGrid.Columns(5).Value = Price
DGrid.Columns(6).Value = PDisc
DGrid.Columns(7).Value = Cash_Disc
DGrid.Columns(8).Value = Net_Price
End If
End If
Call HitungDetails
lChange = True
End Sub

Anda mungkin juga menyukai