返回列表 发帖
未解决

VBSQL求助调试

悬赏金额: 10 威望

现有人事管理系统一个,但存在一点错误,希望得到高手帮助。。

程序代码下载:
http://vip.pastein.net/keith/other/CH12.rar

时间推迟到下周,不过还是比较紧急。。

============

另,手头上还有一套VB数据库代码,可用,但是功能太全面太强大,需要删减。我一动就出错,寻人帮忙。。- -

代码和要求如下,顶楼也有链接。。两套代码任意完成一套即可结贴。
http://vip.pastein.net/keith/help/vbaccess.rar

[ 本帖最后由 马小玲的眼泪 于 2007-6-28 21:58 编辑 ]


把sql扣出来贴上来。。家里没装vb

TOP

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


其实时间总是那么快

TOP

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

TOP

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

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

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


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

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

SQL那段换一下就行了

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

TOP

...

SQL是不区别大小写的..

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

找Uid为某某的Uid??



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




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

TOP

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

SQL是不区别大小写的..

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

找Uid为某某的Uid??



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





表字段不区分大小写?

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

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



表字段不区分大小写?


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

TOP

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


其实时间总是那么快

TOP

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

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

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

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

结果赋给一个变量..

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


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

TOP

哎,就是求代码啊。。

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

TOP

返回列表