Tampilkan postingan dengan label Tip n Trik. Tampilkan semua postingan
Tampilkan postingan dengan label Tip n Trik. Tampilkan semua postingan

MEMASTIKAN NUMBER TIDAK ERROR PADA SQL COMMAND

Pada Access, jika urusan tarik dan simpan data ditangani oleh Access sendiri ("Access way") maka no problem. Problemnya akan muncul jika urusan simpan data itu kita handle sendiri, misalnya dengan perintah SQL.

Salah satu problem adalah ketika kita menyimpan (insert) angka ke dalam field, padahal angka ada juga yang mengandung nilai desimal, atau tidak mengandung nilai angka alias bernilai Null.

Angka yang mengandung desimal bisa jadi problem karena angka tersebut akan dikonversi menjadi string, termasuk tanda desimalnya. Pada Regional Setting Windows yang menggunakan Format Indonesian, tanda desimal adalah koma (,). Tanda koma ini sama dengan tanda pemisah list pada perintah SQL. Tentu saja string perintah SQL-nya akan menjadi salah!

Berikut ini adalah sebuah function untuk memastikan string dari angka selalu kompatibel dengan perintah SQL, yaitu mengubah tanda koma (tanda desimal) menjadi tanda titik. Function ini pun sekaligus memberikan teks Null pada nilai Null sehingga tidak menjadi kosong.

Public Function NC(ByVal pNumber)
    If IsNull(pNumber) Then
        NC = "Null"
    ElseIf InStr(pNumber, ",") Then
        NC = Replace(pNumber, ",", ".")
    Else
        NC = pNumber
    End If
End Function

Simpan function di atas pada sebuah modul umum (General Module atau Standard Module).

Cara pakainya seperti ini:

tSql = "UPDATE tbl_Penjualan_dtl SET Diskon_1=" & NC(tDiskon2) & " WHERE (" & whr & ")"
DoCmd.RunSql tSql

Pada perintah SQL di atas, variabel tDiskon2 mungkin saja mengandung nilai desimal atau tidak mengandung nilai angka alias bernilai Null. Dengan function NC kita tidak perlu ragu lagi dengan format nilai pada variabel tersebut.

Demikian cara sederhana ini, semoga bermanfaat.

(Jangan lupa beri komen ya biar posting ini lebih populer di mesin pencari, thanks).


CARA MEMBUAT LIST COMBO BOX UPDATE OTOMATIS

Combo Box adalah salah satu control yang disediakan Access yang sangat disukai. Dengan Combo Box kita bisa menyediakan list data yang tinggal dipilih oleh user, misalnya data Kode Barang, Nomor Induk Karyawan, Kode Akun, dan sebagainya.

Sedikit problem, list data dalam Combo Box tidak bisa terupdate secara otomatis sebelum form yang memuatnya ditutup dan dibuka kembali. Misalnya seorang user sedang menginput data pada form Penjualan, ternyata barang yang mau diinput belum terdapat dalam pilihan Combo Box. Dia (atau seorang user yang lain) lalu menambahkannya pada Master Barang, namun Kode Barang yang baru ditambahkan tersebut tetap tidak tersedia pada Combo Box form Penjualan. User tersebut harus menutup dulu form Penjualan dan membukanya kembali agar data barang yang baru tersedia dalam Combo Box.

Merefresh Data Pada Combo Box Secara Otomatis

Sebenarnya, Access telah menyediakan sebuah shortcut key untuk me-refresh data dalam Combo Box, yaitu tombol F9 (ditekan pada Combo Box). Namun tombol ini mungkin sering dilupakan. Sebagai pembuat aplikasi, kita bisa menyediakan cara agar list dalam Combo Box terupdate secara otomatis.

 


 

Caranya adalah sebagai berikut:

  1. Buka form yang mengandung Combo Box tersebut dalam Design View.
  2. Klik control Combo Box untuk memilihnya, lalu tekan F4 untuk menampilkan Properties.
  3. Pada Properties, klik Event (misalnya) On Enter. Pilih “Event Procedure”, lalu klik tombol Builder […] di sebelah kanannya. Muncul jendela Visual Basic Editor.
  4. Masukkan code sehingga tampak seperti berikut ini (cboKodeBarang adalah nama Combo Box):
    Private Sub cboKodeBarang_Enter()
        Me.cboKodeBarang.Requery
    End Sub
  5. Tutup jendela Visual Basic Editor untuk kembali ke Form Design.
  6. Simpan form lalu jalankan untuk mencobanya.
  7. Dalam keadaan form penjualan masih tampil (Form View), cobalah menambahkan record barang baru pada table Barang, simpan record. Kembali ke form Penjualan lalu klik untuk membuka list dalam Combo Box Kode Barang, niscaya barang yang baru ditambahkan akan muncul dalam pilihan.

Pada prosedur di atas, kita menggunakan event On Enter untuk melakukan refresh otomatis, artinya cursor atau focus haruslah berada di luar Combo Box lalu ketika user mengklik untuk membuka Combo Box, event On Enter dijalankan.

Umumnya cara ini sudah cukup untuk melakukan refresh data pada Combo Box secara otomatis. Namun user haruslah “masuk” (Enter) ke dalam Combo Box (dari luar) agar event terjadi.

Jika anda tidak puas dengan cara ini, anda bisa menambahkan code yang sama, misalnya pada vent On DblClick. Dengan demikian, jika user ingin memunculkan data barang yang baru ditambahkan, dia bisa men-double-click Combo Box.

 


 .

Membuat Function fRefreshList()

Kebutuhan untuk melakukan refresh Combo Box secara otomatis ini cukup sering, yaitu sebanyak Combo Box yang mungkin mendapatkan data baru selama form yang memuatnya masih terbuka.

Agar kita tidak perlu membuat Event Procedure untuk setiap Combo Box, kita bisa membuat sebuah function yang berlaku umum (general) sehingga setiap Combo Box yang membutuhkannya bisa langsung menggunakan.

Caranya adalah sebagai berikut:

  1. Buka atau buat sebuah module umum (general module), lalu tambahkan function sebagai berikut:
    Function fRefreshList()
        Screen.ActiveControl.Requery
    End Function
  2. Simpan module.
  3. Buka form yang Combo Box-nya ingin menggunakan function tersebut.
  4. Klik Combo Box untuk memilihnya, tekan F4 untuk menampilkan Properties, lalu pada event On Enter masukkan =fRefreshList()

Tentu saja anda bisa memasang function fRefreshList() ini pada event On DblClick juga.

 


 

Selamat mencoba, semoga berhasil.


MENJALANKAN APLIKASI ACCESS TANPA MS ACCESS?

Haer Talib (MS Access Developer)
Oleh: Haer Talib (www.HaerTalib.com)

  1. “Saya tidak punya MS Access di komputer, bagaimana saya menjalankan aplikasi Access?”
  2. “Saya tidak mau menggunakan aplikasi Access, karena saya tidak mau membeli software MS Access.”
  3. “MS Access saya versi 2007, jadi tidak bisa menjalankan aplikasi Access yang dibuat dengan versi yang baru.”

Semua pertanyaan dan pernyataan di atas benar, namun jika anda mengetahui triknya maka anda akan bisa menjalan aplikasi yang dibuat dengan MS Access.

BEDA VERSI


Saya akan memulai dengan pernyataan ketiga.

Memang benar MS Access versi yang lebih lama tidak bisa membuka atau menjalankan aplikasi yang dibuat dengan MS Access versi yang lebih baru. Access 2007 tidak bisa membuka/menjalankan aplikasi yang dibuat dengan Access 2010, paling tidak akan muncul error atau ada yang tidak bisa dijalankan.

Aturannya: aplikasi yang dibuat dengan MS Access versi lama bisa dibuka atau dijalankan pada MS Access yang lebih baru, dan tidak bisa sebaliknya.


Laporan untuk show room

Saya tertarik pada sebuah pertanyaan sederhana di milis belajar-access.

Yth.
Para Pemakai Access

Saya mau buat laporan dng output dilamp berikut.
Bagaimana ya caranya?
Mohon Pencerahannya.

Salam,

Asep

Lampirannya berupa XLS file, tampak sbb:


Sebenarnya, bentuk laporan ini bukan bentuk yang ideal yang biasa dihasilkan sistem informasi / aplikasi database, namun saya anggap ini bentuk "real" yang praktis bagi pemakainya.

Jadi saya coba buatin, walaupun secara sederhana dan sekedar untuk memenuhi kebutuhannya untuk menampilkan bentuk report seperti itu.

Pertama, saya buat table:
tbl_Beli untuk menampung data pembelian mobil
tbl_Perbaikan untuk menampung data perbaikan
tbl_Jual untuk menampung data penjualan

Saya menggunakan Nopol sebagai key untuk menghubungkan ketiga table tersebut.

Report yang saya buat menggunakan subreport untuk menampilkan detail perbaikan.

Disain report terlihat sebagai berikut:


Jika di-preview, report akan terlihat sbb:


Nah, moga-moga seperti apa yang diharapkan.

Report di atas saya buat dengan MS Access 2010. Tentu sangat sederhana dan di sana-sini ada bug atau kesalahannya. Namun paling tidak, contoh ini bisa digunakan untuk melihat trik pembuatan report dengan MS Access.

File databasenya (.accdb) bisa didownload di sini.

Membuat Nomor Otomatis

Banyak pertanyaan di milis tentang cara membuat nomor baru secara otomatis. Misalnya nomor untuk Surat Jalan dimana nomor tersebut meningkat secara otomatis (sekuensial).

Berikut ini ada sebuah function sederhana untuk membuat nomor Surat Jalan secara otomatis.

Asumsi:
Table bernama: tbl_SuratJalan
Field nomor bernama: NoSuratJalan, type: Text, Size: 10 chars.

Nomor Surat Jalan terdiri dari 4 character pertama berisi prefiks, mungkin untuk kode lokasi, kode department, atau semacamnya. Nomor urut (sekuensial) panjangnya 6 chars.

Function NoBaru()
'Originally created by Haer Talib for RumahAccess.com
Prefiks = "AAbb"

NoBaru = Prefiks & "000000"
tSQL = "SELECT Max(NoSuratJalan) AS LastNo FROM [tbl_SuratJalan] " & _
"WHERE NoSuratJalan > '" & Prefiks & "000000' And NoSuratJalan <= '" & Prefiks & "999999'"
Dim rs1 As Object
Set rs1 = CurrentDb.OpenRecordset(tSQL, dbOpenDynaset, dbSeeChanges)
If Not rs1.EOF Then
LastNo = Val(Right(Nz(rs1!LastNo, "0"), 6))
Else
LastNo = 0
End If
rs1.Close
Set rs1 = Nothing
NoBaru = Prefiks & Format(LastNo + 1, "000000")
End Function


Anda bisa mengkustomasi function di atas untuk keperluan anda.
Unsur-unsur yang perlu dikustomasi adalah:
- Nama Table
- Nama Field untuk nomor
- String untuk Prefiks.

Semoga bermanfaat.

Memformat Text Box dalam RTF

Jika Anda sudah terbiasa dengan Microsoft Access, hadirnya Access 2007 dengan segala perubahannya tentu akan membuat Anda sedikit kaget. Di balik ketampanan visualnya, Anda justru menjadi kikuk untuk menemukan kembali perintah-perintah yang biasa Anda gunakan. No menu bar, no toll bar!
Tetapi mudah juga untuk membiasakan diri dengan Access yang baru bukan?
Nah, untuk Anda yang terlanjur alergi dengan perubahan pada Access dan belum ingin mencoba Access 2007, ini ada sedikit iming-iming :)

Pada Access 2007, di samping seabrek teknologi baru yang diimpelementasikan, ada sebuah keasikan ketika kita bisa memformat isi text box dalam Rich Text Format (RTF). Ya, anda bisa membuat huruf miring, tebal, bergaris bawah, berwarna, membuat bulleted list, dan lain sebagainya.

Text box yang bisa diformat dalam RTF adalah text box yang unbound, bound ke sebuah ekspresi, atau bound ke sebuah field Memo. Syaratnya, pada field Memo tersebut, aturlah properti Format ke "Rich Text" (pada Table Design).

Oya, tahukah Anda bagaimana data disimpan? Hehehe.. ternyata dalam HTML :0