• Tidak ada hasil yang ditemukan

STEP BY STEP MENJADI PROGRAMMER HANDAL DENGAN VB.NET

N/A
N/A
Protected

Academic year: 2021

Membagikan "STEP BY STEP MENJADI PROGRAMMER HANDAL DENGAN VB.NET"

Copied!
191
0
0

Teks penuh

(1)

STEP BY STEP MENJADI

PROGRAMMER HANDAL

DENGAN VB.NET

Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.com

STEP 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.

(2)

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

(3)

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.

(4)

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.

(5)

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.

(6)

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 *

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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)

(19)

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

(20)

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)

(21)

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"

(22)

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

(23)

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()

(24)

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

(25)

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()

(26)

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.

(27)

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

(28)

STEP BY STEP MENJADI

PROGRAMMER HANDAL

DENGAN VB.NET

Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.com

STEP 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.

(29)

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 :

(30)

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.

(31)

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.

(32)

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

(33)

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 =Z

Dan ditambah ALL Selected = True Text = ALL Value = *

(34)

IV. DESAIN REPORT

Buat sebuah folder di project anda dan beri nama “Report” . Lalu buat sebuat report di dalam Folder Report

(35)

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.

(36)
(37)

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 :

(38)

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.

(39)

Click tanda + pada OLE DB (ADO)

Akan muncul tampilan seperti di atas, lalu pilih “Microsoft Jet 4.0 OLE DB Provider”, dan click Next.

(40)
(41)

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 :

(42)

Dan click OK.

Tampilan Database Fields akan berubah seperti gambar diatas (Terdapat Q_Customers beserta field-fieldnya).

(43)

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.

(44)

Untuk membuat field PrintDate dan PageNumber klik kanan pada area Page Footer (Section5).

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

STEP BY STEP MENJADI

PROGRAMMER HANDAL

DENGAN VB.NET

Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.com

STEP 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.

(55)

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.

(56)

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.

(57)

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..

(58)

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

(59)

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)

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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”

(65)

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

(66)

STEP BY STEP MENJADI

PROGRAMMER HANDAL

DENGAN VB.NET

Junindar Blog : http://junindar.blog.com E-Mail : xx_lead@yahoo.com junindar@gmail.com

STEP 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.

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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()

(72)

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

(73)

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

Gambar

Gambar Flash Form
Gambar Desain Form Login
Gambar Design Form Stopwatch
Gambar Design Form
+7

Referensi

Dokumen terkait

21 Batasan masalah pada penelitian ini adalah kebijakan Rusia dalam mengelola dan mempertahankan wilayah Arktik sebagai basis strategi sumber daya dan pertahanan

PJJ Peringgan III mengadakan PJJ Online dengan menggunakan aplikasi ZOOM pada hari Senin tanggal 25 Januari 2021 jam 19.00 wib... PJJ Peringgan IV mengadakan PJJ Online

Penelitian ini bertujuan untuk mengetahui prevalensi nyeri lutut akut pada pengemudi taksi laki-laki, mengetahui hubungan antara faktor individu (usia, pendidikan, status

1) Utang yang telah ada artinya besarnya utang yang telah ditentukan dalam perjanjian kredit. 2) Utang yang akan ada tetapi telah diperjanjikan dengan jumlah

Alasan : untuk mengetahui apakah ada kesulitan yang dihadapi oleh quality control dalam tugas yang dijalani pada proses pembuatan produk. Bagaimana proses dalam

Saya bersedia menerima keputusan hasil penilaian kemampuan dan kepatutan dan tidak akan mengajukan tuntutan atau gugatan dalam bentuk apapun terhadap hasil penilaian

Offshore Construction Survey Support Services Offshore Pasuruan, Indonesia Apr 2016 - Jul 2016 Offshore Construction Specialists Pte Ltd / Husky Cnooc Madura Ltd - 9

penambangan. Dampak dari pencucian tanah menghasilkan limbah sehingga me air sungai yang diperuntukan untuk proses pengairan sawah menjadi tercemar oleh hasil pencucian