STEP BY STEP MENJADI
PROGRAMMER HANDAL
DENGAN VB.NET
Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.comSTEP I
DASAR PEMROGRAMAN DATA BASE
BERBASIS WINDOW
(Study Kasus Access 2003)
I. Pengantar
Mungkin sebagian besar pembaca artikel ini satu pendapat dengan saya. buku – buku tentang VB.Net yang beredar pada saat ini kurang memuaskan. Rata-rata
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
banyak menghabiskan kertas hanya dengan menjelaskan teori dari .Net. Framework. Sehingga kita sebagai pembaca lebih cepat bosan dengan membaca buku seperti itu (Sebelumnya mohon maaf kepada para penulis buku .Net, tapi itulah kenyataan yang saya alami). Oleh karena itu saya ingin membagikan ilmu yang saya miliki kepada para pembaca. Artikel ini saya buat berseri, belum tau lagi sampai berapa seri, doain aja biar tetap bisa nulis. Insya Allah dengan berjalannya waktu mudah-mudahan ilmu yang saya miliki juga bertambah, sehingga isi dari artikel-artikel yang akan saya tulis semakin bagus dan bermanfaat.
Artikel ini berisi tentang contoh-contoh program dan fungsi yang ada pada source code. Dan program yang saya berikan berstandar basis data. Jadi para pemula yang belum sama sekali kenal VB.Net hendaknya membaca teorinya di buku-buku tentang pemrograman Vb.Net. Jika program yang diberikan tidak jalan, silahkan hubungi ke email saya.
II. Pada saat ini sudah sangat dipastikan bahwa pemrograman database memang lagi marak-maraknya. Karena sesuai dengan kebutuhan, setiap informasi yang akan diproses sebaiknya disimpan di sebuah basis data (Database). Pada artikel yang saya buat ini, untuk tingkat awal kita menggunakan Access sebagai penampung data. Dalam artikel yang saya buat ini, saya tidak membuat program untuk kasus yang besar, tetapi program-program itu saya pecah, sehingga pembaca juga dapat merasa puas akan artikel ini. Yang jelas isi dari materi yang ada pada artikel ini semua hampir berkaitan dengan pemrograman Database.
III. A TIME TO MAKE PROGRAM 3.1 Desain Form
Gambar Flash Form
Gambar Form Login
Untuk membuat program seperti diatas, mari ikuti langkah-langkah dibawah ini. Sebelum kita masuk dalam pembuatan program, terlebih dahulu kita buat database pada Access. Diasumsikan bahwa pembaca sudah mengetahui pembuatan database dan table pada access 2003. Buatlah database dengan nama “Coba.mdb” & buat table pada file Coba.mdb dengan nama “Users” dan “TbUsaha”. Seperti gambar dibawah ini.
Gambar Desain Table Users
Gambar Desain Table TbUsaha
Setelah selesai dalam pembuatan database, sekarang kita masuk dalam pembuatan program.
Buka Aplikasi Visual Studio.Net, dan pilih New Project. Ketikan nama project sesuai dengan keinginan anda. Simpan di drive pada PC anda (Untuk drive bebas juga, sekarang jamannya hak asasi manusia, tidak ada pemaksaan). Setelah itu copy file Coba.mdb ke dalam Folder “Bin” dimana aplikasi anda disimpan. Contoh, anda menyimpan aplikasi di “D:\NamaAplikasi”. Perluas folder NamaAplikasi, dan letakkan file Coba.mdb ke dalam folder Bin yang ada di dalam folder NamaAplikasi. Ngerti ga ???????????????????????????????????????????
3.1.1 Membuat StartUp Form.
Untuk pertama kali, .Net akan memberikan Default sebuah form, dengan nama Form1. Sekarang tugas kita adalah merubah tampilan Form1 tersebut menjadi seperti tampilan Flash Form seperti diatas.
Ubah properties Form1 seperti dibawah ini.
BackColor White FormBorderStyle FixedToolWindow Text (Kosongkan) Name StartUp StartPosition CenterScreen ControlBox False ShowInTaskbar False
Setelah selesai melakukan perubahan Form1 seperti diatas. Sekarang kita tambah aksesoris pada form StartUp. Tambahkan dua (2) buah label, 1 ProgressBar dan 1 buah PictureBox. Sehingga tampilan seperti pada gambar dibawah ini.
Desain Splash Form
Untuk gambar diatas silahkan ganti dengan gambar yang anda suka dan jika anda tidak suka dengan tampilan ini, anda dapat merubah sesuai dengan keinginan anda. Setelah selesai mendesain form, tambahkan sebuah timer dan beri nama Splash_Timer.
3.1.2 Membuat Login Form.
Tambahkan sebuah Form ke dalam aplikasi. Caranya Klik Kanan Pada Project anda Pilih Add>Add Windows Form. Ganti properties Form baru tersebut seperti dibawah ini.
BackColor LightBlue
Font+ Microsoft Sans Serif, 8.25pt, style=Bold FormBorderStyle Fixed3D Text Login Name FrmLogin StartPosition CenterScreen ControlBox False ShowInTaskbar False
Tambahkan 2 buah label, 2 buah TextBox dan 2 buah Button Ubah properties dari masing-masing component seperti dibawah ini.
Label 1
BackColor LightBlue
Font+ Microsoft Sans Serif, 8.25pt, style=Bold
Text Username
Label 2
BackColor LightBlue
Font+ Microsoft Sans Serif, 8.25pt, style=Bold
Text Password Textbox 1 BorderStyle Fixed3D Name txtUser Textbox 2 BorderStyle Fixed3D Name txtPassword PasswordChar *
Button1
BackColor LightBlue
Font+ Microsoft Sans Serif, 8.25pt, style=Bold
Flatstyle Flat
Text Login
Name btnlogin
Button2
BackColor LightBlue
Font+ Microsoft Sans Serif, 8.25pt, style=Bold
Flatstyle Flat
Text Cancel
Name btnbatal
Setelah selesai merubah properties seperti di atas, susun dan disain form seperti dibawah ini.
Gambar Desain Form Login
3.1.3 Membuat Menu Utama
Sekarang kita akan membuat Form Utama, tapi untuk sementara jangan di modifikasi. Untuk saat ini kita ganti Form Name menjadi MainMenu
3.2 Source Code
3.2.1 Source Code Form Splash
Setelah kita selesai mendesain 2 buah form, sekarang waktunya kita bermain dengan source code. Pada Form splash, klik 2 kali (Double Click) component Splash_Timer . Dan ketikkan listing seperti dibawah ini.
Note : anda dapat mencoba mengubah nilai value pada progressbar. Dengan menaikkan atau mengurangi nilai value maka anda melihat perubahan progessbar berjalan, apakah semakin cepat atau lambat. Itu semua tergantung pada anda.
Coba jalankan program, gmana? apakah sudah sesuai dengan yang anda inginkan ????????
3.2.2 Source Code Form Login
Sebelum kita mulai membuat listing pada form login, terlebih dahulu kita membuat koneksi pada database. Sekarang kita akan membuat koneksi dengan memanggil Class lain untuk koneksi ke database.
Sebelumnya Buat folder pada project yang anda buat (Klik kanan project>Add>New Folder) dan beri nama “AccessData”. Selanjutnya didalam Folder tersebut tambahkan Class dengan nama “DataBaseConnection.vb” (Klik kanan Folder “AccessData”>Add>Add Class). Ketikan listing di bawah ini pada class yang baru anda buat.
Private Sub Splash_Timer_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Splash_Timer.Tick
Dim cur As New frmLogin ProgressBar1.Value += 4 If ProgressBar1.Value = 100 Then Splash_Timer.Dispose() Me.Visible = False cur.Show() End If End Sub
Note :Dengan membuat koneksi menggunakan Class, untuk setiap proses yang berhubungan dengan database anda cukup dengan memanggil nama Class tersebut, dengan mendeklarasikan Class tersebut.
Contoh : Dim MyConnection As New AccessData.DatabaseConnection
Setelah selesai membuat Class, selanjutnya kita akan membuat module untuk menyimpan Variable global yang sering kita gunakan dalam pembuatan program. Buat satu module caranya sama dengan membuat Class, dan beri nama “module.vb”. (Klik kanan Folder “AccessData”>Add>Add Module). Ketikan listing di bawah ini pada module yang baru anda buat.
Imports System.Data
Imports System.Data.OleDb
Namespace AccessData
Public Class DatabaseConnection Dim conect As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=Coba_Data.mdb;Jet OLEDB:Database Password=90210; ")
Public Function open() As OleDbConnection conect.Open()
Return conect End Function
Public Function close() As OleDbConnection conect.Close() Return conect End Function End Class End Namespace Imports System.Data.OleDb Module _Module
Public cur As New Form Public Msg As Integer
Public intResponse As Integer Public objCommand As OleDbCommand
Public objDataAdapter As OleDbDataAdapter Public objDataReader As OleDbDataReader Public StrSQL as String
Public Username, Password, mProcess As String Public objDataSet As New DataSet
Public objDataTable As New DataTable End Module
Setelah selesai sekarang kita kembali pada Form Login. Untuk pertama kali ketikkan listing dibawah ini pada baris paling atas.
Note : Fungsi dari listing diatas adalah mengambil (imports) fungsi yang ada pada .Net. jika anda menggunakan SQL Server sebagai database anda tinggal menganti “OleDb” menjadi “SqlClient”. Fungsi diatas wajib kita ketik untuk form yang menggunakan OleDb. Dan buat variable global untuk form Login ini, seperti dibawah ini.
Ketikkan listing ini dibawah
Selanjutnya kita buat listing untuk mencari apakah Username ada pada table Users
Fungsi dari listing adalah, mencari Username apakah ada pada table Users. Syntax SQL ("SELECT * FROM [Users] WHERE [UserName] = '" & Trim(txtuser.Text) & "' "), Maksudnya adalah menampilkan data user dengan criteria Username. Dan jumlah banyaknya data akan disimpan pada ObjDataTable. Kemudian ketikkan listing untuk menampilkan data users (Username,Password).
Imports System.Data Imports System.Data.OleDb
Sub CheckUsers()
objDataTable.Clear()
StrSQL = ("SELECT * FROM [Users] WHERE [UserName] = '" & Trim(txtuser.Text) & "' ")
objCommand = New OleDbCommand objCommand.Connection = Connect
objCommand.CommandType = CommandType.Text objCommand.CommandText = StrSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "MDT_user")
objDataTable = objDataSet.Tables("MDT_user") Connect.Close()
End Sub
Dim f_utama As New MainMenu
Dim MyConnection As New AccessData.DatabaseConnection
Untuk sekilas sepertinya listing antara Sub CheckUser sama dengan Sub Find_User. Tapi pada kenyataannya fungsi dari kedua listing ini berbeda. Untuk Sub Find_User disini kita menampilkan value dari username & Password. Mungkin anda pasti merasa bingung, dari mana ObjCommand, ObjDatareader, username, password. Mungkin kalau anda teliti, variable tersebut telah kita letakkan pada Module.vb. Kita tidak perlu membuat variable pada setiap form, karena variable global yang kita buat pada Modul dapat diakses oleh setiap Form. Bayangkan jika kita mempunyai 100 Form, maka pada setiap Form kita harus mendeklarasikan variable yang sering kita gunakan seperti diatas.
Jika anda sudah mengerti dengan yang saya maksud, mari lanjutkan pelajaran kita. Sekarang Double Click Button Login. Ketikan Listing seperti dibawah ini.
Sub Find_User()
objCommand = MyConnection.open.CreateCommand
objCommand.CommandText = ("Select [UserName],[Password] from [Users] where [UserName]='" & Trim(txtuser.Text) + "' ")
objDataReader = objCommand.ExecuteReader objDataReader.Read Username = objDataReader.Item("Username") Password = objDataReader.Item("Password") MyConnection.close() End Sub
3.3 IV.
Setelah ini Double Click button Cancel, dan ketikkan listing seperti berikut
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnLogin.Click
‘untuk mengaktifkan fungsi CheckUsers
CheckUsers
‘mengharuskan user memasukkan username dan password
If txtuser.Text.Trim() = "" And _
txtpassword.Text.Trim() = "" Then
Msg = MsgBox("Masukan Username dan Password", MsgBoxStyle.OKOnly, "Pesan") txtuser.Focus()
ElseIf txtuser.Text = "" Then
Msg = MsgBox("Masukan Username ", MsgBoxStyle.OKOnly, "Pesan") txtuser.Focus()
ElseIf txtpassword.Text = "" Then
Msg = MsgBox("Masukan password ", MsgBoxStyle.OKOnly, "Pesan") txtpassword.Focus()
Else
Try
‘Menghitung jumlah baris yang ada pada ObjDataTable
If objDataTable.Rows.Count <= 0 Then
‘Jika jumlah baris = 0 / username tidak ada pada table
Msg = MsgBox("Username tidak ada ", MsgBoxStyle.OKOnly, "Pesan") txtuser.Focus()
Else
‘Jika username ada pada table / jumlah baris ObjdataTable > 0 ‘Mengaktifkan fungsi mencari nilai value Username & Password
Find_User()
‘Jika Password yang diketik pada TextBox tidak sama pada Database
If Password <> Trim(txtPassword.Text) Then
Msg = MsgBox("Password salah!", MsgBoxStyle.OKOnly, "Pesan") txtPassword.Focus() Exit Sub Else ‘Jika Sama Me.Hide() f_utama.ShowDialog() txtuser.Text = "" txtPassword.Text = "" End If End If
Catch When Err.Number <> 0
MsgBox("Tidak dapat melakukan proses" _ & vbCrLf & Err.Description)
End Try
End If
Sekarang anda telah selesai membuat aplikasi yang sangat sederhana. Kalau berhasil jangan senang dulu, karena masih banyak sekali rintangan yang akan kita hadapi untuk kasus-kasus berikutnya. Bagi yang gagal jangan berkecil hati, jangan ragu dan sungkan silahkan E-Mail ke saya.
Jika program yang anda buat tidak ada masalah, kita lanjutkan pelajaran kita.
Sekarang mari kita modif form utama kita yang masih polos, menjadi seperti berikut :
Ubah Properties pada form utama seperti di bawah ini.
Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBatal.Click
intResponse = MessageBox.Show("Are you sure want to quit ?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
If intResponse = MsgBoxResult.Yes Then
End
Else
Exit Sub
End If
BackColor White FormBorderStyle Fixed3D
BackGroundImage Bebas mau gambar apa
Text MainMenu
Name MainMenu
StartPosition CenterScreen
Icon Bebas juga
Anda dapat memodif form sesuai dengan keinginan anda. Dan kita tambah komponen MainMenu1 dan StatusBar1 pada Form MainMenu. Buat seperti dibawah ini.
File>>Exit
Ketik listing seperti dibawah ini.
Double_Click Form Utama
Public Sub BuatPanelStatusBar()
'Membuat panel dan mengatur properti teks. StatusBar1.Panels.Add("Ready..")
StatusBar1.Panels.Add("") StatusBar1.Panels.Add("")
'Mengatur properti panel StatusBar. 'Mengatur properti panel AutoSize. StatusBar1.Panels(0).AutoSize = _ StatusBarPanelAutoSize.Spring StatusBar1.Panels(1).Width = 200 StatusBar1.Panels(2).Width = 200
' Mengatur properti panel BorderStyle. StatusBar1.Panels(0).BorderStyle = _ StatusBarPanelBorderStyle.Raised StatusBar1.Panels(1).BorderStyle = _ StatusBarPanelBorderStyle.Sunken StatusBar1.Panels(2).BorderStyle = _ StatusBarPanelBorderStyle.Sunken ' Mengatur perataan panel
StatusBar1.Panels(0).Alignment = _ HorizontalAlignment.Left StatusBar1.Panels(1).Alignment = _ HorizontalAlignment.Center StatusBar1.Panels(2).Alignment = _ HorizontalAlignment.Center
'Menambahkan properti teks pada panel ketiga dengan 'tanggal(sekarang)
StatusBar1.Panels(1).Text = "Selamat Datang" & " " & Username StatusBar1.Panels(2).Text = _
System.DateTime.Today.ToLongDateString() 'Mengatur properti icon pada panel ketiga
StatusBar1.ShowPanels = True End Sub
Setelah itu Double Click menu item Exit dan ketik listing seperti dibawah ini :
Lalu Double Click menu item Inputan dan ketikan listing seperti dibawah ini :
Setelah selesai kita mendesain Form Utama (MainMenu), sekarang kita akan membuat Form Untuk Penginputan Usaha.
Sekarang tambahkan sebuah form baru pada project yang kita buat. Ubah properties form seperti dibawah ini.
BackColor LightBlue
FormBorderStyle Fixed3D
Text Form Usaha
Name Frm_usaha
StartPosition CenterScreen
ControlBox False
ShowInTaksbar False
Dan tambahkan 11 Button, 1 GroupBox dan 2 TextBox. Susun semua komponen seperti dibawah ini.
End
Dim f_usaha As New Frm_Usaha f_usaha.ShowDialog() f_usaha.Dispose() 1 2 3 4 11 1 9 8 7 6 13 12 14 15 16
Dan ubah properties masing-masing komponen seperti dibawah ini : 1. BackColor Transparent FlatStyle Flat ForeColor Black Text << TextAlign MiddleCenter Name btnAwal ShowInTaksbar False
Untuk menghemat waktu dan tempat, properties setiap button hamper sama yang beda Cuma di nama dan text.
2. Text < Name btnMundur 3. Text > Name btnMaju 4. Text >> Name btnAkhir 5. Text F1 Add Name btnAdd 6. Text F2 Delete Name btnDelete
7. Text F3 Edit Name btnEdit 8. Text F4 Find Name btnCari 9. Text Save (Ctrl+S) Name btnSave 10. Text F5 Cancel Name BtnCancel 11. Text F6 Close Name btnClose 12. BorderStyle Fixed3D Name txtID Text “” (Kosong) 13. BorderStyle Fixed3D Name txtNama Text “”(Kosong)
Jika sudah selesai mendesain form tersebut, kita akan lanjutkan membuat class untuk pemrosesan data. Buat satu class didalam folder AccessData dengan nama AccessUsaha. Dan ketikkan listing seperti dibawah ini.
Jika sudah selesai, mari kita lanjutkan membuat program di dalam Form Usaha.
Dan buat variable global form seperti dibawah ini.
Dim MyConnection As New AccessData.DatabaseConnection Dim mPosition As Integer
Imports System.Data
Imports System.Data.OleDb
Namespace AccessData
Public Class AccessUsaha
Public Function AccessUsahaInsert(ByVal IDUsaha As String, ByVal NamaUsaha As String) Dim myCmd As New OleDbCommand
Dim myconnection As New AccessData.DatabaseConnection myCmd.CommandText = "Insert Into [TbUsaha]" _
& " (IDUsaha,NamaUsaha) Values (" _
& "'" & IDUsaha & "', '" & NamaUsaha & "');" myCmd.Connection = myconnection.open
myCmd.ExecuteNonQuery() myconnection.close() End Function
Public Function AccessUsahaUpdate(ByVal IDUsaha As String, ByVal NamaUsaha As String) Dim myCmd As New OleDbCommand
Dim myconnection As New AccessData.DatabaseConnection myCmd.CommandText = "Update [TbUsaha] Set " _
& " NamaUsaha='" & NamaUsaha & "'" _ & " Where IDUsaha='" & IDUsaha & "' ; " myCmd.Connection = myconnection.open
myCmd.ExecuteNonQuery() myconnection.close() End Function
Public Function AccessUsahaDelete(ByVal IDUsaha As String) Dim myCmd As New OleDbCommand
Dim myconnection As New AccessData.DatabaseConnection
myCmd.CommandText = "Delete From [TbUsaha] where IDUsaha='" & IDUsaha & "' " myCmd.Connection = myconnection.open myCmd.ExecuteNonQuery() myconnection.close() End Function End Class End Namespace
Lalu ketikan fungsi-fungsi berikut :
Private Sub clear()
'Mengkosongkan isi TextBox txtID.Text = ""
txtNama.Text = "" End Sub
Private Sub enabled_off() 'Menonaktifkan Textbox txtID.Enabled = False txtNama.Enabled = False End Sub
Private Sub enabled_on() 'Mengaktifkan TextBox txtID.Enabled = True txtNama.Enabled = True End Sub
Private Sub ViewData() Try
'Menampilkan Data IDUsaha dan Nama Usaha dengan Criteria “IDUsaha” pada masing-masing Textbox
objCommand = MyConnection.open.CreateCommand
objCommand.CommandText = "select * from TbUsaha Where IDUsaha = '" & Trim(txtID.Text) & "';" objDataReader = objCommand.ExecuteReader objDataReader.Read() txtID.Text = objDataReader.Item("IDUsaha") txtNama.Text = objDataReader.Item("NamaUsaha") MyConnection.close() Catch ex As Exception
MsgBox("Tidak dapat membuat hubungan ke database" _ & vbCrLf & Err.Description)
MyConnection.close() End Try
End Sub
Private Sub Displaydata() Try
'Menyimpan jumlah baris Tabel “TbUsaha” pada Objdatatable
objDataTable.Clear()
StrSQL = "select * from TbUsaha" objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open objCommand.CommandType = CommandType.Text objCommand.CommandText = StrSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "MDT_Usaha") MyConnection.close()
objDataTable = objDataSet.Tables("MDT_Usaha") Catch ex As Exception
MsgBox("Tidak dapat membuat hubungan ke database" _ & vbCrLf & Err.Description)
Double Click “btnclose” dan ketik seperti dibawah ini :
Double Click “btncancel” dan ketik seperti dibawah ini :
Sub displaydata2() Try
'Menampilkan Data “IDUsaha” dan “NamaUsaha” berdasarkan posisi Baris yang dicari
StrSQL = "select * from TbUsaha" objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open objCommand.CommandType = CommandType.Text objCommand.CommandText = StrSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "MDT_Usaha") MyConnection.close() objDataTable = objDataSet.Tables("MDT_Usaha") mPosition = BindingContext(objDataTable).Position With objDataTable.Rows(mPosition) txtID.Text = .Item("IDUsaha") txtNama.Text = .Item("NamaUsaha") End With
Catch When Err.Number <> 0
MsgBox("Tidak dapat membuat hubungan ke database" _ & vbCrLf & Err.Description)
MyConnection.close() End Try
End Sub Sub cari() Try
'untuk mengecek apakah IDUsaha yang diinputkan ada pada Tabel “TbUsaha”
objDataTable.Clear()
StrSQL = "select * from [TbUsaha] where IDUsaha = '" & Trim(txtID.Text) + "'" MyConnection.open()
objCommand.CommandText = StrSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "MDT_Usaha") MyConnection.close()
objDataTable = objDataSet.Tables("MDT_Usaha") Catch When Err.Number <> 0
MsgBox("Tidak dapat melakukan proses simpan" _ & vbCrLf & Err.Description)
MyConnection.close() End Try End Sub objDataTable.Clear() Me.Close() enabled_off() clear() mProcess = "" btnsave.Enabled = False btnsave.Text = "Save"
Double Click “btnadd” dan ketik seperti dibawah ini :
Double Click “btnEdit” dan ketik seperti dibawah ini :
Pilih ClassName = txtNama, Seperti dibawah ini mProcess = "ADD"
btnsave.Text = "Save Add" enabled_on()
btnsave.Enabled = True txtID.Focus()
clear()
If mProcess <> "View" Or txtNama.Text = "" Then
MsgBox("Lakukan pencarian terlebih dahulu, sebelum proses edit") Else
enabled_on() txtNama.Focus() mProcess = "EDIT"
btnsave.Text = "Save Edit" btnsave.Enabled = True End If
Dan Pilih Method Name = Leave. Untuk selanjutnya penulis hanya menyebutkan ClassName dan MethodName saja, untuk visual tidak akan diberikan.
Lalu ketik seperti dibawah ini.
Double Click Form Usaha, dan ketik seperti berikut :
Double Click btncari, dan ketik seperti berikut : btnsave.Focus()
Try
StrSQL = "Select * From TbUsaha" objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open objCommand.CommandType = CommandType.Text objCommand.CommandText = StrSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "MDT_Usaha") MyConnection.close()
objDataTable = objDataSet.Tables("MDT_Usaha")
Catch When Err.Number <> 0
MsgBox("Tidak dapat membuat hubungan ke database" _ & vbCrLf & Err.Description)
End Try clear() enabled_off() mProcess = "View" txtID.Enabled = True txtID.Focus()
Double Click btnSave, dan ketik seperti berikut :
If btnsave.Text = "Save Add" Then
Try
cari()
If objDataTable.Rows.Count >= 1 Then
MsgBox(" Kode " & "" & txtID.Text & "" & " sudah ada") txtID.Focus()
ElseIf txtID.Text = "" Or txtNama.Text = "" Then
MsgBox("Isikan data yang mau di Input terlebih dahulu") txtID.Focus()
Else
Dim mYes_No As String = MsgBox("Anda yakin data mau disimpan ?", vbYesNo) If mYes_No = vbYes Then
myconnectionUsaha.AccessUsahaInsert(txtID.Text, txtNama.Text) enabled_off() btnsave.Enabled = False btnsave.Text = "Save" btnadd.Focus() Displaydata() clear() Else enabled_off() clear() btnadd.Focus() End If End If
Catch When Err.Number <> 0
MsgBox("Tidak dapat melakukan proses simpan" _ & vbCrLf & Err.Description)
End Try
Else
Try
cari()
If objDataTable.Rows.Count = 0 Then
MsgBox(" Kode : " & "" & txtID.Text & "" & " tidak ada pada table") Else
Dim mYes_No As String = MsgBox("Anda yakin data mau diupdate ?", vbYesNo) If mYes_No = vbYes Then
myconnectionUsaha.AccessUsahaUpdate(txtID.Text, txtNama.Text) enabled_off() btnsave.Text = "Save" btnsave.Enabled = False btnadd.Focus() clear() Else enabled_off() clear() btnadd.Focus() End If End If
Catch When Err.Number <> 0
MsgBox("Tidak dapat melakukan proses update" _ & vbCrLf & Err.Description)
End Try
End If
Pilih ClassName = txtNama Dan Pilih Method Name = KeyUp
Pilih ClassName = txtNama, Seperti dibawah ini Dan Pilih Method Name = KeyUp
Double_Click btnakhir
Double_Click btnmaju
Double_Click btnmundur
Double_Click btnawal
If e.KeyCode = Keys.Enter Then btnsave.PerformClick()
ElseIf e.KeyCode = Keys.Escape Then btncancel.PerformClick()
End If
If mProcess = "View" Then Try
cari()
If objDataTable.Rows.Count = 0 Then MsgBox("Data yang dicari tidak ada") Else
ViewData()
btndelete.Focus() End If
Catch When Err.Number <> 0
MsgBox("Tidak dapat melakukan proses pencarian" _ & vbCrLf & Err.Description)
MyConnection.close() End Try End If BindingContext(objDataTable).Position = objDataTable.Rows.Count - 1 displaydata2() BindingContext(objDataTable).Position += 1 displaydata2() BindingContext(objDataTable).Position -= 1 displaydata2() BindingContext(objDataTable).Position -= 1 displaydata2()
Sekarang coba anda jalankan program, apakah program sudah berjalan dengan semestinya, jika belum bisa seperti biasa……
Tentu anda akan merasa heran, kenapa pada button Add, Edit dll ada semacam shortcut. Tetapi jika digunakan shortcut-shortcut tersebut tidak bekerja. Mungkin merupaka suatu kelemahan pada VB.Net tidak menyediakan shortcut untuk component button, tidak seperti Delphi yang menyediakan shortcut untuk button . Tapi jika anda seorang programmer yang memanfaatkan kelebihan dari bahasa pemrograman, masalah itu semua akan bisa diatasi. Ok, sekarang penulis akan memberikan solusi gimana cara membuat shortcut untuk menjalankan perintah pada suatu button.
Tambahkan komponen MainMenu pada Form Usaha. Lalu buat seperti berikut :
Pada masing-masing Properties MenuItem, buat Visible=False. Dan shortcut sesuai dengan button. Contoh : Untuk Button dengan Text : F1 Add, pada menu item add properties>Shortcut = F1. Dan selanjutnya..Buat sendiri ya…… ???????. Lalu coba Double_Click menu item add, dan ketik listing seperti dibawah.
Untuk semua menu item buat listing seperti diatas, hanya ubah button apa yang akan diperoses. Coba jalankan program dan gunakan shortcut. Apa sudah jalan ?????? Kalau berhasil, berarti anda sudah bisa proses dasar dari database (Select, Insert, Delete & Update). Dengan begitu anda dapat mengembangkan program ini sesuai dengan keinginan anda.
Penutup
Sebagai penutup dari artikel ini saya akan memberitahukan, kelebihan-kelebihan dengan menggunakan metode ini.
1. Pemrograman ini menggunakan metode 3 Layer, ”User Interface, Business Logic dan Connect to DB” (Maintenance lebih gampang, akses data lebih cepat)
2. Banyak menggunakan variable global sehingga, jika kita membuat program yang besar, ini akan membantu dalam menghemat waktu. Kita tidak perlu mengetikkan variable pada setiap form.
3. Program yang dibuat menggunakan shortcut sehingga lebih cepat dalam menggunakan program.
4. Dibalik itu semua saya yakin masih banyak kekurangan.
Untuk artikel selanjutnya, kita akan membuat report dengan menggunakan Crystal
STEP BY STEP MENJADI
PROGRAMMER HANDAL
DENGAN VB.NET
Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.comSTEP I I
MEMBUAT LAPORAN MENGGUNAKAN
CRYSTAL REPORT BERBASIS WEB
(Study Kasus Access 2003)
I. Pangantar
Setelah membaca artikel saya Step 1, mudah-mudahan para pembaca sudah dapat mengerti sedikit tentang pemrograman database. Setelah para pembaca sudah mengerti dan dapat di implementasikan, sekarang kita lanjut dengan membuat laporan menggunakan Crystal Report Visual Studio .Net 2003 (CR VS .NET 2003).
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
akhir dari data yang telah di olah (informasi). Oleh karena itu semakin baik suatu program, maka program tersebut akan menyediakan banyak laporan yang dibutuhkan oleh pengguna.
Salah satu tool yang mendukung untuk membuat laporan menggunakan VB.Net ada Crystal Report. Crystal Report adalah tool untuk membuat laporan yang handal, karena di dalamnya banyak sekali fitur-fitur untuk memudahkan kita dalam membuat laporan. Dan Crystal Report akan otomatis terinstal saat kita menginstall VS.NET.
II. MEMBUAT DATABASE (TABLE DAN QUERY)
Buat database baru dan letakkan di C:\Inetpub\wwwroot\namaproject\bin
Dan beri nama “tes.mdb“. Buat dua buah table, table pertama bernama ”Customers” dengan desain table sebagai berikut :
Setelah selesai membuat kedua table diatas, sekarang buat sebuah Query. Dengan desain sebagai berikut :
Dan simpan dengan nama “Q_Customers”. Sekarang isikan data sesuai dengan keinginan anda pada kedua table diatas. Sekarang anda telah memiliki sebuah database yang datanya akan dibutuhkan untuk laporan yang akan kita buat.
III. Sebelum kita memulai untuk mendesain Report, kita akan mendesain form untuk memanggil report yang akan kita gunakan. Untuk pertama silahkan desain form menurut keinginan anda.
Tambahkan dua buah datagrid , jika anda ingin mengubah tampilan dari data grid. Klik Auto Format dibawah jendela Properties. Dan akan muncul tampilan sebagai berikut :
Anda dapat memilih desain data grid sesuai dengan kesukaan anda. Setelah itu ganti nama datagrid pada properties name seperti berikut DG1 untuk Datagrid1 dan DG2 untuk Datagrid2. Lalu klik Dg1 dan klik Property Builder dibawah jendela Properties dan kllik Tab Paging.
Dan checklist allow paging dan OK. Lakukan hal yang sama pada Dg2.
Tambahkan sebuah Button, Dropdownlist, RadioButtonList dan CrystalReportViewer. Dan susun seperti gambar dibawah ini :
Ubah properties masing-masing komponen sebagai berikut : Button:
Text Report File Text
Name btnReport
DropDownList
ID ddlReport
Klik Collection pada properties Item, dan buat dua buah members. 1. Selected = True Text =PDF Value =.pdf 2. Selected = False Text = RTF Value = .rtf
RadioButtonList
ID RBL_Alpha
AutoPostBack True
RepeatLayout Table
Klik Collection pada properties Item, dan buat members dari A-Z ditambah satu ALL Selected = False Text =A Value =A
.
.
.
.
Selected = False Text = Z Value =ZDan ditambah ALL Selected = True Text = ALL Value = *
IV. DESAIN REPORT
Buat sebuah folder di project anda dan beri nama “Report” . Lalu buat sebuat report di dalam Folder Report
Lalu akan muncul dialog box seperti berikut :
Pilih Crystal Report, Dan ganti nama file menjadi ”CrCustomers.rpt“. Dan akan muncul dialog box seperti berikut . Lalu pilih “As a Blank Report”, dan click OK.
Click kanan pada Report Header (Section 1), dan click “Fit Section”
Click kanan pada Page Header (Section 3), dan click “Format Section”. Lalu akan muncul tampilan seperti berikut :
Click Page Header dan click button Insert . Maka Page Header akan bertambah menjadi Page Header a dan Page Header b. Dan klik button OK.
Setelah muncul Page Header a dan b pada tampilan Crystal Report, klik kanan Page Header b dan pilih dan klik Suppress (No Drill-Down).
Membuat hubungan ke DataBase.
Click tanda + pada OLE DB (ADO)
Akan muncul tampilan seperti di atas, lalu pilih “Microsoft Jet 4.0 OLE DB Provider”, dan click Next.
Dan click Finish. Dan akan muncul tampilan seperti berikut :
Click tanda + (Views), maka akan terbuka root yang didalamnya terdapat
“Q_Customers”. Dan click button “>”. Maka “Q_Customers” pindah ke “Selected Tables” List. Seperti gambar dibawah ini :
Dan click OK.
Tampilan Database Fields akan berubah seperti gambar diatas (Terdapat Q_Customers beserta field-fieldnya).
Desain Page Header a (Section2) seperti gambar di bawah ini.
Lalu masukkan field-field pada Database field ke Detail (Section 3). Seperti gambar di bawah ini .
Klik kanan pada Report Footer (Section4), klik Fit Section.
Untuk membuat field PrintDate dan PageNumber klik kanan pada area Page Footer (Section5).
V. A TIME TO MAKE SOURCE CODE
Sebelum kita mulai membuat listing pada form, terlebih dahulu kita membuat koneksi pada database. Sekarang kita akan membuat koneksi dengan memanggil Class lain untuk koneksi ke database.
Sebelumnya Buat folder pada project yang anda buat (Klik kanan project>Add>New Folder) dan beri nama “AccessData”. Selanjutnya didalam Folder tersebut tambahkan Class dengan nama “DataBaseConnection.vb” (Klik kanan Folder “AccessData”>Add>Add Class). Ketikan listing di bawah ini pada class yang baru anda buat.
Imports System.Data
Imports System.Data.OleDb
Namespace AccessData
Public Class DatabaseConnection Dim conect As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\Inetpub\wwwroot\Ilkom\bin\tes.mdb; ")
Public Function open() As OleDbConnection conect.Open()
Return conect End Function
Public Function close() As OleDbConnection conect.Close()
Return conect End Function
End Class End Namespace
Pada WebForm1 untuk pertama kali ketikkan listing dibawah ini pada baris paling atas.
Dan ketikkan listing-listing seperti di bawah ini. Imports System.Data
Imports System.Data.OleDb
#Region "Declaration"
Dim objConnection As OleDbConnection Dim objCommand As OleDbCommand
Dim objDataAdapter As OleDbDataAdapter Dim objdatareader As OleDbDataReader Dim strConn, strSQL As String
Dim objDataSet As New DataSet Dim objDataTable As New DataTable
Dim myconnection As New AccessData.DatabaseConnection #End Region
Sub binddatagrid()
objDataTable.Clear()
strSQL = "SELECT Customers.CompanyName , CustomerNames.ContactName , " _ & " iif(CustomerNames.Phone='NA','',CustomerNames.Phone)AS Phone
,IIF(CustomerNames.Fax='NA','',CustomerNames.Fax) As Fax " _
& " FROM CustomerNames INNER JOIN Customers ON CustomerNames.CustomerID = Customers.CustomerID " _
& " ORDER BY Customers.CompanyName;" objCommand = New OleDbCommand
objCommand.Connection = myconnection.open() objCommand.CommandType = CommandType.Text objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "mdt_customers") objDataTable = objDataSet.Tables("mdt_customers") myconnection.close() DG1.DataSource = objDataTable DG1.DataBind() End Sub
Sub view()
objDataTable.Clear()
strSQL = "SELECT Customers.CompanyName , CustomerNames.ContactName , " _ & " iif(CustomerNames.Phone='NA','',CustomerNames.Phone) AS Phone ,IIF(CustomerNames.Fax='NA','',CustomerNames.Fax) As Fax " _
& " FROM CustomerNames INNER JOIN Customers ON CustomerNames.CustomerID = Customers.CustomerID " _
& " WHERE Customers.CompanyName Like '" & RBL_Alpa.SelectedValue & "%' ORDER BY Customers.CompanyName;"
objCommand = New OleDbCommand
objCommand.Connection = myconnection.open() objCommand.CommandType = CommandType.Text objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "mdt_View8D") objDataTable = objDataSet.Tables("mdt_View8D") myconnection.close() DG2.DataSource = objDataTable DG2.DataBind() End Sub
Sub paginggrid(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs) DG1.CurrentPageIndex = e.NewPageIndex
CrystalReportViewer1.Visible = False End Sub
Sub paginggrid2(ByVal s As Object, ByVal e As DataGridPageChangedEventArgs) DG2.CurrentPageIndex = e.NewPageIndex
view()
CrystalReportViewer1.Visible = False End Sub
Sub report_Alpa()
Dim rdContacts As New CrCustomers Dim ext As String
Dim format As Integer
view()
Select Case ddlReport.SelectedValue Case ".rtf" ext = ddlReport.SelectedValue Case ".pdf" ext = ddlReport.SelectedValue End Select rdContacts.SetDataSource(objDataTable) CrystalReportViewer1.ReportSource = rdContacts rdContacts.Refresh() Try Dim t As Integer
Dim nomorrandom As String Dim Filename As String
Dim diskOpts As New DiskFileDestinationOptions
Filename = "\reports2\" & RBL_Alpa.SelectedValue & "" & ext & "" diskOpts.DiskFileName = Filename With rdContacts .ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile If ext = ".rtf" Then .ExportOptions.ExportFormatType = ExportFormatType.RichText ElseIf ext = ".pdf" Then
.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat End If .ExportOptions.DestinationOptions = diskOpts .PrintOptions.PaperOrientation = PaperOrientation.Portrait .PrintOptions.PaperSize = PaperSize.PaperA4 .Export() .Refresh() End With CrystalReportViewer1.Visible = False
Response.Redirect("http://pcbt1151/Reports2/" & RBL_Alpa.SelectedValue & "" & ext & "")
Exit Try Catch ex As Exception CvError.ErrorMessage = ex.Message CvError.IsValid = False myconnection.close() End Try CrystalReportViewer1.Visible = False End Sub
Sub report_ALL()
Dim rdContacts As New CrCustomers Dim ext As String
Dim format As Integer binddatagrid()
Select Case ddlReport.SelectedValue Case ".rtf" ext = ddlReport.SelectedValue Case ".pdf" ext = ddlReport.SelectedValue End Select rdContacts.SetDataSource(objDataTable) rdContacts.SetDatabaseLogon("", "A2B") CrystalReportViewer1.ReportSource = rdContacts rdContacts.Refresh() Try Dim t As Integer
Dim nomorrandom As String Dim Filename As String
Dim diskOpts As New DiskFileDestinationOptions
Filename = "\reports2\ALL" & "" & ext & "" diskOpts.DiskFileName = Filename With rdContacts .ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile If ext = ".rtf" Then .ExportOptions.ExportFormatType = ExportFormatType.RichText ElseIf ext = ".pdf" Then
.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat End If .ExportOptions.DestinationOptions = diskOpts .PrintOptions.PaperOrientation = PaperOrientation.Portrait .PrintOptions.PaperSize = PaperSize.PaperA4 .Export() .Refresh() End With CrystalReportViewer1.Visible = True
Response.Redirect("http://pcbt1151/Reports2/ALL" & "" & ext & "") Exit Try Catch ex As Exception CvError.ErrorMessage = ex.Message CvError.IsValid = False myconnection.close() End Try CrystalReportViewer1.Visible = False End Sub
Ketikkan listing berikut pada Private Sub Page_Load.
Double Click Rbl_Alpha, dan ketikkan listing seperti di bawah ini : Try
If Not IsPostBack Then binddatagrid() CrystalReportViewer1.Visible = False DG1.Visible = True DG2.Visible = False End If Catch ex As Exception CvError.ErrorMessage = ex.Message CvError.IsValid = False CrystalReportViewer1.Visible = False End Try Try If RBL_Alpa.SelectedValue = "*" Then binddatagrid() DG1.Visible = True DG2.Visible = False Else view() If objDataTable.Rows.Count = 0 Then
CvError.ErrorMessage = "There are no records for that letters" CvError.IsValid = False DG1.Visible = False DG2.Visible = True Else DG1.Visible = False DG2.Visible = True End If End If Catch ex As Exception CvError.ErrorMessage = ex.Message CvError.IsValid = False CrystalReportViewer1.Visible = False End Try CrystalReportViewer1.Visible = False
Double Click Btn_Report, dan ketikkan listing sebagai berikut :
Setelah selesai membuat listing seperti diatas, langkah selanjutnya adalah membuat folder untuk menyimpan report yang kita buat. Pertama buat folede pada Drive C:\, dan beri nama Report2. Click kanan Folder tersebut Pilih Sharing and Security. Setelah muncul tampilan sebagai berikut :
Try If RBL_Alpa.SelectedValue = "*" Then report_ALL() Else view() If objDataTable.Rows.Count = 0 Then
CvError.ErrorMessage = "There are no records for that letters" CvError.IsValid = False Exit Try Else report_Alpa() End If End If Catch ex As Exception CvError.ErrorMessage = ex.Message CvError.IsValid = False CrystalReportViewer1.Visible = False End Try CrystalReportViewer1.Visible = False
Pilih Tabs WebSharing, dan pilih Share this folder, dan muncul tampilan seperti dibawah ini.
Klik OK, dan Klik OK pada Properties Form.
VI. PENGGUNAAN PROGRAM
Untuk menampilkan Report, tekan Button Report File Text, dan kita dapat memilih laporan kita berbentuk PDF atau RTF (dengan memilih Drop Down List yang di sebelah Button).
Sedangkan Abjad dari A-Z untuk menampilkan nama Perusahaan berdasarkan Abjad tersebut.
VII. PENUTUP
Setelah membuat dan menjalankan program ini, mungkin pembaca dapat mengerti kegunaan dari Crystal Report. Contoh program ini masih sangat sederhana, tetapi akan sangat mungkin sekali di kembangkan menjadi laporan yang handal. Karena basic pemrograman Crystal Report sudah ada pada program ini.
Saya yakin masih banyak kekurangan di dalam program ini, dan saya harap artikel ini dapat membantu para pembaca untuk menambah ilmu dalam pemrograman .Net khusus nya VB.Net.
Semoga Artikel-artikel tentang VB.Net ini masih tetap saya tulis, seiring dengan berkembangnya ilmu yang saya miliki. Aminnnnnnnnnnnnnnnn
STEP BY STEP MENJADI
PROGRAMMER HANDAL
DENGAN VB.NET
Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.comSTEP III
APLIKASI UNTUK MEMBUAT DATABASE
DAN TABEL PADA MS. ACCESS
(Study Kasus Access 2003)
I. Pengantar
Lazimnya dalam membuat database dan table pada Ms.Access, kita akan menuju ke Start > Program>Microsoft Office>Ms.Access. Dan pada artikel kita tidak perlu lagi melakukan hal tersebut (berinteraksi dengan Ms.Access). Karena di sini kita
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
artikel ini penulis akan memberikan contoh kasus yang simple agar para pembaca dapat dengan mudah memahami nya.
II. File pendukung.
File pendukung ini adalah ADOX.dll, file ini yang bekerja untuk mengcreate database dan table pada Ms. Office. File ini akan di sertakan bersama dengan tulisan ini.
III. A TIME TO MAKE PROGRAM 3.1 New Project
Buat Project baru, dan beri nama project dan simpan aplikasi sesuai dengan keinginan anda. Eg. Nama Project : Make DB
Lokasi : C:\ProgramKu\ 3.2 Adox.dll
Pada artikel ini saya sertakan juga file Interop.ADOX.dll. Copy file ini ke “\Namaprogram\Bin\” . eg,C: \Make DB\Bin\.
Masukkan file ini kedalam program anda, dengan cara seperti di bawah ini : Click kanan pada Reference dan click Add Reference.
Lalu akan muncul tampilan seperti berikut.
Dan pilih Tab Project. Dan click browse, dan cari file interop yang anda simpan di dalam folder Bin. Dan klik OK.
Maka pada references anda akan bertambah seperti gambar dibawah ini.
3.3 Design Form
Ubah properties Form Seperti Dibawah ini :
BackColor 224, 224, 224
FormBorderStyle Fixed3D
Text Create DB
StartPosition CenterScreen
MaximizeBox False
Tambahkan 5 buah button, 2 TextBox, 3 ListBox, 1 ComboBox pada form. Dan desain seperti gambar dibawah ini, jika selera and berbeda bisa design sendiri kok.. tidak ada pemaksaan dari penulis..
Button 1
BackColor 255, 255, 192
FlatStyle Flat
ForeColor Navy
Text Field Name
Enabled False
Button 2
BackColor 255, 255, 192
FlatStyle Flat
ForeColor Navy
Text Data Type
Button 3 BackColor 255, 255, 192 FlatStyle Flat ForeColor Navy Text Size Enabled False Button 4 Name btnInsert FlatStyle Flat
Text Insert to Field List
Button 5
Name BtnCreate
FlatStyle Flat
Text Create Database
TextBox 1 Name txtField Text “” (Kosongkan) TextBox 2 Name txtSize Text “” (Kosongkan)
ComboBox 1
Dropdownstyle DropDownList
Name cmbType
Text “” (Kosongkan)
Pada Properties item buat seperti pada gambar berikut ini :
ListBox 1 Name lstFieldName ListBox 2 Name lstType ListBox 3 Name lstSize
3.4 Source Code
Ketikkan listing berikut di baris pertama ..
Dan ketikkan listing di bawah ini pada even Form_Load
Fungsi dari listing ini adalah untuk membuat form yang transparan.. Pembaca dapat mengatur transparansi form. Dengan mengubah nilai 0.7 pada listing diatas.. Semakin kecil nilainya semakin transparan form yang kita buat. Saya rasa para pembaca dapat mencoba nya sendiri, mana yang menurut anda yang lebih bagus.
Double click pada ComboBox (cmbType). Dan ketikan listing berikut :
Listing diatas berfungsi pada saat user memilih DataType, jika Type nya adalah Text maka textbox size akan aktif, jika selain dari pada itu maka textbox tidak aktif. Mungkin para pembaca ada yang merasa kenapa demikian. Seperti yang kita ketahui pada Ms Access hanya Type Text yang memiliki size. Selebihnya tidak. Jika tidak kita buat demikian, mungkin saja bisa terjadi error.
Lalu pada txtSize_KeyPress ketikan listing seperti di bawah ini :
Listing ini merupakan suatu fungsi agar tidak terjadi Human Error dalam mengcreate size, karena tidak mungkin size berupa huruf jadi jika yang dimasukkan/di inputkan selain 0-9 maka tidak akan bisa.
Imports ADOX
Me.Opacity = Math.Abs(0.7)
If Trim(cmbType.Text) = "Text" Then txtSize.Enabled = True Else
txtSize.Enabled = False End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
Double click btnInsert, dan ketikan listing berikut . BntInsert adalah proses untuk memasukkan data dari TextBox dan ComboBox kedalam ListBox.
If txtField.Text = "" Or cmbType.SelectedIndex = -1 Then
MsgBox("Masukkan Field Name atau Pilih Data Type", MsgBoxStyle.Information, "Informasi")
Listing berfungsi untuk memvalidasi proses , jika txt field tidak di isi dan ComboBox pada posisi default (tidak dalam keadaan di pilih). Maka program akan menampilkan informasi agar mengisi textbox text dan memilih size pada ComboBox.
lstFieldName.Items.Add(txtField.Text) lstType.Items.Add(cmbType.Text)
lstSize.Items.Add(txtSize.Text)
fungsi nya adalah memasukkan data dari TextBox atau Combobox kedalam Listbox. Dengan menggunakan fungsi Items.Add
txtField.Text = ""
cmbType.SelectedIndex = -1 txtSize.Text = ""
Setelah data sudah masuk kedalam ListBox, maka textbox dan ComboBox kembali pada keadaan default.
Try
If txtField.Text = "" Or cmbType.SelectedIndex = -1 Then
MsgBox("Masukkan Field Name atau Pilih Data Type", MsgBoxStyle.Information, "Informasi") Else lstFieldName.Items.Add(txtField.Text) lstType.Items.Add(cmbType.Text) lstSize.Items.Add(txtSize.Text) txtField.Text = "" cmbType.SelectedIndex = -1 txtSize.Text = "" End If Catch ex As Exception MsgBox(ex.Message) End Try
BtnCreate adalah proses dimana kita melakukan proses Create DataBase dan Tabel.
Try
Dim i As Integer
Dim DataType As Integer
Dim ADOXcatalog As New ADOX.Catalog Dim ADOXtable As New Table
ADOXcatalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\Coba.mdb")
ADOXtable.Name = "Employees"
For i = 0 To (lstFieldName.Items.Count - 1)
If lstType.Items.Item(i).ToString = "Text" Then DataType = 202
ElseIf lstType.Items.Item(i).ToString = "Memo" Then DataType = 203
ElseIf lstType.Items.Item(i).ToString = "Number" Then DataType = 3
ElseIf lstType.Items.Item(i).ToString = "Date/Time" Then DataType = 7
ElseIf lstType.Items.Item(i).ToString = "Currency" Then DataType = 6
ElseIf lstType.Items.Item(i).ToString = "Yes/No" Then DataType = 11
End If
If lstType.Items.Item(i).ToString = "Text" Then
ADOXtable.Columns.Append(lstFieldName.Items.Item(i).ToString, DataType, lstSize.Items.Item(i).ToString) Else ADOXtable.Columns.Append(lstFieldName.Items.Item(i).ToString, DataType) End If Next i ADOXcatalog.Tables.Append(ADOXtable) ADOXtable = Nothing ADOXcatalog = Nothing Catch ex As Exception MsgBox(ex.Message) End Try
ADOXcatalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\Coba.mdb")
Ini adalah fungsi untuk membuat database, dimana kita menentukan nama dan lokasi dari DataBase. Seperti pada program ini lokasi Database pada Drive C:\, sedangkan nama Database nya “Coba.mdb”
ADOXtable.Name = "Employees”
Penutup
Sangat banyak kekurangan yang ada pada artikel ini, untuk itu saya butuh kritik dan saran dari pembaca. Kekurangan di dalam program ini adalah.
1. Belum mampu membuat Index, Primary Key dan Relation ship.. Mungkin itu semua menjadi PR buat saya dan para penggemar Vb.Net.
2. Untuk lokasi dan nama Database masih bersifat statis (Kaku), artinya pembuatan lokasi dan nama dari Database masih di lakukan pada listing. Tidak bersifat dinamis, sehingga dilakukan oleh program setelah running.
Tetapi tujuan dari artikel ini adalah supaya kita dapat terus berlatih dalam membuat program, dan menemui suatu masalah lalu dapat kita selesaikan masalah tersebut. Itu akan menjadi wawasan baru buat kita. Dan pengalaman kita di dalam dunia
STEP BY STEP MENJADI
PROGRAMMER HANDAL
DENGAN VB.NET
Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.comSTEP I V
MENGAKSES DATA DARI EXCEL DAN
MENGIMPORT KE ACCESS
(Study Kasus Excel &Access 2003)
I. Pangantar
Sering sekali kita menerima data dari user berupa excel file. Dan merupakan pekerjaan yang melelahkan untuk melakukan penginputan yang jumlah nya sangat banyak sekali. Mungkin jika kita bisa mengakses database suatu program akan sangat gampang sekali untuk mentransfer data dari Excel ke Database (Access).
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
program yang memberikan hak kepada user untuk dapat mengakses database secara langsung dan atau database nya di password.
Dan ini sebenarnya merupakan tugas dari para programer yang membuat program. Bagaimana membuat program yang memudahkan pekerjaan para user. Jadi di dalam artikel ini bagaimana kita membuat simple program / fasilitas untuk mengimport data dari excel ke access. Dan di dalam artikel ini kita akan membuat bagaimana melakukan koneksi ke Excel file dan data nya kita tampilkan ke dalam Datagrid.
Karena ini merupakan artikel ke emapat dari penulis, jadi penulis mengasumsikan para pembaca sudah familiar dengan Vb.Net dan Access. Jadi cara membuat project baru tidak akan dijelaskan secara detail. Jadi bila para pembaca ngerasa tulisan ini tidak di mengerti, silahkan baca artikel penulis Step 1 – 3.
II. MEMBUAT DATABASE DAN TABLE
Buat database baru dan letakkan di dalam folder Bin.
Dan beri nama “tes.mdb“. Buat satu buah table, dengan nama ”DataKu” dengan desain table sebagai berikut :
III. DESIGN & CODING
Ganti properties form seperti pada tabel dibawah ini.
BackColor AliceBlue FormBorderStyle Fixed3D Text Import Name F_Import StartPosition CenterScreen Size 826, 466
Lalu tambahkan komponen-komponen dibawah ini kedalam form
No Nama Komponen Jumlah
1 Label 2
2 TextBox 3
3 DataGrid 2
4 Button 6
5 OpenFileDialog 1
Mengganti properties masing-masing komponen • Label
No Nama Label Teks Label
1 Label1 Sheet Name 2 Label2 Table Name • TextBox
No Nama TextBox Properties
Text kosongkan 1 TextBox1 Name txtFileName Text Sheet1 2 TextBox2 Name txtSheet Text kosongkan 3 TextBox3 Name txtAlamat Text kosongkan 4 TextBox4 Name txtTable • Button
No Nama Button Properties
BackColor Transparent FlatStyle Flat Text Load 1 Button1 Name btnLoad BackColor Transparent FlatStyle Flat
Text View Excel Data
2 Button2
Name btnView
BackColor Transparent FlatStyle Flat
Text Clear Excel Grid 3 Button3
FlatStyle Flat
Text Import Data
Name btnImport
BackColor Transparent FlatStyle Flat
Text View Access Data 5 Button5
Name btnView2
BackColor Transparent FlatStyle Flat
Text Clear Access Grid 6 Button6
Name btnClear2
• OpenFileDialog
Properties
Filter Microsoft Office Excel|*.xls RestoreDirectory True
Menambahkan Class Pada Project
Sebelum kita mulai membuat listing pada form, terlebih dahulu kita membuat koneksi pada database.
Sebelumnya Buat folder pada project yang anda buat (Klik kanan project>Add>New Folder) dan beri nama “AccessData”. Selanjutnya didalam Folder tersebut tambahkan Class dengan nama “DataBaseConnection.vb” (Klik kanan Folder “AccessData”>Add>Add Class). Ketikan listing di bawah ini pada class yang baru anda buat.
Sekarang aktifkan form Import, dan masuk ke jendela Code. Ketikkan sintaks dibawah ini di awal baris.
Imports System.Data Imports System.Data.OleDb Imports System.Data
Imports System.Data.OleDb
Namespace AccessData
Public Class DatabaseConnection Dim conect As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=tes.mdb;")
Public Function open() As OleDbConnection conect.Open()
Return conect End Function
Public Function close() As OleDbConnection conect.Close()
Return conect End Function End Class
Dan ketikkan listing-listing seperti di bawah ini.
#Region "Deklarasi"
Dim MyConnection As New AccessData.DatabaseConnection Dim objConnection As OleDbConnection
Dim objCommand As OleDbCommand
Dim objDataAdapter As OleDbDataAdapter Dim strSQL As String
Dim objDataSet As New DataSet
Dim objDataTableExcel As New DataTable Dim objDataTableAccess As New DataTable Dim Field1, Field2, Field3 As String #End Region
Sub DeleteTable()
'Menghapus seluruh data pada table didalam Access
strSQL = "Delete From" & "[" & Trim(txtTable.Text) & "]" & " ;" objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open() objCommand.CommandType = CommandType.Text objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "mdt_Delete") MyConnection.close()
Klik ganda button Load dan ketik sintaks di bawah ini.
Klik ganda button View dan ketik sintaks di bawah ini. Sub import()
DeleteTable() Dim i As Integer
'Melakukan pengulangan berdasarkan baris 'yang ada pada Excel
For i = 0 To (objDataTableExcel.Rows.Count - 1) Try
'Menampilkan data dan di tampung 'Pada Variable berdasarkan baris With objDataTableExcel.Rows(i) Field1 = .Item(0)
Field2 = .Item(1) Field3 = .Item(2) End With
'Melakukan penginputan data dari variable 'Kedalam tabel pada Access
strSQL = "Insert Into " & "[" & Trim(txtTable.Text) & "]" & "(Field1, Field2, Field3) Values " & _
" (" & Field1 & ",'" & Field2 & "','" & Field3 & "'); " objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open objCommand.CommandType = CommandType.Text objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "mdt_Import") MyConnection.close()
Catch When Err.Number <> 0
MsgBox("Tidak dapat membuat hubungan ke database" _ & vbCrLf & Err.Description)
Exit Sub End Try Next i
MsgBox("Import Finish", MsgBoxStyle.Information, "Import Data") End Sub
'Mencari file (.xls) yang akan dibuka OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
txtFileName.Text = OpenFileDialog1.FileName End If
Klik ganda button Clear, ketik sintaks dibawah ini
Klik ganda button Import, ketik sintaks dibawah ini 'Jika textbox Sheet = kosong
If txtSheet.Text = "" Then
MsgBox("Masukkan nama Sheet pada Excel", MsgBoxStyle.Exclamation, "Import Data")
Exit Sub End If
Dim tbl As String tbl = txtSheet.Text
'Koneksi ke file Excel yang di tunjuk
Dim strConn As String = "Provider=Microsoft.Jet.OleDb.4.0;data source=" & txtFileName.Text & ";Extended Properties=Excel 8.0;"
Dim objConn As New OleDbConnection(strConn)
Try
objDataTableExcel.Clear()
'SQL Menampilkan data pada Excel
strSQL = "Select * " & " From " & "[" & tbl & "$" & "]" objCommand = New OleDbCommand
objCommand.Connection = objConn
objCommand.CommandType = CommandType.Text objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand) objDataAdapter.Fill(objDataSet, "mdt_show")
objDataTableExcel = objDataSet.Tables("mdt_show") objConn.Close()
'Data di tampung pada Datagrid
DataGrid1.DataSource = objDataTableExcel DataGrid1.ReadOnly = True
Catch ex As Exception MsgBox(ex.Message)
End Try
'Mengkosongkan Datagrid1 (Data Excel) objDataTableExcel.Clear()
DataGrid1.DataSource = objDataTableExcel DataGrid1.ReadOnly = True