/* */

Thursday, June 9, 2011

[belajar-access] Re: Tanya : Validation Rules

Untuk Pak Sudarsono

Saya sudah coba menggunakan cara seperti Anda, namun jika digabungkan dengan syrat2 lainnya, maka kasus nya sama seperti sebelumnya.
Dengan menggunakan fungsi elseIf, saya coba membuat kode2 seperti ini :

Private Sub Data_H_BeforeUpdate(Cancel As Integer)
If Me.Data_H = 0 Then
Cancel = True
MsgBox "Nilai Tidak Boleh Nol"
ElseIf (Me.Data_H < 25 Or Me.Data_H > 35) And (Me.Data_H > Me.Data_G) Then
Cancel = True
MsgBox "Nilai diluar batas dan " & vbCrLf & "Lebih besar"
ElseIf Me.Data_H > Me.Data_G Then
Cancel = True
MsgBox "Nilai lebih besar"
ElseIf Me.Data_H < 25 Or Me.Data_H > 35 Then
Cancel = True
MsgBox "Nilai diluar batas"
ElseIf Me.Data_G > 0 And IsNull(Me.Data_H) Then
Cancel = True
MsgBox "Nilai Tidak Boleh Kosong"
ElseIf IsNull(Me.Data_G) And IsNull(Me.Data_H) Then
Cancel = False
End If
End Sub
............


Hasilnya sudah hampir seperti yg saya inginkan, cuma ada fungsi yg tidak bisa. Contoh pada saat new record (pengisian baris berikutnya), Jika Data_G Telah di-isi, namun Data_H Tidak di-isi maka Nilai tsb lolos. Padahal kalau dilihat dr syratnya Jika Data_G telah diisi dan Data_H = Null, maka ditolak.
Kode ini : ElseIf Me.Data_G > 0 And IsNull(Me.Data_H) Then
Cancel = True
MsgBox "Nilai Tidak Boleh Kosong"
Hanya bisa berfungsi saat Nilai pada Data_H diubah menjadi Null(Kosong), namun pada saat pengisian rekod baru tidak berfungsi.

Mungkin Bpk bisa bantu untuk menyempurnakan kode diatas.


=========================================================
--- In belajar-access@yahoogroups.com, "sudarsono" <jkssbma@...> wrote:
>
>
> untuk membuat peringatan dalam beberapa baris :
>
> MsgBox "pertama" & vbCrLf & "kedua" ' & ........
>
> untuk pengecekan sekali valid ( pada event BeforeUpdate ) :
>
> Jika pengisian valid , tambahkan perintah exit sub setelah
> cancel = false
>
> atau gunakan if elseif
>
> Private Sub Data_H_BeforeUpdate(Cancel As Integer)
> Dim nilaiG, NilaiH As Long
> nilaiG = Me.Data_G
> NilaiH = Me.Data_H
>
> ' pilihan 1
> If 25 <= NilaiH And NilaiH <= 35 And NilaiH < nilaiG Then
> Cancel = False
> Exit Sub
>
> ' pilihab 2
>
> If 25 <= NilaiH And NilaiH <= 35 Then
> Cancel = False
> ' valid jika nilaiH < 25 atau NilaiH > 35 , asal NilaiH < NilaiG
> ElseIf NilaiH < nilaiG Then
> Cancel = False
> Else
>
> cancel = true
> msgbox "Isi Nilai H salah " & vbcrlf & "isi dengan : " ' &
> ........
> End If
>
>
>
>
>
>
> '=======================
>
>
>
>
>
> --- In belajar-access@yahoogroups.com, "Agus Ariyanto"
> <bobby_agus.ariyanto@> wrote:
> >
> > Maaf Pak saya terbalik memberikan kriteria dlm pertanyaan sebelumnya.
> Seharusnya DataH tidak Boleh Lebih Besar dari DataG. Tapi itu tidak mjd
> masalah. Yang menjadi masalah nya, masih ada 1 kriteria lagi yang belum
> berhasil, yaitu Jika DataG = Null, Maka DataH harus Null juga. Jika
> diisi dengan sembarang Angka, maka tolak nilai nya.
> >
> > Saya sudah utak-atik kode vb dr bapak di bawah, namun belum bisa dan
> sepertinya bentrok dengan kriteria yg lainnya.
> >
> > Berikut ini saya copy kan kode yg sdh saya buat :
> >
> > Private Sub Data_H_BeforeUpdate(Cancel As Integer)
> > If 25 <= Me.Data_H And Me.Data_H <= 35 Then
> > Cancel = False
> > Else
> > Cancel = True
> > MsgBox ("Nilai DiLuar Batas")
> > End If
> > If Me.Data_H > Me.Data_G Then
> > Cancel = True
> > MsgBox ("Jangan Lebih Besar Dari G")
> > End If
> > If Me.Data_H = 0 Then
> > Cancel = True
> > MsgBox ("Nilai Tidak Boleh nol")
> > Else
> > Cancel = False
> > End If
> > If (25 <= Me.Data_H And Me.Data_H <= 35) And (Me.Data_H <= Me.Data_G)
> Then
> > Cancel = False
> > Else
> > Cancel = True
> > MsgBox ("Nilai Diluar Batas dan Lebih Besar dari G")
> > End If
> > End Sub
> >
> >
> > Kalau diliat dari susunan kode diatas terdapat kriteria gabungan dari
> kriteria lainnya. Satu kesalahan dalam pengisian nilai berakibat muncul
> beberapa msgbox. Nah, bisa kan kode2 tersebut dirampingkan agar msgbox
> yg muncul cukup mewakili salah satu dari kesalahan tersebut.
> >
> > Satu pertanyaan lagi, untuk teks pada msgbox agar bisa menjadi 2 atau
> lebih baris kalimat, penulisan kode nya seperti apa ?
> >
> >
> > Sekian dulu, terima kasih atas bantuannya.
> >
> >
> >
> > ===========================================================


------------------------------------

SPAM IS PROHIBITEDYahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/belajar-access/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/belajar-access/join
(Yahoo! ID required)

<*> To change settings via email:
belajar-access-digest@yahoogroups.com
belajar-access-fullfeatured@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
belajar-access-unsubscribe@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/

No comments:

Post a Comment