我建立了一個登陸界面,裡面有兩個文本框(checkuid,checkpwd),三個按鈕(logon,logout,lognew),ORACLE中建立了專門的一個超級用戶的信息表,裡面有(usname,uspwd),現在通過以下方式進行連接;
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim uid As String
Dim pwd As String
Dim con As String
Dim strtablename As String
Dim fld As ADODB.Field
    Set conn = New ADODB.Connection
    con = "Provider=MSDAORA.1;Password=system;User ID=system;Data Source=tii;Persist Security Info=True"
    conn.ConnectionString = con
    conn.CursorLocation = adUseClient
    conn.Open
    strtablename = "users"
If conn.State = adStateOpen Then
    MsgBox 數據庫連接成功!", vbOKOnly, "提示"
Else
    MsgBox "數據庫連接失敗,請檢查網絡設置!", vbOKOnly, "提示"
End If
到了這一步我就不知道該怎么做了,通過設置按鈕logon,在數據庫中進行檢索,如果發現賬號和密碼均對,則進入 ,如果出現錯誤做錯誤處理!
     主要就是不知道怎么連接到表中的某一數據進行檢索,請大蝦們幫幫偶~~~不勝感激!!!

解决方案 »

  1.   

    sql=“seelct * from 信息表 where usname='"   & checkuid & "'”
    set rs=conn.execute(sql)
    if not rs.eof then
    if rs!uspwd=checkpwd then
    msgox "OK"
    endif
    endif
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  2.   

    最開始我還是那樣引用的紅色部分,但是沒用,我就鬱悶了,就不知道該怎么弄了,是不是缺少了下面那一句 execute(sql)就不行了???
    你的代碼還是有點小問題,我稍微處理了一下~~~
    SQL = "select * from users where usname='" & checkuid.Text & "'"
        Set rs = conn.Execute(SQL)
        If Not rs.EOF Then
            If rs!usname = checkuid.Text Then
                
            End If
                If rs!uspwd = checkpwd.Text Then
                    MsgBox "OK"
                End If
            Else
            MsgBox ("錯誤!")
        End If現在還在調試當中,因為還有一個表,是普通用戶表,還要對裡面的信息進行匹配~~~~繼續研究ing~~~~
      

  3.   

    那位大蝦再提供點幫助啊???
    如果在超級用戶的信息表中找不到相應數據,然後再到普通用戶信息表(stuinfo)中找,當用戶名和密碼都為(stuid)裡面的數據時,同樣可以進入!!
    O(∩_∩)O~~~~~
      

  4.   

    SQL = "select * from users where usname='" & checkuid.Text & "'" 
        Set rs = conn.Execute(SQL) 
        If Not rs.EOF Then 
    else
    SQL = "select * from stuinfo where usname='" & checkuid.Text & "'" 
        Set rs = conn.Execute(SQL) 
    endif
      

  5.   

    if rs!uspwd=checkpwd then 
    中間那個rs!uspwd是什麽意思???就是那個!的作用????不是“非”吧
      

  6.   

    Set rs = New ADODB.Recordset
        rs.Open strtablename, con
        SQL = "select * from users where usname='" & checkuid & "'"
        Set rs = conn.Execute(SQL)
        If Not rs.EOF Then
            If rs!usname = checkuid.Text Then
            End If
                If rs!uspwd = checkpwd.Text Then
                    MsgBox 超級用戶登陸成功!"
                    Me.Hide
                    infoview.Show
                    infoview.Command2.Enabled = True
                    infoview.Command3.Enabled = True
                    infoview.Command4.Enabled = True
                    infoview.cut.Enabled = True
                Else
                    MsgBox "密碼錯誤,請重新輸入!"
                    checkpwd.SetFocus
                    checkpwd.Text = ""
                End If
        Else
            SQL = "select * from stuinfo where stuid='" & checkuid.Text & "'"
            Set rs = conn.Execute(SQL)
                If rs!stuid = checkuid.Text Then
                Else
                    MsgBox "用戶名錯誤,請重新輸入!"
                    checkuid.Text = ""
                    checkpwd.Text = ""
                    checkuid.SetFocus
                End If
                    If rs!stuid = checkpwd.Text Then
                        MsgBox "普通用戶登陸成功!"
                        Me.Hide
                        infoview.Show
                    Else
                        MsgBox "密碼不正確,請重新輸入!"
                        checkpwd.Text = ""
                        checkpwd.SetFocus
                    End If
        rs.Close
        Set rs = Nothing
        conn.Close
        Set conn = Nothing
        End If
    運行的時候中間黃色那一段代碼老是要報錯 ,如果做錯誤處理的話,無論是登陸成功還是失敗 ,同樣也會報錯!報的是“可能是EOF或BOF的值為TRUE,或目前的資料錄已經被刪除,所要求的操作需要目前的資料錄!”
    大蝦繼續出手~~~~~THANKS!!
      

  7.   


    不是“非”
    是表示记录rs的uspwd字段
    也可以写成   rs.fields("uspwd")
      

  8.   

    勉强改了,你的程序乱,看不清你的意图    SQL = "select * from users where usname='" & checkuid & "'"
        Set rs = conn.Execute(SQL)
        If rs.RecordCount > 0 Then
            If rs!uspwd = checkpwd.Text Then
                MsgBox "超級用戶登陸成功!"
                Me.Hide
                infoview.Show
                infoview.Command2.Enabled = True
                infoview.Command3.Enabled = True
                infoview.Command4.Enabled = True
                infoview.cut.Enabled = True
            Else
                MsgBox "密碼錯誤,請重新輸入!"
                checkpwd.SetFocus
                checkpwd.Text = ""
            End If
        Else
            SQL = "select * from stuinfo where stuid='" & checkuid.Text & "'"
            Set rs2 = conn.Execute(SQL)
            If rs2.RecordCount > 0 Then
            Else
                MsgBox "用戶名錯誤,請重新輸入!"
                checkuid.Text = ""
                checkpwd.Text = ""
                checkuid.SetFocus
            End If
            
            If rs2!stuid = checkpwd.Text Then
                MsgBox "普通用戶登陸成功!"
                Me.Hide
                infoview.Show
            Else
                MsgBox "密碼不正確,請重新輸入!"
                checkpwd.Text = ""
                checkpwd.SetFocus
            End If
            rs2.Close
            Set rs2 = Nothing
        End If
        
        rs.Close
        Set rs = Nothing    conn.Close
        Set conn = Nothing
      

  9.   

    你是通過If rs2.RecordCount > 0 Then利用記錄計數的方式進行判斷的,其實我的也差不多,是利用EOF屬性來判斷的。。不過好像你的要好點,多謝了~~~不過好像這樣都存在一個隱藏的錯誤,我也不知道錯誤究竟在哪,反正利用改錯語句on error goto errhandle 來做的話,無論登陸正確與否,都會觸發errhandle
      

  10.   

    注意 rs2
    要新加一个,否则在rs中又用rs就会出错
      

  11.   

        SQL = "select * from users where usname='" & checkuid & "'"
        Set rs = conn.Execute(SQL)
        If rs.RecordCount > 0 Then
            If rs!uspwd = checkpwd.Text Then
                MsgBox "超級用戶登陸成功!"
                Me.Hide
                infoview.Show
                infoview.Command2.Enabled = True
                infoview.Command3.Enabled = True
                infoview.Command4.Enabled = True
                infoview.cut.Enabled = True
            Else
                MsgBox "密碼錯誤,請重新輸入!"
                checkpwd.SetFocus
                checkpwd.Text = ""
            End If
        Else
            SQL = "select * from stuinfo where stuid='" & checkuid.Text & "'"
            Set rs2 = conn.Execute(SQL)
            If rs2.RecordCount > 0 Then
                If rs2!stuid = checkpwd.Text Then
                    MsgBox "普通用戶登陸成功!"
                    Me.Hide
                    infoview.Show
                Else
                    MsgBox "密碼不正確,請重新輸入!"
                    checkpwd.Text = ""
                    checkpwd.SetFocus
                End If
            Else
                MsgBox "用戶名錯誤,請重新輸入!"
                checkuid.Text = ""
                checkpwd.Text = ""
                checkuid.SetFocus
            End If
            
            rs2.Close
            Set rs2 = Nothing
        End If
        
        rs.Close
        Set rs = Nothing    conn.Close
        Set conn = Nothing
      

  12.   

        SQL = "select * from users where usname='" & checkuid & "'"
        Set rs = conn.Execute(SQL)
        If rs.RecordCount > 0 Then
            If rs!uspwd = checkpwd.Text Then
                MsgBox "超級用戶登陸成功!"
                Me.Hide
                infoview.Show
                infoview.Command2.Enabled = True
                infoview.Command3.Enabled = True
                infoview.Command4.Enabled = True
                infoview.cut.Enabled = True
            Else
                MsgBox "密碼錯誤,請重新輸入!"
                checkpwd.SetFocus
                checkpwd.Text = ""
            End If
        Else
            SQL = "select * from stuinfo where stuid='" & checkuid.Text & "'"
            Set rs2 = conn.Execute(SQL)
            If rs2.RecordCount > 0 Then
                If rs2!stuid = checkpwd.Text Then
                    MsgBox "普通用戶登陸成功!"
                    Me.Hide
                    infoview.Show
                Else
                    MsgBox "密碼不正確,請重新輸入!"
                    checkpwd.Text = ""
                    checkpwd.SetFocus
                End If
            Else
                MsgBox "用戶名錯誤,請重新輸入!"
                checkuid.Text = ""
                checkpwd.Text = ""
                checkuid.SetFocus
            End If
            
            rs2.Close
            Set rs2 = Nothing
        End If
        
        rs.Close
        Set rs = Nothing    conn.Close
        Set conn = Nothing
      

  13.   

    If rs!stuid = checkuid.Text Then 
    这么用会提示他報錯是報的EOF或BOF的值為TRUE,或資料錄的資料不存在 用If rs2.RecordCount > 0 Then 不会有
      

  14.   

    on error goto errDo……     exit sub
    errDo:
        ……end sub
      

  15.   

    問題已經解決 ,還是同樣的話,多謝jhone的幫助才能解決的~~~
    代碼如15樓的,但是要記住如果要調用on error goto errhandle語句的話 ,就一定要記得加上exit sub語句。就是jhone99在18樓的那種格式~~~
    再次謝謝jhone99~~~~