Pada kesempatan yang lain saya telah membahas
cara menyimpan data dalam listview ke database, pada kesempatan kali ini saya akan membahasa cara menyimpan data yang telah dimasukan ke dalam MsFlexGrid ke Database.
Bagi anda yang belum bisa silahkan simak/baca dengan teliti sampai akhir tulisan ini. Saya membuat alurnya seperti ini : Kita akan memasukan data yang telah di input di textbox ke dalam msflexgrid. ulang cara tersebut untuk input data lagi, jika datanya dirasa sudah cukup, lalu data yang ada dalam msflexgrid kita simpan dengan cara menekan tombol simpan.
Dalam contoh ini saya memakai database accsess dengan nama DB_MHS dan dengan nama tabel Tbl_Mhs
Untuk langkah-langkahnya silahkan buat atau desain sebuah form seperti gambar yang nampak dibawah ini :
Kemudian untuk mengatur MsFlexGrid silhkan klik kanan pada msFlexGrid pilih Properties maka akan muncul jendela pengaturan dan samakan seperti yang nampak pada gambar berikut ini:
Jika sudah tambahkan sebuah modul dengan cara klik menu project-add Module, kemudian ketikan koding berikut ini di dalam module tersebut :
Option Explicit
Public Conn As New ADODB.Connection
Public RsMhs As ADODB.Recordset
Public Sub KonekDB()
Set Conn = New ADODB.Connection
Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB_MHS.mdb"
Conn.CursorLocation = adUseClient
End Sub
Koding di atas digunkan untuk koneksi visual basic ke database.
Kemudian kita lanjutkan ke penulisan koding di dalam formnya. Silahkan ketikan koding berikut ini pada General Deklaration pada form :
Option Explicit
Dim i As Integer
Dim SQL As String
Sub AktifGrid()
MSFlexGrid1.Clear
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = 1
MSFlexGrid1.RowHeightMin = 300
'------------------------------
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.ColWidth(0) = 1220
MSFlexGrid1.Text = "NIM"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NAMA"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(1) = 2440
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "ALAMAT"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(2) = 2650
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "JURUSAN"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(3) = 2430
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
End Sub
Koding di atas berfungsi untuk mengatur tampilan msflexgrid.
Selanjutnya ketikan koding berikut ini pada Form Load :
Private Sub Form_Load()
'Memanggil Koneksi database
Call KonekDB
'Memanggil pengaturan msflexgrid
Call AktifGrid
End Sub
Jika sudah silahkan double klik tombol cmdMasuk, kemudian ketikan koding berikut ini :
Private Sub cmdMasuk_Click()
'Untuk mencegah Data kosong
If TxtNim.Text = "" Or TxtNama.Text = "" Or TxtAlamat.Text = "" Or TxtJurusan.Text = "" Then
MsgBox "Masih Ada Data Yang Kosong .....!", vbCritical, "Perhatian ..!"
Exit Sub
End If
Set RsMhs = New ADODB.Recordset
RsMhs.Open "SELECT NIM FROM tbl_Mhs WHERE NIM='" & TxtNim.Text & "'", Conn, adOpenForwardOnly, adLockReadOnly
'Jika Jika dlm database tdk ditemukan dan di listvie msh kosong
If RsMhs.EOF And MSFlexGrid1.Rows = 1 Then
i = MSFlexGrid1.Rows
MSFlexGrid1.Rows = i + 1
MSFlexGrid1.TextMatrix(i, 0) = TxtNim.Text
MSFlexGrid1.TextMatrix(i, 1) = TxtNama.Text
MSFlexGrid1.TextMatrix(i, 2) = TxtAlamat.Text
MSFlexGrid1.TextMatrix(i, 3) = TxtJurusan.Text
TxtNim.Text = ""
TxtNama.Text = ""
TxtAlamat.Text = ""
TxtJurusan.Text = ""
TxtNim.SetFocus
'Jika dlm database tdk ditemukan dan dlm Grid sudah ada datannya
ElseIf RsMhs.EOF And MSFlexGrid1.Rows > 1 Then
For i = 1 To MSFlexGrid1.Rows
'mencegah data yang sama
If MSFlexGrid1.TextMatrix(i, 0) = TxtNim.Text Then
MsgBox "NIM " & MSFlexGrid1.TextMatrix(i, 0) & " Sudah Ada Dalam Daftar Grid, Silahkan Dicek", vbInformation, "Informasi"
TxtNim.SetFocus
Exit Sub
End If
Next i
'Jika dlm Grid Belum ada NIM yang sama
'maka Memasukan Datanya
i = MSFlexGrid1.Rows
MSFlexGrid1.Rows = i + 1
MSFlexGrid1.TextMatrix(i, 0) = TxtNim.Text
MSFlexGrid1.TextMatrix(i, 1) = TxtNama.Text
MSFlexGrid1.TextMatrix(i, 2) = TxtAlamat.Text
MSFlexGrid1.TextMatrix(i, 3) = TxtJurusan.Text
'Membersihkan textbox
TxtNim.Text = ""
TxtNama.Text = ""
TxtAlamat.Text = ""
TxtJurusan.Text = ""
TxtNim.SetFocus
Else
'Jika dlm database sudah ada data yang sama
MsgBox "NIM " & TxtNim.Text & " Sudah Ada Dalam Database, Silahkan Dicek", vbInformation, "Informasi"
Exit Sub
End If
RsMhs.Close
End Sub
Koding diatas digunakan untuk memasukan data dari textbo ke dalam msflexgrid.
Selanjutnya silahkan double klik tombol cmdSimpan dan ketikan koding berikut ini yang berfungsi untuk menyimpan data yang ada dalam msflexgrid ke database.
Private Sub cmdSimpan_Click()
If MSFlexGrid1.Rows > 1 Then
For i = 1 To MSFlexGrid1.Rows - 1
Set RsMhs = New ADODB.Recordset
RsMhs.Open "SELECT NIM FROM tbl_Mhs WHERE NIM='" & MSFlexGrid1.TextMatrix(i, 0) & "'", Conn, adOpenDynamic, adLockReadOnly
If RsMhs.EOF Then
SQL = ""
SQL = "INSERT INTO TBL_MHS(NIM,NAMA,ALAMAT,JURUSAN)VALUES " _
& "('" & MSFlexGrid1.TextMatrix(i, 0) & "'," _
& "'" & MSFlexGrid1.TextMatrix(i, 1) & "'," _
& "'" & MSFlexGrid1.TextMatrix(i, 2) & "'," _
& "'" & MSFlexGrid1.TextMatrix(i, 3) & "')"
Conn.Execute SQL
Else
MsgBox "NIM " & MSFlexGrid1.TextMatrix(i, 0) & " Sudah Ada Dalam Database, Silahkan Dicek", vbInformation, "Informasi"
Exit Sub
End If
Next i
Call AktifGrid
RsMhs.Close
MsgBox "Data Berhasil Disimpan...", vbInformation, "Informasi..."
TxtNim.SetFocus
End If
End Sub
Jika sudah semua silahkan disimpan terlebih dahulu, selanjutkan silahkan untuk dijalankan. Demikain tutorial dari saya semoga dapat bermanfaat. Silahkan download source code dari tutorial ini di bawah ini.
Download :
Keywords:
Menyimpan Data Dalam Grid Ke Database, Memasukan Data Dalam Grid Ke Database, Bagaimana Menyimpan Data Dalam Grid Ke Database, Bagaimana Memasukan Data Dalam Grid Ke Database, Cara Memasukan Data Dalam Grid Ke Database, Cara Menyimpan Data Dalam Grid Ke Database
maaf mau tanya, kok di saya keluar subscript out of range yaa.. terima kasih
ReplyDeleteSama ditempat saya juga muncul out of range. Dimananya yang harus diperbaiki?? Trima kasih
ReplyDelete