Hallo pak Agus.....apakah casenya sudah terpecahkan ?
[Attachment(s) 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 SubSalam,HerDja2011/6/8 sudarsono <jkssbma@yahoo.com>
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 2If 25 <= NilaiH And NilaiH <= 35 Then
Cancel = False
' valid jika nilaiH < 25 atau NilaiH > 35 , asal NilaiH < NilaiG
ElseIf NilaiH < nilaiG Then
Cancel = False
Elsecancel = 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
> >
> >
> > '===============
>
--
HerDja
--
HerDja
__._,_.___
SPAM IS PROHIBITED
![]()
Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe
__,_._,___
No comments:
Post a Comment