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