Sabtu, 29 Oktober 2011

Prefix Dalam Field AutoNumber

Cara Menambahkan Prefix Dalam Field AutoNumber

Seperti yang kita tahu, Tipe Data AutoNumber itu selalu berisi :
1,2,3,....10,11,12.....100,101,102....1000,1001,1002...dst...
Ada kalanya kita ingin menggunakan Type Data AutoNumber untuk sebuah field, namun dengan Prefix/Penambahan Huruf/Kata diawalnya, misalnya kita ingin datanya dengan format seperti AB0001, untuk data seperti ini kita tinggal mengedit field yang bertipe data AutoNumber dalam Tabel yang kita miliki. Namun yang perlu diingat adalah Format itu bukanlah menggambarkan data yang sebenarnya, format hanya berupa tampilannya saja, dimana pada dasarnya untuk tipe data Autonumber maka datanya adalah 1,2,3,4,5 dan seterusnya. Hal ini seperti dalam Form, jika kita mensetting Format property (misalnya pada Textbox), menjadi format Medium Date, tampilan Medium Date tersebut hanya pada tampilannya saja, hal ini bisa anda lihat atau buktikan dengan memanggil nilai dari textbox tersebut (misalnya) menggunakan MsgBox. Contohnya jika dalam TextBox1 kita atur format propertinya menjadi Medium Date sehingga (misalnya lagi) datanya akan tampak seperti 01-Jan-12, akan tetapi jika kita panggil menggunakan MsgBox maka hasilnya akan menjadi 1/1/2012 (kecuali jika menggunakan perintah .Text), dan begitu pula dengan tipe data dalam table yang berupa autonumber, jika kita gunakan Prefiks, lalu kita coba panggil datanya (misalnya) menggunakan fungsi DLookUp, maka data yang akan didapatkan adalah nomornya saja tanpa Prefiksnya. Jadi jika anda ingin datanya tetap konstan dengan Prefiks, penulis sarankan untuk menggunakan tipe data text saja, lalu gunakan seluruh kemampuan anda (agak lebay dikit) untuk membuat data dalam field tersebut menjadi data dengan prefiks dan nomor yang berurutan. Namun jika hanya sebatas tampilannya saja, maka anda bisa gunakan trik berikut ini yaitu menambahkan prefiks pada field autonumber.

Caranya adalah sebagai berikut :
Sewaktu kita membuat Tabel dan memilih Tipe Data AutoNumber pada sebuah Field, kita edit juga Field Format pada Tab General dibagian bawah, lalu ketikkan "AB"0000, atau tergantung dari keinginan anda. Pada contoh dibawah ini penulis ingin agar format dari autonumber untuk field CodeUrut adalah AB0001, AB0002, AB0003 dan seterusnya. anda bisa menyesuaikannya dengan apa yang anda inginkan.

Lihat contoh dalam gambar dibawah ini :
Format AutoNumber Dengan Prefix
Keterangan :
  • "AB" berarti Prefix untuk semua data dalam field adalah AB, dimana semua data dalam Field tersebut akan berawalan AB.
  • 0000 berarti jumlah karakter angka dalam field, dimana dalam contoh ini akan ada 4 karakter angka setelah Prefix, sehingga datanya akan menjadi AB0001, AB0002, AB0003 dst....
Pada gambar diatas yang berupa prefiks adalah AB, sedangkan nomor urutnya adalah 0000, anda harus menggunakan tanda petik dua (") untuk membuat prefiks, lalu diikuti dengan karakter 0 (nol) untuk menentukan berapa jumlah karakter dari nomor urutnya. Pada contoh diatas penulis menentukan jumlah karakter dari nomor urutnya adalah 4 yang ditandai dengan 4 angka 0 (nol) -> 0000



Refference : databasedev

Semoga Bermanfaat...

Sabtu, 22 Oktober 2011

Event Not In List Combo Box

PENGGUNAAN EVENT NOT IN LIST COMBO BOX

Sebelum masuk ke bahasan event Not In List, tidak ada salahnya untuk penulis sampaikan terlebih dahulu mengenai Combo box, ComboBox adalah perpaduan antara TextBox dan ListBox, jika TextBox kita bisa menambah data, namun kita tidak bisa memilih data yang telah ada dalam table atau query, ListBox adalah sebuah daftar yang bisa berasal dari table atau query, ataupun berisi daftar nilai/value tersendiri, anda tidak bisa menambahkan data baru kedalam ListBox, karena ListBox hanya berisi nilai/value tanpa bisa untuk menambah data (keculai dengan trik-trik khusus). Sedangkan ComboBox adalh perpaduan keduanya, dimana dengan Combo Box, kita bisa mendapatkan fitur-fitur dalam TextBox dan ListBox, kita bisa menambahkan data baru kedalam table menggunakan Combo Box (seperti TextBox), dan juga bisa menampilkan sebagian atau seluruh data yang telah ada dalam table. Untuk menambahkan data baru kedalam table menggunakan ComboBox, salah satu caranya adalah dengan menggunakan Event Not In List, seperti yang akan penulis sampaikan dibawah ini.

Pada event Not In List kita bisa menentukan apa yang harus dilakukan jika seorang user memasukkan data  yang tidak terdaftar dalam Combo Box. Untuk menggunakan event ini, property dari Combo box Limit To List harus diset menjadi Yes.
Kita bisa memberikan sebuah pertanyaan kepada user untuk memasukkan data yang diinputnya kedalam daftar Combo Box atau kita bisa "memaksa" user untuk hanya memilih data berdasarkan daftar dalam Combo Box.
Jika kita mengijinkan user untuk menambah data yang tidak terdaftar dalam Combo Box, maka Code yang kita butuhkan adalah statement Insert Into dan Response acDataErrAdded.
Jika kita ingin "memaksa" user untuk hanya memilih data yang terdaftar dalam Combo Box maka kita tidak memerlukan statement-statement VBA yang lumayan ngejelimet, karena yang kita butuhkan hanyalah Response acDataErrContinue
Contohnya :

Jika kita mengijinkan untuk menambah data :
Private Sub ComboBox1_NotInList(NewData As String, Response As Integer)
Dim strSql As String
Dim strMsg As String
strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
strMsg = strMsg & "Apakah anda yakin ingin menambah data '" & NewData & "' ?"
If MsgBox(strMsg, vbQuestion + vbYesNo) = vbYes Then
strSql = "Insert Into Nama_Tabel ([Field Dalam Tabel]) " & "values ('" & NewData & "');"
CurrentDb.Execute strSQL, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub

Jika kita "memaksa" user untuk memilih data dalam daftar :
Private Sub ComboBox1_NotInList(NewData As String, Response As Integer)
Dim strMsg As String
    strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
    strMsg = strMsg & "Silahkan pilih yang telah terdaftar."
    MsgBox strMsg
    Response = acDataErrContinue
End Sub

Yang perlu diingat event Not In List akan mengabaikan Null value, jadi untuk mencegah Null maka kita bisa menggunakan event After Update.

Untuk file contoh penggunaan event Not In List Combo Box bisa didownload dari 4shared

Semoga Bermanfaat....

Sabtu, 15 Oktober 2011

Fungsi Select Case

Fungsi Select Case adalah fungsi alternatif dari fungsi If...Then...Else/ElseIf...
Dengan fungsi Select Case kita lebih dipermudah dalam menangani sebuah event yang memiliki banyak kriteria/nilai dari sebuah Field. Dengan kata lain jika kita tidak memahami fungsi Select Case maka kita akan menuliskan code If...Then...Else/ElseIf... berulang-ulang (tergantung dari jumlah kriteria/nilai dari Field yang menjadi acuan kita). Misalnya ada sebuah Textbox yang memiliki Sumber data dari sebuah ComboBox, dan value/nilai dari ComboBox berjumlah 5 data, jika kita menggunakan fungsi If..Then...Else/ElseIf... maka kita harus mengulang fungsi If...Then...Else/ElseIf... sebanyak 5 kali pula. Fungsi select case akan memudahkan kita dalam mengatur kondisi-kondisi tersebut, karena penulisan statementnya sangat mudah, kita hanya tinggal menentukan kondisi-kondisinya saja lalu memasukkan kondisi hasilnya. Berbeda dengan fungsi If then Else atau If Then ElseIf, yang "mengharuskan" kita untuk benar-benar memikirkan kondisi-kondisi yang harus mendapatkan "prioritas" untuk dituliskan pertama agar kondisi-kondisinya tidak saling "tumpang tindih", dalam arti kondisi-kondisi tersebut tidak boleh saling bertolak belakang, misalnya anda tempatkan IsNull di akhir EleIf, hal ini akan menyebabkan error atas fungsi anda, karena seharusnya fungsi IsNull diletakkan pada bagian awal dari fungsi If. Namun tidak demikian halnya dengan fungsi Select Case, karena fungsi Select Case akan membuat access secara otomatis mencari kondisi yang paling sesuai pada statement Select Case tersebut atas keadaan yang sedang terjadi.

Struktur dari Fungsi Select Case adalah :
Select Case <Nama Fungsi/Field Acuan>
Case <Pertama>
<Value/Nilai yang diinginkan>
Case <Kedua>
<Value/Nilai yang diinginkan>
Case <Ketiga>
<Value/Nilai yang diinginkan>
Case <Keempat>
<Value/Nilai yang diinginkan>
dan seterusnya...
Case Else
<Value/Nilai yang diinginkan>
End Select

Contohnya :
Jika Menggunakan Fungsi If...Then...Else/ElseIf :
If Me.ComboBox1.Column(1) = "1" Then
TextBox1= "Januari"
ElseIf Me.ComboBox1.Column(1) = "2" Then
Textbox1= "Februari"
ElseIf Me.ComboBox1.Column(1) = "3" Then
Textbox1= "Maret"
ElseIf Me.ComboBox1.Column(1) = "4" Then
Textbox1= "April"
ElseIf Me.ComboBox1.Column(1) = "5" Then
Textbox1= "Mei"
ElseIf Me.ComboBox1.Column(1) = "6" Then
Textbox1= "Juni"
ElseIf Me.ComboBox1.Column(1) = "7" Then
Textbox1= "Juli"
ElseIf Me.ComboBox1.Column(1) = "8" Then
Textbox1= "Agustus"
ElseIf Me.ComboBox1.Column(1) = "9" Then
Textbox1= "September"
ElseIf Me.ComboBox1.Column(1) = "10" Then
Textbox1= "Oktober"
ElseIf Me.ComboBox1.Column(1) = "11" Then
Textbox1= "November"
ElseIf Me.ComboBox1.Column(1) = "12" Then
Textbox1= "Desember"
Else
MsgBox "Bukan Nomor Bulan", vbInformation
End If

Jika menggunakan fungsi Select Case :
Select Case ComboBox1.Column(1)
Case Is = 1
TextBox1 = "Januari"
Case Is = 2
TextBox1 = "Februari"
Case Is = 3
TextBox1 = "Maret"
Case Is = 4
TextBox1 = "April"
Case Is = 5
TextBox1 = "Mei"
Case Is = 6
TextBox1 = "Juni"
Case Is = 7
TextBox1 = "Juli"
Case Is = 8
TextBox1 = "Agustus"
Case Is = 9
TextBox1 = "September"
Case Is = 10
TextBox1 = "Oktober"
Case Is = 11
TextBox1 = "November"
Case Is = 12
TextBox1 = "Desember"
Case Else
MsgBox "Bukan Nomor Bulan", vbInformation
End Select

untuk file contoh penggunaan fungsi ini bisa didownload dari 4shared
Semoga bermanfaat...

Sabtu, 01 Oktober 2011

Bound Dan Unbound Form

BOUND FORM DAN UNBOUND FORM

1. BOUND FORM
Bound Form adalah sebuah form yang memiliki Record Source dari Tabel Atau Query atau bahasa indonesianya berarti form yang memiliki sumber data/record dari tabel atau query.
Form jenis ini bisa kita buat dengan menggunakan Wizard dari Access dan memilih Tabel atau query sebagai sumber data/recordnya.
Kelebihan dari form ini adalah kita tidak terlalu repot-repot dalam hal menyimpan, menghapus atau mengedit data, atau hal-hal lain yang berhubungan dengan data/record dari sebuah tabel. Dengan jenis form ini kita dapat dengan mudah untuk membuat event-event tanpa harus dipusingkan dengan bahasa pemrograman, misalnya kita ingin mencari data dengan menggunakan ComboBox atau ListBox, maka kita hanya perlu membuat sebuah ComboBox atau ListBox menggunakan Wizard dan memilih "Find a record on my form based on the value I selected in my combo box". lalu menyesuaikan field-field yang kita butuhkan dalam ComboBox atau ListBox tersebut.
Namun buat penulis, form jenis ini "kurang baik" dalam hal manajemen data, terutama jika kita hanya "membiarkan" code-code yang dibuatkan oleh access seperti apa adanya. Dari pengalaman penulis dengan form jenis ini, penulis selalu mendapatkan data-data atau record-record yang tidak sesuai dengan apa yang penulis mau, karena event-event atau statement-statementnya tereksekusi walaupun user telah mencegah atau mengcancelnya.
Contohnya, jika dalam tabel ada 1 Primary Key dan field tersebut telah terisi dalam form sedangkan field yang lainnya belum terisi lalu kita langsung menutup form maka akan tetap terbuat data/record baru dalam tabel.

2. UNBOUND FORM
Unbound Form adalah form yang tidak memiliki Record Source. Form jenis ini bisa dibuat dengan cara klik dua kali pada Create form in Design view.
Jika anda membuat form jenis ini, maka anda akan harus sedikit bekerja keras dalam hal menuliskan code-code atau script-script untuk event-event dalam form.
Kelebihan form jenis ini salah satunya adalah jika terjadi error atas suatu event, maka tidak akan berpengaruh apa-apa terhadap tabel anda (selama errornya terjadi sebelum dieksekusinya event penyimpanan/pengupdate-an data). Oleh karena itu penulis sarankan jika anda ingin menggunakan form jenis ini, lebih baik anda menempatkan code yang berhubungan dengan simpan, update, dan delete data diakhir code (hal ini untuk berjaga-jaga jika suatu saat terjadi error, maka code simpan, update, atau delete data tidak dieksekusi oleh Access).

Contoh Perbedaan kedua jenis Form diatas dalam hal Penyimpanan Data :
1. BOUND FORM
Dalam form jenis ini untuk menyimpan data, codenya seperti ini :
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

2. UNBOUND FORM
Dalam form jenis ini untuk menyimpan data, contoh codenya seperti ini :
Dim KoneksiDB As ADODB.Connection
Dim DataDB As ADODB.Recordset
Dim strKoneksi As String
Dim dbAplikasi as string

Set KoneksiDB = New ADODB.Connection
dbAplikasi = "c:\Nama Folder\Nama Aplikasi.mdb"
strKoneksi = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbAplikasi
KoneksiDB.Open strKoneksi

'Membuka Tabel yang diinginkan.
    Set DataDB = New ADODB.Recordset
    DataDB.CursorType = adOpenKeyset
    DataDB.LockType = adLockOptimistic
    DataDB.Open "NamaTabel", KoneksiDB, , , adCmdTable

'Menambahkan data kedalam Tabel
DataDB.AddNew
        DataDB!<Nama Field 1 Dalam Tabel> = Me.<Field1 Dalam Form>
        DataDB!<Nama Field 2 Dalam Tabel> = Me.<Field2 Dalam Form>
        DataDB!<Nama Field 3 Dalam Tabel> = Me.<Field3 Dalam Form>
        DataDB.Update

MsgBox "Data Berhasil Disimpan.", vbInformation

DataDB.Close
KoneksiDB.Close

Anda bisa melihat perbedaan diatas dalam hal code-code yang dibutuhkan untuk menyimpan data, untuk form dengan jenis Bound Form, maka codenya sangat simple dan coe tersebut tidak dapat anda terapkan pada form dengan jenis Unbound Form, sedangkan pada code untuk menyimpan data menggunakan Unbound Form, seperti yang anda lihat, maka anda harus mendeklarasikan beberapa variable terlebih dahulu, lalu membuat statement atau perintah untuk menyimpan datanya kedalam table yang dimaksud. Hal ini belum mengenai masalah duplikasi data, misalnya dalam table yang anda tuju, terdapat sebuah Primary Key, dan data yang sedang diinput oleh user ternyata sudah ada dalam tabel, maka untuk mengantisipasi hal ini anda harus membuat statement atau code yang bisa digunakan jika masalah tersebut terjadi. Belum lagi persoalan-persoalan yang lainnya.

Semoga bermanfaat...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Laundry Detergent Coupons