Dear exzant dan idwan,

If IsNull(CboUserID) Or CboUserID = "" Then

sebagai alternatif expressi di atas bisa anda gunakan juga:
if len("" & cboUserID)>0 then

jadi string kosong di gabung dengan null akan menghasilkan string kosong (""), sehingga bisa dievaluasi lebih lanjut. Trik ini juga bisa dipakai untuk mengambil nilai dari recordset yang berisi data null:

nama = "" & rs("nama")

---

Expressi sql yang dikirim berupa text bisa gagal jika mengandung apostrof tunggal ataupun ganda, maka sebaiknya setiap expressi sql yang bisa mengandung entrian apostrof tunggal atau ganda, anda ganti dengan double apostrof:
' -> ''
" -> ""

fungsi berikut bisa digunakan:

Function FixApostof(str As String)
   Dim s As String
   s = Replace(str, Chr(39), Chr(39) & Chr(39))
   FixApostof = Replace(s, Chr(34), Chr(34) & Chr(34))
End Function


contoh:
If strPass = DLookup("Password", "tbllogon", "[UserID]=" & FixApostrof(Me.CboUserID.Value) Then

aksan kurdin


e...@nt wrote:
Saya biasa pake ini :

If strPass = DLookup("Password", "tbllogon", "[UserID]=" & chr(34) & Me.CboUserID.Value & chr(34) ) Then

Chr(34) sama aja dgn tanda double quote ( " )
tujuan sy memakai chr(34) untuk menambah keamanan aplikasi
karena syntax SQL sangat rawan dgn tanda single quote ( ' )
jd kalo ada user mengisi password dgn satu single quote, tidak akan error

Silahkan dicoba..

salam,
e...@nt

2009/12/10 IdwanATuharea <[email protected] <mailto:[email protected]>>

Dear All,

    Saya sedang belajar bikin Logon Password, dimana ada proses
    checking UserID & password dengan event procedure sbb :

    'Cek UserID....

    If IsNull(CboUserID) Or CboUserID = "" Then
        MsgBox "Mohon masukan User ID", vbOKOnly, "Missing UserID"
        CboUserID.SetFocus
        Exit Sub
    End If

    'Jika UserID sudah terisi...dan cek password

    If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
        MsgBox "Mohon masukan Password.", vbOKOnly, "Missing Password"
        Me.txtPassword.SetFocus
        Exit Sub
    Else
        strPass = Me.txtPassword
    End If

    'Cek validitas password....

    If strPass = DLookup("Password", "tbllogon", "[UserID]=" &
    Me.CboUserID.Value) Then
        DoCmd.Close acForm, "frmLogon", acSaveNo
        DoCmd.OpenForm "FormUtama"
    Else
        MsgBox "Password Salah. Coba lagi", vbOKOnly, "Salah!"
        Me.txtPassword.SetFocus
        intCount = intCount + 1
    End If


    Untuk checking UserID nya Oke, tapi saat checking password selalu
    error di procedure yang saya kasih tanda merah diatas...dengan
    pesan yg muncul "you canceled the previous operation." saya sudah
    coba rubah menjadi "[UserID]=' " tapi kan muncul error " syntax
    error in string in query expression", adakah yang salah ? mhn
    pencerahannya....

    Thanks,
    Idwan


    ------------------------------------------------------------------------
    Mulai chatting dengan teman di Yahoo! Pingbox baru sekarang!!
    
<http://sg.rd.yahoo.com/id/messenger/pingbox/mailtagline/*http://id.messenger.yahoo.com/pingbox/>
    Membuat tempat chat pribadi di blog Anda sekarang sangatlah mudah




Kirim email ke