Archive | Access RSS feed for this section

NoData Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 14:18:45 +0700

Event NoData terjadi setelah Microsoft Access mem-format report saat hendak nge-print suatu report, namun ternyata data yang hendak di print tersebut tidak ada, atau dengan kata lain recordset tersebut kosong. Syntax:

Private Sub Report_NoData( Cancel As Integer)

Penjelasan:

- Cancel: Jika diset true, maka akan akan membatalkan proses print, sehingga report tidak akan ditampilkan.

Contoh:

Private Sub Report_NoData( Cancel As Integer)
MsgBox “The report has no data.” & _
chr(13) & “Printing is canceled. ” & _
chr(13) & “Check the data source for the ” & _
chr(13) & “report. Make sure you entered ” & _
chr(13) & “the correct criteria (for ” & _
chr(13) & “example, a valid range of ” & _
chr(13) & “dates),.” vbOKOnly + vbInformation
Cancel = True
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

NotInList Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 14:19:27 +0700

Event NotInList terjadi ketika user memasukkan suatu nilai kedalam combo box, dimana nilai yang telah dimasukkan tersebut ternyata tidak ada pada daftar combo box tersebut. Syntax:

Private Sub object_NotInList( NewData As String, Response As Integer)

Penjelasan:

- Object: Nama combo box control.

- NewData: Nilai yang baru dimasukkan.

- Response: Constants yang dapat diset sbb:

. acDataErrDisplay (Default) -> Displays the default message to the user. You can use this when you don’t want to allow the user to add a new value to the combo box list.
. acDataErrContinue -> Doesn’t display the default message to the user. You can use this when you want to display a custom message to the user. For example, the event procedure could display a custom dialog box asking if the user wanted to save the new entry. If the response is Yes, the event procedure would add the new entry to the list and set the Response argument to . acDataErrAdded -> If the response is No, the event procedure would set the Response argument to acDataErrContinue. acDataErrAdded Doesn’t display a message to the user but enables you to add the entry to the combo box list in the NotInList event procedure. After the entry is added, Microsoft Access updates the list by requerying the combo box. Microsoft Access then rechecks the string against the combo box list, and saves the value in the NewData argument in the field the combo box is bound to. If the string is not in the list, then Microsoft Access displays an error message.

Contoh:

Private Sub Colors_NotInList( NewData As String, _
Response As Integer)
Dim ctl As Control
‘ Return Control object that points to combo box.
Set ctl = Me!Colors
‘ Prompt user to verify they wish to add new value.
If MsgBox(“Value is not in list. Add it?”, _
vbOKCancel) = vbOK Then
‘ Set Response argument to indicate that data
‘ is being added.
Response = acDataErrAdded
‘ Add string in NewData argument to row source.
ctl.RowSource = ctl.RowSource & “;” & NewData
Else
‘ If user chooses Cancel, suppress error message
‘ and undo changes.
Response = acDataErrContinue
ctl.Undo
End If
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Open Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 14:25:39 +0700

Event Open terjadi saat form terbuka pertama kali, namun sebelum record yang pertama ditampilkan. Untuk report, event ini terjadi sebelum report tampil dalam bentuk print preview. Syntax:

Private Sub object_Open( Cancel As Integer)

Penjelasan:

- Object: Nama Form atau Report.

- Cancel: Jika diset True, maka akan meng-cancel event ini.

Ketika kita membuka suatu form, maka urutan event nya adalah sbb:

Open -> Load -> Resize -> Activate -> Current

Ketika kita menutup suatu form, maka urutan event nya adalah sbb:

Unload -> Deactivate -> Close

Contoh:

Private Sub Form_Open(Cancel As Integer)
Dim intReturn As Integer
intReturn = MsgBox(“Enter order details now?”, vbYesNo)
Select Case intReturn
Case vbYes
‘ Open Order Details form.
DoCmd.OpenForm “Order Details”
Case vbNo
MsgBox “Remember to enter order details by 5 P.M.”
Cancel = True ‘ Cancel Open event.
End Select
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Page Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 16:17:47 +0700

Event Page terjadi setelah Microsoft Access mem-format suatu halaman dari suatu report saat print preview atau saat akan di print, tapi sebelum halam tersebut benar-benar di print ke printer. Anda bisa menggunakan event ini untuk menambahkan border dan juga elemen grafik lainnya ke dalam halaman report tersebut. Syntax:

Private Sub Report_Page( )

Contoh:

Private Sub Report_Page( )
Me.Line(0, 0)-(Me.ScaleWidth, Me.ScaleHeight) , , B
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Resize Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 16:20:41 +0700

Event Resize terjadi saat membuka form melalui perintah open, namun size form sudah berubah. Syntax:

Private Sub Form_Resize( )

Ketika membuka suatu form, urutan event nya adalah sbb:

Open -> Load -> Resize -> Activate -> Current

Contoh:

Private Sub Maximize_Click( )
DoCmd.Maximize
End Sub

Private Sub Form_Resize( )
Forms!Contacts. Repaint
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Undo Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 16:32:14 +0700

Event Undo terjadi saat user meng-undo suatu action yang telah dilakukan di dalam combo box control, form, ataupun text box control. Syntax:

Private Sub object_Undo( Cancel As Integer)

Penjelasan:

- object: SUatu variable yang mengacu ke suatu object.

- Cancel: Jika diset True, maka akan meng-cancel proses Undo, sehingga data yang tampil tetap yang terakhir.

Contoh:

Private Sub Form_Undo(Cancel As Integer)
Dim intResponse As Integer
Dim strPrompt As String
strPrompt = “Cancel the undo operation?”
intResponse = MsgBox(strPrompt, vbYesNo)
If intResponse = vbYes Then
Cancel = True
Else
Cancel = False
End If
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Unload Event

14 May

From:    “Sofyan Efendi” <opi@softhome.net>
Date:    Wed, 23 Aug 2006 16:37:50 +0700

Event Unload terjadi setelah form tertutup, namun sebelum form tersebut benar-benar hilang dari screen. Syntax:

Private Sub Form_Unload( Cancel As Integer)

Penjelasan:

- Cancel: Jika diset True, maka akan mengcancel event ini, sehingga form menjadi tidak jadi di close.

Ketika kita menutup suatu form, maka urutan eventnya adalah sbb:

Unload -> Deactivate -> Close

Contoh:

Private Sub Form_Unload( Cancel As Integer)
If MsgBox(“Close form?”, vbYesNo) = vbYes Then
Exit Sub
Else
Cancel = True
End If
End Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Membuat Custom Event Untuk MouseWheel

14 May

From:    “Sofyan Efendi” <sofyan@madinah.cc>
Date:    Thu, 24 Aug 2006 08:36:58 +0700

Alhamdulillah, selesai sudah pembahasan sebagian besar event pada Microsoft Access. Sekarang marilah kita belajar cara membuat custom event, misalnya untuk penggunaan MouseWheel.

Event untuk MouseWheel sebenarnya sudah disediakan oleh Microsoft Access, namun ia tidak dapat meng-cancel penggunaan MouseWheel. Karena itu, kita harus membuat custom event sendiri untuk meng-cancel penggunaan MouseWheel oleh user. Silahkan ikuti langkah-langkah dibawah ini:

1. Copylah file Northwind.mdb menjadi file lain, kemudian bukalah file hasil copy-an tersebut.

2. Buatlah sebuah module baru. Tambahkan ke dalamnya procedure dibawah ini:

Option Compare Database
Option Explicit

Declare Function SetWindowLong Lib “user32″ Alias “SetWindowLongA” _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib “user32″ Alias “CallWindowProcA” _
(ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = -4
Public Const WM_MouseWheel = &H20A
Public lpPrevWndProc As Long
Public CMouse As CMouseWheel

Public Function WindowProc(ByVal hwnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Select Case uMsg
Case WM_MouseWheel
CMouse.FireMouseWhe el
If CMouse.MouseWheelCa ncel = False Then
WindowProc = CallWindowProc( lpPrevWndProc, hwnd, uMsg, wParam, lParam)
End If
Case Else
WindowProc = CallWindowProc( lpPrevWndProc, hwnd, uMsg, wParam, lParam)
End Select
End Function

3. Save module diatas dengan nama: basSubClassWindow.

4. Klik menu Insert -> Class Module. Tambahkan kedalamnya procedue dibawah ini:

Option Compare Database
Option Explicit

Private frm As Access.Form
Private intCancel As Integer
Public Event MouseWheel(Cancel As Integer)

Public Property Set Form(frmIn As Access.Form)
Set frm = frmIn
End Property

Public Property Get MouseWheelCancel( ) As Integer
MouseWheelCancel = intCancel
End Property

Public Sub SubClassHookForm( )
lpPrevWndProc = SetWindowLong( frm.hwnd, GWL_WNDPROC, _
AddressOf WindowProc)
Set CMouse = Me
End Sub

Public Sub SubClassUnHookForm( )
Call SetWindowLong( frm.hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Public Sub FireMouseWheel( )
RaiseEvent MouseWheel(intCance l)
End Sub

5. Save class module diatas dengan nama: CMouseWheel.

6. Pilih object form, lalu masuk ke design view “Customers”.

7. Tambahkan procedure dibawah ini ke dalam class module form tersebut.

Option Compare Database
Option Explicit

Private WithEvents clsMouseWheel As CMouseWheel

Private Sub Form_Load()
Set clsMouseWheel = New CMouseWheel
Set clsMouseWheel. Form = Me
clsMouseWheel. SubClassHookForm
End Sub

Private Sub Form_Close()
clsMouseWheel. SubClassUnHookFo rm
Set clsMouseWheel. Form = Nothing
Set clsMouseWheel = Nothing
End Sub

Private Sub clsMouseWheel_ MouseWheel( Cancel As Integer)
‘Inilah custom event untuk MouseWheel
MsgBox “Anda tidak boleh menggunakan scroll mouse pada form ini.”
Cancel = True
End Sub

8. Save seluruh object, lalu keluarlah dari Microsoft Access, kemudian masuk kembali.

9. Jangan membuka VBA, dan bukalah form “Customers”. Putarlah scroll mouse, maka akan muncul message box sbb: “Anda tidak boleh menggunakan scroll mouse pada form ini.”

Perhatian! Penggunaan MouseWheel sebaiknya menggunakan dll external, sebagaimana yang sudah di sampaikan oleh Mas Aksan, dan juga Mas Rosyid sudah mengupload dll MouseWheel ini ke folder files belajar-access. Cara ini hanya cocok digunakan untuk aplikasi menggunakan Microsoft Access Runtime ataupun penggunaan database yang object VBA nya telah di lock. Karena jika Anda telah masuk ke VBA, lalu load event ini, maka Microsoft Access akan hang. Karena itulah, sebelum menggunakan event ini, Anda harus keluar dahulu dari Microsoft Access, lalu masuk kembali (lihat langkah no.8 diatas). Namun jika Anda belum masuk ke VBA, maka tidak perlu keluar dahulu dari Microsoft Access.

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Macro AutoKeys

14 May

From:    “Sofyan Efendi” <sofyan@madinah.cc>
Date:    Thu, 24 Aug 2006 14:59:54 +0700

Macro AutoKeys digunakan untuk membuat shortcut key, yang digunakan untuk menjalankan suatu action. Semua key yang dibuat di dalam macro ini akan menimpa penggunaan key default di dalam Access. Misalnya, jika kita tekan CTRL+C, maka secara default, ia akan mengcopy data kita. Namun, jika kita isi ^C di dalam macro AutoKeys dengan suatu action yang lain, maka CTRL+C menjadi berfungsi sesuai yang ada di dalam macro tersebut, tidak lagi digunakan untuk mengcopy data.

Untuk membuat macro AutoKeys, silahkan ikuti langkah-langkah sbb:

1. Buatlah sebuah macro baru. Save dengan nama “AutoKeys”.

2. Pada jendela Macro, klik menu View -> Macro Names.

3. Isilah field Macro Names ini, misalnya dengan ^M. Lalu pada Action, isilah dengan action “MsgBox”. Isilah dengan pesan: “Test Macro AutoKeys”.

4. Save, lalu keluarlah dari macro.

5. Tekan pada keyboard tombol CTRL+M. Maka akan muncul pesan: “Test Macro AutoKeys”.

Keterangan: Untuk informasi lebih lanjut tentang pembuatan key, silahkan pelajari kembali tips dengan judul “Tips Hari Ini: SendKeys Statement” yang saya kirim tanggal 28/7/2006.

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Control Flow Keyword Summary

14 May

From:    “Sofyan Efendi” <sofyan@madinah.cc>
Date:    Wed, 30 Aug 2006 08:31:07 +0700

Action | Keywords
Branch -> GoSub…Return, GoTo, On Error, On…GoSub, On…GoTo
Exit or pause the program -> DoEvents, End, Exit, Stop
Loop -> Do…Loop, For…Next, For Each…Next, While…Wend, With
Make decisions -> Choose, If…Then… Else, Select Case, Switch
Use procedures -> Call, Function, Property Get, Property Let, Property Set, Sub

Wassalaamu’alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
- AccessWeb <http://www35.websamba.com/accessweb&gt;
- OPI-Homepage <http://www.geocities.com/opi1978&gt;

Follow

Get every new post delivered to your Inbox.

Join 65 other followers