| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:【求助】为什么selcet查询结果一直是-1
只看楼主 加入收藏
frank_tao78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:69
专家分:143
注 册:2010-1-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
【求助】为什么selcet查询结果一直是-1
学生成绩管理系统.rar (35.79 KB)
在实践学习一个学生管理系统,为什么select语句的查询结果一直是-1呢?不管有没有查到,很奇怪,请大师们指点!
Private Sub Command1_Click()
If Text1.Text = "" Then
    MsgBox "添加专业不能为空,请重新输入", vbOKOnly + vbExclamation, "系统提示"
    Text1.SetFocus                         'vbExclamation是感叹号
Else
    '加入专业表prof
    '首先要判断,要添加的专业,在专业表中是否已经存在
    sqltxt = "select * from prof where 专业='" & Trim(Text1.Text) & "'"
    Set rs = exesql(sqltxt)
    Label1.Caption = rs.RecordCount
    If rs.RecordCount <> 0 Then
        MsgBox "已存在相同专业,不能添加", vbOKOnly + vbCritical, "系统提示"
        Text1.SetFocus                    'vbCritical是出错符号
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.Text)
    Else
        Adodc1.Recordset.AddNew    '使adodc1可编辑
        Adodc1.Recordset.Fields("专业") = Trim(Text1.Text)    '赋值
        Adodc1.Refresh    '刷新
        List1.AddItem (Trim(Text1.Text))   'list1增加专业内容
        Text1.Text = ""      '添加成功后,text1内容清空
        MsgBox "添加专业成功", vbOKOnly, "系统提示"
    End If
    rs.Close
End If
End Sub

【模块中的exesql功能】
Public Function exesql(ByVal sql As String) As ADODB.Recordset    '执行查询语句
sql = Trim(sql)                                                   '查询语句
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
'打开数据库
conn.Open "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\stud.mdb"
'执行查询语句
Set rst = conn.Execute(sql)
'返回
Set exesql = rst

'rst.Close
'conn.Close
Set rst = Nothing    '节约资源,如果用close,则关闭了数据库,在调用时会出现对象关闭错误
Set conn = Nothing
                           
End Function



附件:
搜索更多相关主题的帖子: selcet 查询 结果 
2010-01-27 16:08
frank_tao78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:69
专家分:143
注 册:2010-1-11
收藏
得分:0 
索性直接用adodc2的find查找,如果找不到,则adodc2.eof=true,否则找到,用这种倒是一次过关,为什么,为什么???
Private Sub Command3_Click()
If Text2.Text = "" Then
    MsgBox "添加班号不能为空,请重新输入", vbOKOnly + vbCritical, "系统提示"
    Text2.SetFocus
    Text2.SelStart = 0
    Text2.SelLength = Len(Text2.Text)
Else
    '增加班号记录
    'sqltxt = "select * from classn where 班号='" & Trim(Text2.Text) & "'"
    'Set rs = exesql(sqltxt)
    sqltxt = "班号='" & Trim(Text2.Text) & "'"
    Adodc2.Recordset.MoveFirst
    Adodc2.Recordset.Find (sqltxt)
    If Adodc2.Recordset.EOF Then     '没有发现相同班号记录
        Adodc2.Recordset.AddNew
        Adodc2.Recordset.Fields("专业") = Trim(List1.Text)
        Adodc2.Recordset.Fields("班号") = Trim(Text2.Text)
        List2.AddItem (Trim(Text2.Text))
        Adodc2.Recordset.Update
        Adodc2.Recordset.Requery
        Text2.Text = ""
    Else
        MsgBox "存在相同班号,不能添加", vbOKOnly + vbCritical, "系统提示"
    End If
End If
End Sub
2010-01-27 16:41
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:7 
缺少数据库,无法调试.................

最后提个建议,不建议你 ADOBC控件 与 代码连接数据库混用.

建议你专用一种方式来连接数据库,你需要使用 ADOBC控件的,
那么所有的访问数据库都使用 ADOBC控件来使用,不要一会儿代码连接数据库,一会儿使用ADOBC连接数据库.

ADOBC,一样的可以支持 SQL 查询命令,也有 Recordset 对象,也可以使用这个对象访问数据库的所有数据.




授人于鱼,不如授人于渔
早已停用QQ了
2010-01-27 20:14
frank_tao78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:69
专家分:143
注 册:2010-1-11
收藏
得分:0 
谢谢版主的建议

我是在对照着书,自学呢,很多不懂的地方,希望大家多多帮助,兴趣
2010-01-28 10:09
frank_tao78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:69
专家分:143
注 册:2010-1-11
收藏
得分:0 
笨蛋,一直是-1,说明查询肯定是有问题的,也就是有符合条件的也没找到

问题,在哪里呢
2010-01-28 20:08
legoon
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2010-1-30
收藏
得分:7 
rs.CursorLocation = adUseClient

-1貌似就这一个原因。。。
2010-01-30 01:38
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
'Set conn = Nothing
2010-01-30 11:55
快速回复:【求助】为什么selcet查询结果一直是-1
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016915 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved