/* */

Wednesday, June 8, 2011

Re: [belajar-access] Re: Tanya : Validation Rules



Hallo pak Agus.....apakah casenya sudah terpecahkan ?

2011/6/8 Heru Wibowo <heru.wibowo4456@gmail.com>
 
[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 Sub
 
Salam,
HerDja

2011/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 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
> >
> >
> > '===============
>




--
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