返回列表 发帖
Private Sub cmdOK_Click()
    Dim mrc As ADODB.Recordset
    Dim strmsg As String
    txtSQL = "select count(*) from userinfo where UID='" & Trim(txtUserName.Text) & "' and PWD="'" & Trim(txtPassword.Text) & '"
    Set mrc = ExecuteSQL(txtSQL, strmsg)
    Dim return_count
    return_count=mrc.Fields(0)
   if return_count=0 then
      MsgBox " 用户名不存在或密码错误!", vbExclamation + vbOKOnly, "警告"
  end if
    OK = True
    frmMain.Show
    Unload Me
End Sub


试下吧..

根据你写的改的..


[ 本帖最后由 .lemon. 于 2007-6-28 15:43 编辑 ]
其实时间总是那么快

TOP

别用eof.用recordcount..

TOP

哎,就是求代码啊。。

我程序学的乱七八糟,要能自己动手也就不求人了。。- -

TOP

楼主改下select语句,你这个逻辑有问题.纪录集为空,  你EOF不报错才怪..

select count(*) from userinfo where uid=txtUserName的内容

具体代码我就不细说了(其实n久不做vb忘了语法.. - -)

思路是sql返回的是你当前符合txtUserName输入内容的数量..

结果赋给一个变量..

如果是0 则证明没有这条数据


[ 本帖最后由 .lemon. 于 2007-6-28 15:10 编辑 ]
其实时间总是那么快

TOP

我觉得还是逻辑错误,纪录集最常见的报错,要么是空,要么索引器超出范围..


其实时间总是那么快

TOP

原帖由 蜡烛鞭三郎 于 2007-6-28 14:47 发表



表字段不区分大小写?


8区别的..自己开查询分析器试下不就知道了..
其实时间总是那么快

TOP

原帖由 tenshinx 于 2007-6-28 14:30 发表
我看了下。可能是这个错。

你压缩包里的userinfo这个表的建立sql是这个,注意黑体字




你的cmdok_Click事件下面的sql里是select uid from userinfo  大小写问题。
把txtSQL = "select uid from userinfo where UID='" & Trim(txtUserName.Text) & "'"这句里的uid改成UID(大写)试试

仅仅是把这个改成UID吗?似乎依然有问题。

原帖由 蜡烛鞭三郎 于 2007-6-28 14:33 发表
txtSQL = "select UID "
  txtSQL = txtSQL & " from userinfo "
  txtSQL = txtSQL & "where UID ='" & Trim(txtUserName.Text) & "'"

SQL那段换一下就行了

LZ恶搞... Where语句里用UID  Select后面跟 ...

换什么,哪里换..


------------------

另,根据程序提示,"    If mrc.EOF = True Then" 这里有问题。

TOP

原帖由 .lemon. 于 2007-6-28 14:39 发表
...

SQL是不区别大小写的..

语法是成立的,但逻辑上有错误- -

找Uid为某某的Uid??



ps.一般有编译器环境做软件,报错,或结果有出入就跟踪一下啊.. 每步每步对照问题出在哪....





表字段不区分大小写?

TOP

...

SQL是不区别大小写的..

语法是成立的,但逻辑上有错误- -

找Uid为某某的Uid??



ps.一般有编译器环境做软件,报错,或结果有出入就跟踪一下啊.. 每步每步对照问题出在哪....




[ 本帖最后由 .lemon. 于 2007-6-28 14:44 编辑 ]
其实时间总是那么快

TOP

txtSQL = "select UID "
  txtSQL = txtSQL & " from userinfo "
  txtSQL = txtSQL & "where UID ='" & Trim(txtUserName.Text) & "'"

SQL那段换一下就行了

LZ恶搞... Where语句里用UID  Select后面跟 uid
难道是2个字段?

TOP

我看了下。可能是这个错。


CREATE TABLE [dbo].[userinfo] (
        [UID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
        [PWD] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
        [user_Des] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

你压缩包里的userinfo这个表的建立sql是这个,注意黑体字


Private Sub cmdOK_Click()
    Dim mrc As ADODB.Recordset
    Dim strmsg As String
    txtSQL = "select uid from userinfo where UID='" & Trim(txtUserName.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, strmsg)
    If mrc.EOF = True Then
        MsgBox " 用户名错误!", vbExclamation + vbOKOnly, "警告"
        txtUserName.SetFocus
        txtUserName.SelStart = 0
        txtUserName.SelLength = Len(txtUserName.Text)
        Exit Sub
    End If
    UserName = mrc.Fields(0)
    txtSQL = "select UID from userinfo where PWD='" & Trim(txtPassword.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, strmsg)
    If mrc.EOF = True Then
        MsgBox " 密码错误!", vbExclamation + vbOKOnly, "警告"
        txtPassword.SetFocus
        txtPassword.SelStart = 0
        txtPassword.SelLength = Len(txtPassword.Text)
        Exit Sub
    End If
    OK = True
    frmMain.Show
    Unload Me
End Sub




你的cmdok_Click事件下面的sql里是select uid from userinfo  大小写问题。
把txtSQL = "select uid from userinfo where UID='" & Trim(txtUserName.Text) & "'"这句里的uid改成UID(大写)试试

[ 本帖最后由 tenshinx 于 2007-6-28 14:32 编辑 ]

TOP

说不清楚

Private Sub cmdOK_Click()
    Dim mrc As ADODB.Recordset
    Dim strmsg As String
    txtSQL = "select uid from userinfo where UID='" & Trim(txtUserName.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, strmsg)
    If mrc.EOF = True Then
        MsgBox " 用户名错误!", vbExclamation + vbOKOnly, "警告"
        txtUserName.SetFocus
        txtUserName.SelStart = 0
        txtUserName.SelLength = Len(txtUserName.Text)
        Exit Sub
    End If
    UserName = mrc.Fields(0)
    txtSQL = "select UID from userinfo where PWD='" & Trim(txtPassword.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, strmsg)
    If mrc.EOF = True Then
        MsgBox " 密码错误!", vbExclamation + vbOKOnly, "警告"
        txtPassword.SetFocus
        txtPassword.SelStart = 0
        txtPassword.SelLength = Len(txtPassword.Text)
        Exit Sub
    End If
    OK = True
    frmMain.Show
    Unload Me
End Sub


提示这个有问题。。

TOP

没装vb呀。。最近又休息。不去公司,说哪个模块错了?

TOP

数据库和程序代码都在压缩包里。。

TOP

么装vb  你去csdn的vb/delphi版块问啊.. 那里高手如云- -


其实时间总是那么快

TOP

返回列表