| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1205 人关注过本帖
标题:rs1.fields? 该怎么样改?
只看楼主 加入收藏
dragonhb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-12
收藏
 问题点数:0 回复次数:4 
rs1.fields? 该怎么样改?

Private Sub Command1_Click()
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "信息输入不全,请重新输入!", , "图书馆管理系统"
Text1.Text = ""
Text2.Text = ""
End If
Set db = OpenDatabase(App.Path & "\图书001")
Set rs1 = db.OpenRecordset("select 借书证编号 from 读者 where 借书证编号 = '" & Text1.Text & "'")
Set rs2 = db.OpenRecordset("select 图书编号 from 图书 where 图书编号 = '" & Text2.Text & "'")

If rs1.BOF = True And rs1.EOF = True Then
MsgBox ("借书证不存在" + vbCrLf + "请重新输入!")
Text1.Text = ""
Text2.Text = ""
r1.MoveFirst

Else
If rs2.BOF = True And rs2.EOF = True Then
MsgBox ("图书编号输入错误,请重新输入")
Text2.Text = ""
rs2.MoveFirst
Else
rs1.Edit
m = Val(rs1.Fields("当前借书量")) + 1 //这里提示错误 //“这个集合中找不到此项目”
rs1.fields("当前借书量") = str(m)
rs2.Fields("状态") = rs1.Fields("借书证编号")
End If
End If
rs1.Close
rs2.Close
End Sub

错误这里的大概意思就是 , 把表里的属性“当前借书量”加一,
手头没有VB书,上网找没找到简单明了的, 请各位帮帮忙

搜索更多相关主题的帖子: quot Set amp 图书 借书证 
2006-05-12 17:01
dragonhb
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-12
收藏
得分:0 

YES!问题靠自己解决,
Set rs1 = db.OpenRecordset("select 借书证编号 from 读者 where 借书证编号 = '" & Text1.Text & "'")
Set rs2 = db.OpenRecordset("select 图书编号 from 图书 where 图书编号 = '" & Text2.Text & "'")
改成
Set rs1 = db.OpenRecordset("select 借书证编号,当前借书量 from 读者 where 借书证编号 = '" & Text1.Text & "'")
Set rs2 = db.OpenRecordset("select 图书编号,状态 from 图书 where 图书编号 = '" & Text2.Text & "'")

忘把该属性包括进去了, 晕

2006-05-12 17:35
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 

我觉得一开始的几行可能有问题:
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "信息输入不全,请重新输入!", , "图书馆管理系统"
Text1.Text = ""
Text2.Text = ""
End If

既然信息输入不全,则在清空后退出过程,不能再往下进行,否则按2楼改过的语句执行得到的rs1和rs2的记录将会是为0。应该为:
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "信息输入不全,请重新输入!", , "图书馆管理系统"
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
另外用rs1.BOF = True And rs1.EOF = True 来判断是否有记录存在好像不可靠,我觉得使用:
if Rs.AbsolutePosition = adPosUnknown then
MsgBox ("借书证不存在" + vbCrLf + "请重新输入!")
Text1.Text = ""
Text2.Text = ""
Text1.setfocus
Exit Sub
endif
最好是再加一段错误处理,以免程序出错而END。


2006-05-12 22:36
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
还有一点:rs1和rs2在编辑完后应该Refresh一下,Edit和Refresh最好成对使用。

2006-05-12 22:39
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
如果输入信息不全,则可以让Command1按钮的Enable=False。
在Form模块中:
Private A as String
Private B as String

Text1_Change()
Cmd
End Sub

Text2_Change()
Cmd
End Sub

Private Sub Cmd
A=Text1.Text
B=Text1.Text

If A="" Or B="" then
Command1.Enabled=False

else
Command1.Enabled=True

endif
Command1.Default=Command1.Enabled
End Sub
或则建一个类模块在Form1中使用,你将会感觉更爽。加油吧,朋友!

[此贴子已经被作者于2006-5-12 22:50:41编辑过]


2006-05-12 22:48
快速回复:rs1.fields? 该怎么样改?
数据加载中...
 
   



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

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