3265错误,帮忙给说一下,老是这种错误

zhegemeibanfa 2010-05-29 11:32:55
Option Explicit
Dim temp As New ADODB.Recordset
Public db As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
Dim strsql1 As String



Private Sub Cmddelete_Click()

rst.Delete
rst.Requery
If rst.RecordCount() = 0 Then '累计记录个数
clearfield
hidebutton
MsgBox "数据库中已经没有记录了!"

Exit Sub
End If

rst.MoveNext
If rst.EOF Then
rst.MoveLast
End If
filltext '填充文本框


adodclass.Refresh

End Sub




Private Sub Cmdexit_Click()
db.Close
Unload Me
frmmain.Show vbModal

End Sub

Private Sub cmdfind_Click()
Dim findstr As String

findstr = InputBox("请输入要查找的班级名称:", "查找提示窗口")
rst.find "classname='" & findstr & "'"
If rst.EOF = True Then

MsgBox "没有要查询的数据!"
Exit Sub

End If


filltext
End Sub

Private Sub cmdfirst_Click()
rst.MoveFirst
filltext
End Sub

Private Sub Cmdlast_Click()
rst.MoveLast
filltext
End Sub



Private Sub Cmdmodify_Click()

strSQL = "SELECT * FROM bspeciality"
If Txtmajorid.Text = "" Then
MsgBox "请输入专业编号!"
Txtmajorid.SetFocus
Exit Sub
End If

temp.Open strSQL, db, adOpenStatic, adLockOptimistic'就是这句执行不过去了,帮帮忙啊!


temp.Filter = "SpecID='" & Txtmajorid.Text & "'"
temp.Requery
If temp.RecordCount = 0 Then
MsgBox ("这个专业方向编号不存在,编辑操作失败!")
temp.Close
Exit Sub
End If
temp.Close


If TxtClassID.Text = "" Then
MsgBox "请输入班级编号!"
TxtClassID.SetFocus
Exit Sub

End If

If Txtclassname.Text = "" Then
MsgBox "请输入班级名称!"
Txtclassname.SetFocus
Exit Sub

End If

If Txtnumber.Text = "" Then
MsgBox "请输入班级人数!"
Txtnumber.SetFocus
Exit Sub

End If


fillrecord
rst.Update
adodclass.Refresh
Txtmajorid.SetFocus
End Sub

Private Sub Cmdnext_Click()
rst.MoveNext
If rst.EOF Then
MsgBox "这是最后一个记录了!"
rst.MoveLast
End If
filltext
End Sub

Private Sub Cmdprevious_Click()
rst.MovePrevious
If rst.BOF Then
MsgBox "这是第一个记录了!"
rst.MoveFirst
End If
filltext
End Sub

Private Sub Cmdadd_Click()
strSQL = "SELECT * FROM bspeciality"

If Txtmajorid.Text = "" Then
MsgBox "请输入专业编号!"
Txtmajorid.SetFocus
Exit Sub
Else

temp.Open strSQL, db, adOpenStatic, adLockOptimistic
temp.Filter = "SpecID='" & Txtmajorid.Text & "'"
temp.Requery

If temp.RecordCount = 0 Then
MsgBox ("这个专业方向编号不存在,编辑操作失败!")
temp.Close
Exit Sub
End If
temp.Close
End If


strsql1 = "select * from bclass"


If TxtClassID.Text = "" Then
MsgBox "请输入班级编号!"
TxtClassID.SetFocus
Exit Sub
Else
temp.Open strsql1, db, adOpenStatic, adLockOptimistic
temp.Filter = "classid='" & TxtClassID.Text & "'"
temp.Requery
If temp.RecordCount <> 0 Then
MsgBox ("这个班级编号已存在,您输入的信息不能被保存!")
temp.Close
Exit Sub
End If
temp.Close
'If rst.RecordCount() <> 0 Then
' rst.MoveLast
End If
'rst.AddNew



If Txtclassname.Text = "" Then
MsgBox "请输入班级名称!"
Txtclassname.SetFocus
Exit Sub

End If

If Txtnumber.Text = "" Then
MsgBox "请输入班级人数!"
Txtnumber.SetFocus
Exit Sub

End If


rst.AddNew
fillrecord
rst.Update
clearfield
rst.Requery
showbutton
Txtmajorid.SetFocus
adodclass.Refresh

Exit Sub

End Sub


Private Sub Command1_Click()
clearfield
Txtmajorid.SetFocus


End Sub

Private Sub Dgdclass_Click()
If rst.RecordCount = 0 Then
TxtClassID.SetFocus
Exit Sub
End If

TxtClassID.Text = Dgdclass.Columns(0).Text
Txtclassname.Text = Dgdclass.Columns(1).Text
Txtmajorid.Text = Dgdclass.Columns(3).Text
Txtnumber.Text = Dgdclass.Columns(4).Text
End Sub




Private Sub Dgdmajor_Click()
strSQL = "SELECT SpecID FROM bspeciality"

temp.Open strSQL, db, adOpenKeyset, adLockOptimistic
If temp.RecordCount = 0 Then
TxtClassID.SetFocus
temp.Close

Exit Sub
End If
temp.Close

Txtmajorid.Text = Dgdmajor.Columns(0).Text


End Sub

Private Sub Dgdmajor_GotFocus()
Dgdclass.Visible = False
End Sub





Public Sub filltext()

If rst.RecordCount = 0 Then
Exit Sub
End If

Txtmajorid.Text = rst.Fields("SpecID")
TxtClassID.Text = rst.Fields("ClassID")
Txtclassname.Text = rst.Fields("ClassName")
Txtnumber.Text = rst.Fields("ClassStuNum")

End Sub

Public Sub clearfield()
Txtmajorid.Text = ""
TxtClassID.Text = ""
Txtclassname.Text = ""
Txtnumber.Text = ""
End Sub

'连接到数据库
Private Function ConenctToDatabase() As Boolean
On Error GoTo ErrorHandler
Dim DBName As String, ServerAdd As String, UserName As String, UserPwd As String
'设置连接信息字符串的参数
ServerAdd = "YJFW-Z98J06J19"
DBName = "Paike"
UserName = "sa"
UserPwd = ""
'连接数据库
Set db = New ADODB.Connection
db.ConnectionTimeout = 10
db.CursorLocation = adUseServer
db.ConnectionString = "uid=" & UserName & ";pwd=" & UserPwd & _
";driver={SQL Server};server=" & ServerAdd & _
";database=" & DBName & ";dsn=''"
db.Open
'返回值
ConenctToDatabase = True
Exit Function
ErrorHandler:
MsgBox "连接到数据库出错", vbCritical, "出现错误"
Exit Function
End Function




Private Sub Form_Load()

strSQL = "SELECT * FROM bClass"
ConenctToDatabase
rst.Open strSQL, db, adOpenKeyset, adLockOptimistic

If rst.RecordCount() = 0 Then
'clearfield
hidebutton
Else
showbutton
'rst.MoveFirst
'filltext

End If
filltext

Dgdclass.Visible = False




End Sub


Public Sub hidebutton()
Cmddelete.Enabled = False
Cmdnext.Enabled = False
cmdfirst.Enabled = False
Cmdlast.Enabled = False
Cmdmodify.Enabled = False
Cmdprevious.Enabled = False
End Sub

Public Sub showbutton()
Cmddelete.Enabled = True
Cmdnext.Enabled = True
cmdfirst.Enabled = True
Cmdlast.Enabled = True
Cmdmodify.Enabled = True
Cmdprevious.Enabled = True
End Sub

Public Sub fillrecord()

If Val(Txtmajorid.Text) = 0 Then
MsgBox "请输入正确的专业编号!"
Else
rst.Fields("SpecID") = Txtmajorid.Text
End If
'strSQL = "select classid from bclass where classid = '" & TxtClassID.Text & "'"

'temp.Open strSQL, db, adOpenStatic, adLockOptimistic


'If temp.RecordCount <> 0 Then
' MsgBox "该班级编号已存在!"
'TxtClassID.SetFocus
'End If
If Val(TxtClassID.Text) = 0 Then
MsgBox "请输入正确的班级编号!"
Else
rst.Fields("ClassID") = TxtClassID.Text
End If
rst.Fields("ClassName") = Txtclassname.Text
If Val(Txtnumber.Text) = 0 Then
MsgBox "请输入正确的人数!"
Else
rst.Fields("ClassStuNum") = Txtnumber.Text
End If
End Sub





Private Sub Txtclassid_Click()
adodclass.RecordSource = "select * from bClass "
adodclass.Refresh

End Sub


Private Sub Txtclassid_GotFocus()
adodclass.RecordSource = "select * from bClass "
adodclass.Refresh
Dgdmajor.Visible = False
Dgdclass.Visible = True
End Sub

Private Sub txtmajorid_Change()
adodclass.RecordSource = "select specID,ClassID,ClassName,ClassStuNum from bClass where SpecID='" & Txtmajorid.Text & "'"
adodclass.Refresh

End Sub



Private Sub Txtmajorid_GotFocus()
Dgdmajor.Visible = True
Dgdclass.Visible = False
End Sub

...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaboyzyq 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhegemeibanfa 的回复:]
temp.Open strSQL, db, adOpenStatic, adLockOptimistic'就是这句执行不过去了,帮帮忙啊!
'是只能执行一遍,不退出系统,第二次再进行这个操作时,就出现错误了
[/Quote]

这样写:
.
.
if temp.state=1 then temp.close
temp.Open strSQL, db, adOpenStatic, adLockOptimistic
.
.
假如OK,请结贴。
zhegemeibanfa 2010-05-31
  • 打赏
  • 举报
回复
Private Sub Cmdmodify_Click()

strSQL = "SELECT * FROM bspeciality"
If Txtmajorid.Text = "" Then
MsgBox "请输入专业编号!"
Txtmajorid.SetFocus
Exit Sub
End If

temp.Open strSQL, db, adOpenStatic, adLockOptimistic'就是这句执行不过去了,帮帮忙啊!
'是只能执行一遍,不退出系统,第二次再进行这个操作时,就出现错误了


temp.Filter = "SpecID='" & Txtmajorid.Text & "'"
temp.Requery
If temp.RecordCount = 0 Then
MsgBox ("这个专业方向编号不存在,编辑操作失败!")
temp.Close
Exit Sub
End If
temp.Close


If TxtClassID.Text = "" Then
MsgBox "请输入班级编号!"
TxtClassID.SetFocus
Exit Sub

End If

If Txtclassname.Text = "" Then
MsgBox "请输入班级名称!"
Txtclassname.SetFocus
Exit Sub

End If

If Txtnumber.Text = "" Then
MsgBox "请输入班级人数!"
Txtnumber.SetFocus
Exit Sub

End If


fillrecord
rst.Update
adodclass.Refresh
Txtmajorid.SetFocus
End Sub
zhegemeibanfa 2010-05-31
  • 打赏
  • 举报
回复
哦,已经是sp6了,试试这个连接方式吧,谢
chinaboyzyq 2010-05-30
  • 打赏
  • 举报
回复
修改数据库连接方式,尽量不使用ODBC方式连接。
升级vb6到VB6 SP6
----------------------------------------------------------------------------------------
用以下方式连接,试试:
cnn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
"User ID=sa;Password=dg;Data Source=127.0.0.1"

三断笛 2010-05-30
  • 打赏
  • 举报
回复
代码太长了....发关键部分不好嘛```

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧