Membuat Koneksi Database Access menggunakan Visual Basic 6.0Untuk menjadi Programmer kita harus menguasai beberapa coding dasar dari sebuah koneksi yang sederhana. Dalam kesempatan ini saya akan membahas coding koneksi menggunakan Access yang merupakan program aplikasi database dasar yang sering digunakan di lingkungan perkantoran.
Database latihan :
Tabel barang
Kode barang
Nama barang
Harga beli
Harga jual
stok
satuan
Sebenarnya dalam pembuatan table diatas tidak terlalu diperlukan dalam pembahasan ini tetapi hanya untuk informasi belaka. Untuk memberi penjelasan kepada pembaca.Yang harus diperhatikan dalam materi ini adalah pemahaman dari coding koneksi itu sendiri.Yang pertama dilakukan adalah membuat module dahulu untuk pemanggilan koneksi dari database.Setelah membuat koneksi masukan coding sebagai berikut :
Public cn As New ADODB.Connection
Public Sub BukaDB()
Dim koneksi As String
koneksi = “provider=microsoft.jet.oledb.4.0; Data source= ” & App.Path & “\latihan.mdb;”
cn.Open koneksi
End Sub
Perhatikan kode diatas, jangan sampai asal menulis saja tetapi anda harus bisa memahaminya dengan benar, yang pertama yaitu
Public cn As New ADODB.Connection
Berfungsi untuk membuat variable bersifat public menggunakan ADODB
Dim koneksi As String
Berfungsi untuk membuat variable bersifat private bertipe string
koneksi = “provider=microsoft.jet.oledb.4.0; Data source= ” & App.Path & “\latihan.mdb;”
Merupakan kode utama dari koneksi yang dibutuhkan. Yang pertama menggunakan provider Microsoft jet oledb 4.0 yang memanggil data source/sumber data dari database latihan.mdb
cn.Open koneksi
Visual Basic ? programmer mana sih yang nggak kenal sama tool yang satu ini?
nggak usah saya sebutin apa itu Visual Basic.
Lalu Ms Access, sebuah aplikasi yang menangani database, aplikasi ini biasanya sudah satu paket dengan Microsoft Office Aplication.
Keduanya merupakan keluarga besar keturunannya Om Bill Gates. Sebagai satu keluarga maka wajarlah bila satu sama lain dapat dikombinasikan untuk saling melengkapi.
lalu mengapa aku pake judul diatas ?
Sebagai tool programming yang powerful, Visual Basic kaya akan library-library yang mendukung pengelolaan database Ms Access, meski banyak jenis data lain yang didukung (txt, xls, xml, mysql dll)
Banyak sekali aplikasi VB jadi, baik mass product maupun rancangan software house yang menggunakan Ms Access sebagai basis datanya. Dengan demikian kemampuan VB dalam mengelola database Ms Access tidak diragkan lagi.
Lalu Ms Access sendiri, adalah sebuah RDBMS (relational database management system ) yang terintegrasi dalam satu file. didalam Ms access kita sudah dapat mendefinisikan tabel, query, relation, bahkan form dan report.
Kehebatan Ms Access adalah kita dapat menyusun aplikasi secara interaktif dan profesional dengan bantuan Visual Basic for Aplication (VBA).
VBA itu apa to ? mbuh lah, lha wong saya juga nggak terlalu mudeng, tapi kayaknya tuh semacam Visual Basic yang sudah terintegrasi dengan Office Aplication (Ms Excel, Word, MS Access).
Jadi didalam Ms Access kita dapat menyisipkan kode-kode VB (misalnya di dalam form dan report) agar lebih powerfull dalam mengelola database.
Menurut saya sebenarnya ‘kekuatan’ utama Ms Access adalah VBA itu sendiri, disamping integrasi yang sangat bagus dengan aplikasi office saudaranya.
Kesimpulannya, Kita dapat membuat aplikasi pengelolaan database dengan Visual Basic yang berbasis data Ms Access, juga bisa dengan ‘pure’ Ms Access Aplication yang di bumbui dengan VBA.
lalu gimana enaknya mas djmumun ?
Relatif sih. Bagi para suhu - suhu VB mungkin tertawa dengan dengan tulisan ini. Bagaimanapun dengan Visual Basic, anda dapat membuat aplikasi yang lebih kompleks. Fitur Installer yang bagus sehingga kita bisa membuat aplikasi standalone, tanpa tergantung dengan aplikasi lain .
tapi bagi saya bila database Ms-Access (bukan data berbasis yang lain, mis mysql, oracle, dll) yang menjadi point utama, mending langsung pake Ms Access aja.
fitur - fitur nya yang interaktif dan user friendly, -apalagi dengan wizard-wizardnya - sangat membantu saya dalam membuat aplikasi secara ’sedap sekejap’.
Kalo masih kurang puas dengan wizard yang ada (biasa nih.. penyakit) anda dapat mengoprek dengan memberi kode - kode VBA.
Buka aja Visual Basic Editor, silahkan tuliskan kode - kode (kebanyakan saya sih cuman kopi paste . . . ), dan lihatlah aplikasi ms access anda nggak kalah dengan yang buatan Visual Basic.
kendalanya mungkin dalam distribusinya.
komputer pemakai musti terinstall minimal Microsoft Access Runtime atau Microsoft Office profesional
Jumat, 25 September 2009
VB WITH MS ACCESS OR MS ACCESS WITH VB ?
KONEKSI VB DENGAN MS.ACCESS
2. Klik kanan di area kosong dan pilih New--> Text Document
3. Kemudian abaikan untuk mengubah namanya (langsung enter saja).
4. Setelah itu, jalankan file text document itu tadi (biasanya akan
masuk ke notepad) dan pilih save as dengan nama file terserah anda
tetapi extensionnya gunakan *.udl
c:/ con.udl
5. Jika berhasil, maka di folder/drive itu akan muncul sebuah file baru
dengan extension udl. (File text document nya bisa anda hapus).
6. Jalankan file *.udl itu. Pada bagian tab "Provider" pilih provider
dengan nama : "Microsoft Jet 4.0 OLE DB Provider" (Ini provider untuk
database Ms Access). Lalu klik tombol Next
7. Pada tab "Connection", silahkan cari database access anda dengan
mengklik tombol browse (...) disebelah kanan. Lalu tekan tombol "Test
Connection", jika berhasil maka akan ada pesan bahwa test koneksi
berhasil, jika tidak biasanya database access yang anda pilih sedang
digunakan (coba tutup dulu saja). Selanjutnya klik tombol OK.
8. Kembali menuju file *.udl yang tadi. Sekarang klik kanan file
tersebut dan pilih Open With --> Notepad.
9. Setelah notepad terbuka anda akan melihat ada 3 baris isi dari file
tersebut. Yang akan anda gunakan untuk menghubungkan VB 6 dengan Ms
Access adalah ada pada baris ke-3. Oleh karena itu silahkan copy seluruh
baris ke tiga tersebut. (Dimulai dari tulisan provider sampai akhir baris).
----------------------------------------------------------
--Coding di VB6--
1. Pada source code vb 6 anda, silahkan pilih menu Project -->
References. Lalu cari "Microsoft ActiveX Data Objects 2.x Library".
Maksud dari 'x' disamping adalah versinya. Biasanya ada v 2.1, 2.2, 2.3,
dst. Saran saya pilih versi dibawah satu versi yang tertinggi. Misal yg
tertinggi 2.6 maka biasanya saya memilih yang 2.5 (Soalnya waktu saya
lihat di bagian Location nya (ada dibagian bawah) yang versi tertinggi
memiliki versi file yang lebih rendah. Misalnya v 2.6 filenya
"msado15.tlb" sedangkan yg v 2.5 filenya "msado25.tlb". Saya sendiri
masih bingung dengan hal ini. Jadi sebaiknya anda memilih satu versi
dibawah versi tertinggi.
2. Kemudian untuk lebih mudahnya, anda bisa tambahkan sebuah modul dalam
source code vb 6 anda. Dan tuliskan coding dibawah ini:
~~~~~~~~~~~~~~~~~Batas Awal Coding~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Public con As New ADODB.Connection
Public rs As ADODB.Recordset
Public src As String*
*Sub BukaKoneksi()
Set con = New ADODB.Connection
con.Open "(baris ke 3 yang anda copy tadi tanpa tanda kurung)"*
' contohnya : con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\My Documents\My Project\Proyek Keni\db_blackcute.mdb;Persist
Security Info=False"
' untuk flexibilitas program anda, sebaiknya anda pindahkan
database anda menjadi satu folder dengan source code vb6 anda. Jika anda
mengikuti saran saya, maka
' coding untuk koneksi sedikit diubah menjadi :
'* con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
app.path & "\db_blackcute.mdb;Persist Security Info=False*
' dengan demikian dimanapun anda jalankan program anda maka anda
tidak perlu mengkonfigurasi secara manual lokasi databasenya.
*End Sub
Sub buka_rs()
Set rs = New ADODB.Recordset
rs.Open src, con, 1, 3
End Sub*
~~~~~~~~~~~~~~~~~~~~Batas Akhir Coding~~~~~~~~~~~~~~~~~~~~~~~~~~~
3. Setelah coding diatas anda masukkan ke dalam modul. Maka sekarang
anda sudah bisa bermain-main dengan database access anda melalui VB 6.
4. Contoh penggunaannya :
* Private Sub Form_Load()*
*BukaKoneksi* 'untuk membuka jalur komunikasi dengan
database anda
*src = "" * from MsBarang"* 'perintah sql untuk
membuka/memanipulasi tabel pada database anda
*buka_rs* 'menjalankan perintah sql diatas.
*end sub*
5. Jadi yang perlu anda perhatikan dalam coding diatas adalah, sub
"BukaKoneksi" pada modul hanya akan kita letakkan pada Form_Load di
masing-masing form. Sedangkan untuk variabel 'src' dan sub "buka_rs"
bisa anda gunakan dimanapun dalam source code vb 6 anda untuk
membuka/memanipulasi tabel2 yang ada di database anda. Ingat !! variabel
'src' selalu bergandengan dengan sub "buka_rs". Karena sub "buka_rs"
membutuhkan isi dari variabel 'src' untuk melakukan tugasnya.
Rabu, 02 September 2009
Rabu, 05 Agustus 2009
Arsitektur tersentralisasi : implementasinya adalah pemrosesan data yang terpusat. Semua pmrosesan dilakukanoleh komputer yang ditempatkan dalam suatu lokasi untuk melayani semua pemakai dalam organisasi.
Arsitektur terdistribusi : Lokasi komponen di suatu tempat atau tidak.
Arsitektur client/server : Server adalah suatu sistem yang menyediakan data/layanan yang diminta oleh client.Server dapat berupa komputer atau piranti lain misalnya printer. Client mempunyai kemampuan untuk melakukan proses sendiri. Ketika sebuah client meminta suatu data ke server,server akan segera menanggapinya
Minggu, 12 April 2009
Sabtu, 11 April 2009
IF YOU LOVE SOMEONE
If you love someone,
Set her free...
If she comes back, she's yours,
If she doesn't, she's never was....
The New Versions.....
Pessimist:
If you love someone,
Set her free ...
If she ever comes back, she's yours,
If she doesn't, as expected, she's never was ...
Optimist:
If you love someone,
Set him free ...
Don't worry, he will come back.
Suspicious:
(1) If you love someone,
Set him free ...
If he ever comes back, ask him why.
(2) If you love someone,
Set her free ... but get someone to follow her
(3) If you love someone,
...
are you sure you love that someone?
Go-getter:
If you love someone,
Set her free ...
If she comes back, she's yours,
If she doesn't, go get her !
Hunter:
If you love someone,
Set him free ...
Don't even wait whether he comes back, go hunt him down !
Impatient:
If you love someone,
Set him free ...
If he doesn't comes back within some timeout, forget him.
Patient:
If you love someone,
Set him free ...
If he doesn't comes back, continue to wait until he comes back ...
Playful:
If you love someone,
Set her free ...
* If she comes back, and if you love her still, set her free again,
* repeat *
Student in the midst of an exam period:
If you love someone,
Set him free ...
If he comes back during the exam period, set him free again, and go and study ...
If he doesn't comes back during the exam period, god bless.
If he doesn't comes back at all, god bless you too.
Bo-chap:
If you love someone,
Set him free...
If he comes back, he's yours,
If he doesn't, he's never was.... :)
Kamis, 19 Maret 2009
Form=SimpleSnake.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINDOWS\system32\stdole2.tlb#OLE Automation
Startup="Form1"
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="."
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
[MS Transaction Server]
AutoRefresh=1
Jumat, 13 Maret 2009
calendar
Dim i As Integer
Private Sub cmdGenerate_Click()
On Error GoTo Error_handle 'On error, goto to end of function
days = 0
For i = 0 To 34
Label1(i).Caption = "" 'Clear all the labels
Next i
For i = 1900 To txtYear.Text - 1
If i Mod 4 = 0 Then 'If leap year then count 366 days
days = days + 366
Else 'else 365 days
days = days + 365
End If
Next i
For i = 1 To txtMonth.Text - 1
If i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12 Then 'For January,March,May....,December count 31 days
days = days + 31
ElseIf (i = 4 Or i = 6 Or i = 9 Or i = 11) Then 'For April,June,September,November count 30 days
days = days + 30
ElseIf (i = 2 And txtYear.Text Mod 4 = 0) Then 'If month is February and year is leap year count 29 days
days = days + 29
Else 'If month is February and year is not a leap year, count 28 days
days = days + 28
End If
Next i
If (i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12) Then
show_calender 31 'Show calender with 31 days
ElseIf (i = 4 Or i = 6 Or i = 9 Or i = 11) Then
show_calender 30 'Show calender with 30 days
ElseIf (i = 2 And txtYear.Text Mod 4 = 0) Then
show_calender 29 'Show calender with 29 days
Else
show_calender 28 'Show calender with 28 days
End If
Error_handle:
End Sub
Private Function show_calender(n As Integer) '//<- n stores the number of days to display
Dim i, k As Integer
k = days Mod 7 'Divide days with 7, the remainder give the current day
For i = 1 To n
Label1(k).Caption = i 'Display the number in calender format
k = k + 1
If k = 35 Then k = 0
Next i
End Function
Kamis, 26 Februari 2009
Option Explicit
Private Hasil As Double
Private Const opNol = 0
Private Const opTambah = 1
Private Const opKurang = 2
Private Const opKali = 3
Private Const opBagi = 4
Private Operator As Integer
Private NilaiBaru As Boolean
' untuk menghapus karakter terakhir
Private Sub Hapus()
Dim txt As String
Dim min_len As Integer
txt = txtDisplay.Text
If Left$(txt, 1) = "-" Then
min_len = 2
Else
min_len = 1
End If
If Len(txt) > min_len Then
txtDisplay.Text = Left$(txt, Len(txt) - 1)
Else
txtDisplay.Text = "0"
End If
End Sub
' hapus angka, hasil terakhir dan operator
Private Sub cmdClear_Click()
cmdClearEntry_Click
Hasil = 0
Operator = opNol
End Sub
' hapus angka
Private Sub cmdClearEntry_Click()
txtDisplay.Text = ""
End Sub
' menambahkan koma (desimal)
Private Sub cmdKoma_Click()
If InStr(txtDisplay.Text, ".") Then
Beep
Else
If NilaiBaru Then
txtDisplay.Text = "."
NilaiBaru = False
Else
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
End Sub
' Menghitung
Private Sub cmdSamaDengan_Click()
Dim HasilBaru As Double
If txtDisplay.Text = "" Then
HasilBaru = 0
Else
HasilBaru = CDbl(txtDisplay.Text)
End If
Select Case Operator
Case opNol
Hasil = HasilBaru
Case opTambah
Hasil = Hasil + HasilBaru
Case opKurang
Hasil = Hasil - HasilBaru
Case opKali
Hasil = Hasil * HasilBaru
Case opBagi
'Tidak bisa dibagi nol
If HasilBaru = 0 Then
MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"
Call cmdClear_Click
Else
Hasil = Hasil / HasilBaru
End If
End Select
Operator = opNol
NilaiBaru = True
txtDisplay.Text = Format$(Hasil)
End Sub
' menuliskan angka
Private Sub cmdAngka_Click(Index As Integer)
If NilaiBaru Then
txtDisplay.Text = Format$(Index)
NilaiBaru = False
Else
txtDisplay.Text = _
txtDisplay.Text & Format$(Index)
End If
End Sub
' tombol tambah/kurang/bagi/kali
Private Sub cmdOperator_Click(Index As Integer)
cmdSamaDengan_Click
Operator = Index
NilaiBaru = True
End Sub
' merubah tanda +/-
Private Sub cmdPlusMinus_Click()
If NilaiBaru Then
txtDisplay.Text = "-"
ElseIf Left$(txtDisplay.Text, 1) = "-" Then
txtDisplay.Text = Right$(txtDisplay.Text, 2)
ElsetxtDisplay.Text = "-" & txtDisplay.Text
End If
End Sub
' filter untuk angka saja yg dapat diketikkan
Private Sub Form_KeyPress(KeyAscii As Integer)
txtDisplay_KeyPress KeyAscii
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay_KeyUp KeyCode, Shift
End Sub
' supaya kursor tetap di kanan
Private Sub txtDisplay_Change()
txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub
Private Sub txtDisplay_GotFocus()
txtDisplay_Change
End Sub
' untuk mengetikkan angka di keyboard
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String
ch = Chr$(KeyAscii)
Select Case ch
Case "0"
cmdAngka_Click 0
Case "1"
cmdAngka_Click 1
Case "2"
cmdAngka_Click 2
Case "3"
cmdAngka_Click 3
Case "4"
cmdAngka_Click 4
Case "5"
cmdAngka_Click 5
Case "6"
cmdAngka_Click 6
Case "7"
cmdAngka_Click 7
Case "8"
cmdAngka_Click 8
Case "9"
cmdAngka_Click 9
Case "*", "x", "X"
cmdOperator_Click opKali
Case "+"
cmdOperator_Click opTambah
Case vbCrLf, vbCr, "="
cmdSamaDengan_Click
Case "-"
cmdOperator_Click opKurang
Case "."
cmdKoma_Click
Case "/"
cmdOperator_Click opBagi
Case "C", "c"
cmdClearEntry_Click
End Select
KeyAscii = 0
End Sub
' untuk ketikan angka di numpad
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
cmdAngka_Click 0
Case vbKeyNumpad1
cmdAngka_Click 1
Case vbKeyNumpad2
cmdAngka_Click 2
Case vbKeyNumpad3
cmdAngka_Click 3
Case vbKeyNumpad4
cmdAngka_Click 4
Case vbKeyNumpad5
cmdAngka_Click 5
Case vbKeyNumpad6
cmdAngka_Click 6
Case vbKeyNumpad7
cmdAngka_Click 7
Case vbKeyNumpad8
cmdAngka_Click 8
Case vbKeyNumpad9
cmdAngka_Click 9
Case vbKeyMultiply
cmdOperator_Click opKali
Case vbKeyAdd
cmdOperator_Click opTambah
Case vbKeySeparator
cmdSamaDengan_Click
Case vbKeySubtract
cmdOperator_Click opKurang
Case vbKeyDivide
cmdOperator_Click opBagi
Case vbKeyDecimal
cmdKoma_Click
Case vbKeyBack, vbKeyDelete
Hapus
End Select
KeyCode = 0
End Sub