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