/* */

Thursday, June 9, 2011

[belajar-access] Re: Tanya : Validation Rules

Maaf sebelumnya, saya baru sempat buka email.....

Untuk Bpk. Heru Wibowo terima kasih atas bantuannya.
Kode2 yang Bpk berikan ada yg tidak sesuai dengan ketentuan dari field tsb.
Contoh : Jika Data_G sudah terisi sembarang angka dan Data_H tetap dikosongkan, maka Nilai Null pada Data_H lolos. Padahal salah satu syratnya adl Data_H tidak boleh bernilai Null kecuali Nilai pada Data_G juga Null.
Yang kedua : Jika Data_G sdh terisi sembarang angka, maka nilai berapapun yg di isi pada Data_H selalu dianggap diluar batas. Padahal ketentuannya adalah antara 25 - 35

Ada baiknya saya ulas kembali syarat2 dari field Data_H :
1. Range / Batasan nilai adalah antara 25 s/d 35. Jika di-isi lebih besar/lebih kecil dari nilai tsb, maka "Nilai diluar batas"

2. Data_H harus lebih kecil/sama dengan Nilai Data_G. Jika di-isi lebih besar dari Nilai Data_G maka "Nilai Tdk boleh lbh besar dr G"

3. (syarat ganda) Range antara 25 - 35 dan Data_H <= Data_G. Jika Nilai Data_H di-isi angka dlm batasan nilai(25 - 35) namun Nilai tsb lbh besar dari Data_G.
Contoh : Data_G = 28 sementara Data_H = 29 (Ket. Msgbox "Nilai Tdk boleh lbh besar dr G")
Jika Data_H lebih besar dr batasan nilai(25 - 35) namun nilai tsb lebih kecil dari Data_G (demikian juga sebaliknya)
Contoh 1: Data_G =39 ; Data_H = 37 maka ket. Msgbox : "Nilai diluar batas"
Contoh 2: Data_G = 25 ; Data_H = 23 maka ket. Msgbox : "Nilai diluar batas"
Contoh 3: Data_G = 25 ; Data_H = 0 maka ket. Msgbox : "Nilai tidak boleh nol"

Catatan untuk 3 syarat diatas : selama Data_G mempunyai nilai apapun, maka Data_H tidak boleh bernilai Null (kosong) kecuali syrat dibawah ini.

4. Jika Data_G bernilai Null (kosong), maka Data_H harus bernilai Null juga (kosong). Apapun nilai yg dimasuk,semuanya ditolak.


Seperti itu lah gambaran dari syarat2 pada filed Data_H. Mungkin terlihat aneh dgn syrat tsb, tapi kedua field tsb sdh memiliki aturan tersendiri.


=================================================================

--- In belajar-access@yahoogroups.com, Heru Wibowo <heru.wibowo4456@...> wrote:
>
> Hallo pak Agus.....apakah casenya sudah terpecahkan ?
>
> 2011/6/8 Heru Wibowo <heru.wibowo4456@...>
>
> >
> > [Attachment(s)<https://mail.google.com/mail/html/compose/static_files/blank_quirks.html#1306d4711236afd5_TopText>from Heru Wibowo included below]
> >
> > Pak Agus,
> >
> > Ikut nimbrug yah....silahkan download attachment, belum senior, namun saya
> > coba untuk ngebantu memberikan solusi.
> >
> > ini ada penggalan vbnya :
> > Private Sub Data_H_BeforeUpdate(Cancel As Integer)
> > 'pertama --> memvalidasi jika Data_G kosong (bukan 0 (nol))
> > 'maka berapapun nilai yang masukkan di Data_H akan ditolak
> > 'meskipun pada Data_H dimasukkan 0 (nol)
> > 'maka selama Data_G kosong akan tetap ditolak
> > If Len(Nz(Data_G)) = 0 Then
> > MsgBox "Data G Jangan Kosong" & Chr(13) _
> > & "Supaya Data_H Bisa Diisi" & Chr(13) _
> > & "Maka Data_G Jangan Kosong" & Chr(13) _
> > & Chr(13) _
> > & "Supaya Anda Bisa Mengisi Data_H" & Chr(13) _
> > & "Maka, Klik OK, Lalu" & Chr(13) _
> > & "Tekan Escape Lalu Masukkan Nilai Di Data_G Dulu"
> > Cancel = True
> > Else
> > 'melakukan cek apakah Data_H bernilai 0 (nol)
> > 'jika bernilai 0 (nol)
> > 'maka nilai di Data_H akan ditolak
> > If Data_H = 0 Then
> > MsgBox "Nilai Tidak Boleh Nol"
> > Cancel = True
> > 'membuat kelompok validasi pengandaian dulu jika nilai Data_H >
> > dari Data_G
> > ElseIf Data_H > Data_G Then
> > 'jika nilai yang dimasukkan di Data_H <= 35
> > If Data_H <= 35 Then
> > MsgBox "Nilai Diluar Batas dan Lebih Besar dari G"
> > Cancel = True
> > 'jika nilai yang dimasukkan di Data_H > 35
> > Else
> > MsgBox "Jangan Lebih Besar dari G"
> > Cancel = True
> > End If
> > 'membuat validasi jika nilai Data_H <= 35
> > ElseIf Data_H <= 35 Then
> > MsgBox "Nilai Diluar Batas"
> > Cancel = True
> > End If
> > End If
> > 'note:
> > 'untuk memecah baris message box bisa dengan cara menambahkan & vbCrLf &
> > 'ditiap akhir kalimat yang akan dipenggal
> > 'Contoh :
> > 'MsgBox "Baris pertama message box" & vbCrLf & "Baris kedua message box"
> > End Sub
> >
> > Salam,
> > HerDja
> >
> > 2011/6/8 sudarsono <jkssbma@...>
> >
> >>
> >>
> >> 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.
> >> >
> >> >
> >> >
> >> > ===========================================================
> >> >
> >> > --- In belajar-access@yahoogroups.com, "sudarsono" jkssbma@ wrote:
> >> > >
> >> > >
> >> > > Gunakan BeforeAfter pada DataG :
> >> > >
> >> > > If 25 <= dataG And dataG <= 30 Then
> >> > > If dataG < dataH Then
> >> > > msgbox "Nilai tidak boleh lebih kecil Data H"
> >> > > End If
> >> > > Else
> >> > > msgbox "Nilai diluar ketentuan"
> >> > > End If
> >> > >
> >> > > 'atau
> >> > >
> >> > > If dataG < 25 Or dataG > 30 Then
> >> > > msgbox "Nilai diluar ketentuan"
> >> > > End If
> >> > > If dataG < dataH Then
> >> > > msgbox "Nilai tidak boleh lebih kecil Data H"
> >> > > End If
> >> > >
> >> > >
> >> > > jika dataH belum diisi , kreiterianya perlu diperhatikan ?
> >> > >
> >> > > apa tak boleh diisi ? kalau ya ,maka tambahkan diawal ( sebelum kode
> >> di
> >> > > atas ):
> >> > >
> >> > > If IsNull(DataH) Then
> >> > > Cancel = True
> >> > > DataH.SetFocus
> >> > > End If
> >> > >
> >> > >
> >> > > '===============
> >> >
> >>
> >>
> >
> >
> > --
> > *Her**Dja*
> >
> >
> >
>
>
>
> --
> *Her**Dja*
>


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

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