Private Sub cmdupdate_Click() Dim txtsql, msgtext As String Dim mrcc As adodb.Recordset If mcclean Then MsgBox "请先修改成绩信息", vbOKOnly + vbExclamation, "警告" Exit Sub End IfIf Not testtxt(comboexamtype.Text) Then MsgBox "请输入考试编号!", vbOKOnly + vbExclamation, "警告" comboexamtype.SetFocus Exit Sub End IfIf Not testtxt(comboclassno.Text) Then MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告" comboclassno.SetFocus Exit Sub End IfIf Not testtxt(combosid.Text) Then MsgBox "请选择学号!", vbOKOnly + vbExclamation, "警告" combosid.SetFocus Exit Sub End IfIf Not testtxt(txtname.Text) Then MsgBox "请输入姓名!", vbOKOnly + vbExclamation, "警告" txtname.SetFocus Exit Sub End IfIf Not testtxt(combocourse.Text) Then MsgBox "请选择课程!", vbOKOnly + vbExclamation, "警告" combocourse.SetFocus Exit Sub End IfIf Not testtxt(txtresult.Text) Then MsgBox "请输入分数!", vbOKOnly + vbExclamation, "警告" txtresult.SetFocus Exit Sub End If If Not IsNumeric(Trim(comboclassno.Text)) Then MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告" Exit Sub comboclassno.SetFocus End IfIf Not IsNumeric(Trim(txtresult.Text)) Then MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告" Exit Sub txtresult.SetFocus End IfIf Not IsNumeric(Trim(combosid.Text)) Then MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告" Exit Sub txtsid.SetFocus End If mrc.Deletetxtsql = "select * from result_info where student_id='" & Trim(combosid.Text) & "'" Set mrcc = executesql(txtsql, msgtext) If mrcc.EOF = False Then MsgBox "学号重复,请重新输入!", vbOKOnly + vbExclamation, "警告" mrcc.Close txtsid.SetFocus Else mrc.AddNew mrc.Fields(0) = Trim(comboexamtype.Text) mrc.Fields(1) = Trim(combosid.Text) mrc.Fields(2) = Trim(txtname.Text)mrc.Fields(3) = Trim(comboclassno.Text) mrc.Fields(4) = Trim(combocourse.Text) mrc.Fields(5) = Trim(txtresult.Text)mrc.Update MsgBox "修改成绩信息成功", vbOKOnly + vbExclamation, "修改成绩信息" mrc.Book = mybook Call viewdata Frame2.Enabled = True cmdfirst.Enabled = True cmdprevious.Enabled = True cmdnext.Enabled = True cmdlast.Enabled = Truecomboexamtype.Enabled = False comboclassno.Enabled = False combosid.Enabled = False txtname.Enabled = False combocourse.Enabled = False txtresult.Enabled = Falsemcclean = True '指的是:在修改完毕之后又恢复到修改状态 End IfEnd Sub注意一下这里的,mrc.Book = mybook用法,,,,,上面还有一处作标签的地方是 mybook=mrc.Book
mybook=mrc.Book 这句在哪写啊,我怎么找不到
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index Case 1 ''前进 '修改后点击此键出错,且不能保存,提示操作被取消 ' On Error GoTo First_err Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst End If 'First_err: ' MsgBox Err.Description, vbOKOnly + vbExclamation, "警告"
Case 2 ''后退 '修改后点击此键出错,且不能保存,提示操作被取消 ' On Error GoTo second_err Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If 'second_err: 'MsgBox Err.Description, vbOKOnly + vbExclamation, "警告"
Case 4 ''增加 On Error GoTo add_error Adodc1.Recordset.AddNewadd_error: If Err.Number = 3426 Then MsgBox "已经使用过添加记录! 错误:" & Err & "," & Err.Description, 0, "提示" Unload Me End If Toolbar1.Buttons(1).Visible = False Toolbar1.Buttons(2).Visible = False Toolbar1.Buttons(4).Visible = False Toolbar1.Buttons(5).Visible = True Toolbar1.Buttons(6).Visible = True Toolbar1.Buttons(7).Visible = False Case 5 ''确定 ‘修改后不能保存为什么?????? On Error GoTo update_error If Text1.Text = "" Then MsgBox "必须填写元器件名称!", 0, "提示" Exit Sub End If If Text2.Text = "" Then MsgBox "必须填写元器件型号!", 0, "提示" Exit Sub End If ‘ Adodc1.Recordset.Book = Varbook1 ’不知如何用,在哪给Varbook1值 ’ Adodc1.Recordset.Fields(1) = Text1 ‘ Adodc1.Recordset.Fields(2) = Text2 ’ Adodc1.Recordset.Update
update_error: If Err.Number = 3020 Then MsgBox "请先添加记录! 错误:" & Err & "," & Err.Description, 0, "提示" Unload Me End If Toolbar1.Buttons(1).Visible = True Toolbar1.Buttons(2).Visible = True Toolbar1.Buttons(4).Visible = True Toolbar1.Buttons(5).Visible = True Toolbar1.Buttons(6).Visible = True Toolbar1.Buttons(7).Visible = True Case 6 ''取消 On Error GoTo CanceErr' Adodc1.Recordset.Edit Adodc1.Recordset.CancelUpdate Toolbar1.Buttons(1).Visible = True Toolbar1.Buttons(2).Visible = True Toolbar1.Buttons(4).Visible = True Toolbar1.Buttons(5).Visible = True Toolbar1.Buttons(6).Visible = True Toolbar1.Buttons(7).Visible = True CanceErr: If Err.Number = 3021 Then MsgBox "没有记录! 错误:" & Err & "," & Err.Description, 0, "提示" End If Case 7 ''删除 On Error GoTo del_error a = MsgBox("真的删除吗?", vbExclamation + vbOKCancel + vbApplicationModal, "删除记录") If a = 1 Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveLast End If If a = 2 Then Exit Sub del_error: If Err.Number = 3426 Then MsgBox "已经全部删除! 错误:" & Err & "," & Err.Description, 0, "提示" Unload Me End If End Select End Sub
在修改记录集中的数据前,先检查数据库是否可以更新: 使用以下代码检查: if adodc1.readonly=true or adodc1.database.updatable=false or _ adodc1.recordset.updatable=false then msgbox"该数据库无法更新“ end if
Set objCn = New Connection With objCn .Provider = "SQLOLEDB" .ConnectionString = "user id=sa;pwd=123;data source=qifeng;" & "Initial Catalog=jyglxt" .Open End With Set objRs = New Recordset With objRs .CursorLocation = adUseClient .LockType = adLockBatchOptimistic .Open "select * from organ_name_database", objCn Set .ActiveConnection = Nothing End With objCn.Close
Set Text1.DataSource = objRs Text1.DataField = "名称" Set Text2.DataSource = objRs Text2.DataField = "型号"
txtmsg = objRs.AbsolutePosition & "/" & objRs.RecordCountEnd Sub
Dim txtsql, msgtext As String
Dim mrcc As adodb.Recordset
If mcclean Then
MsgBox "请先修改成绩信息", vbOKOnly + vbExclamation, "警告"
Exit Sub
End IfIf Not testtxt(comboexamtype.Text) Then
MsgBox "请输入考试编号!", vbOKOnly + vbExclamation, "警告"
comboexamtype.SetFocus
Exit Sub
End IfIf Not testtxt(comboclassno.Text) Then
MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
comboclassno.SetFocus
Exit Sub
End IfIf Not testtxt(combosid.Text) Then
MsgBox "请选择学号!", vbOKOnly + vbExclamation, "警告"
combosid.SetFocus
Exit Sub
End IfIf Not testtxt(txtname.Text) Then
MsgBox "请输入姓名!", vbOKOnly + vbExclamation, "警告"
txtname.SetFocus
Exit Sub
End IfIf Not testtxt(combocourse.Text) Then
MsgBox "请选择课程!", vbOKOnly + vbExclamation, "警告"
combocourse.SetFocus
Exit Sub
End IfIf Not testtxt(txtresult.Text) Then
MsgBox "请输入分数!", vbOKOnly + vbExclamation, "警告"
txtresult.SetFocus
Exit Sub
End If
If Not IsNumeric(Trim(comboclassno.Text)) Then
MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告"
Exit Sub
comboclassno.SetFocus
End IfIf Not IsNumeric(Trim(txtresult.Text)) Then
MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告"
Exit Sub
txtresult.SetFocus
End IfIf Not IsNumeric(Trim(combosid.Text)) Then
MsgBox "请输入数字", vbOKOnly + vbExclamation, "警告"
Exit Sub
txtsid.SetFocus
End If
mrc.Deletetxtsql = "select * from result_info where student_id='" & Trim(combosid.Text) & "'"
Set mrcc = executesql(txtsql, msgtext)
If mrcc.EOF = False Then
MsgBox "学号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
mrcc.Close
txtsid.SetFocus
Else
mrc.AddNew
mrc.Fields(0) = Trim(comboexamtype.Text)
mrc.Fields(1) = Trim(combosid.Text)
mrc.Fields(2) = Trim(txtname.Text)mrc.Fields(3) = Trim(comboclassno.Text)
mrc.Fields(4) = Trim(combocourse.Text)
mrc.Fields(5) = Trim(txtresult.Text)mrc.Update
MsgBox "修改成绩信息成功", vbOKOnly + vbExclamation, "修改成绩信息"
mrc.Book = mybook
Call viewdata
Frame2.Enabled = True
cmdfirst.Enabled = True
cmdprevious.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = Truecomboexamtype.Enabled = False
comboclassno.Enabled = False
combosid.Enabled = False
txtname.Enabled = False
combocourse.Enabled = False
txtresult.Enabled = Falsemcclean = True '指的是:在修改完毕之后又恢复到修改状态
End IfEnd Sub注意一下这里的,mrc.Book = mybook用法,,,,,上面还有一处作标签的地方是 mybook=mrc.Book
Select Case Button.Index
Case 1 ''前进 '修改后点击此键出错,且不能保存,提示操作被取消
' On Error GoTo First_err
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF = True Then
Adodc1.Recordset.MoveFirst
End If
'First_err:
' MsgBox Err.Description, vbOKOnly + vbExclamation, "警告"
Case 2 ''后退 '修改后点击此键出错,且不能保存,提示操作被取消
' On Error GoTo second_err
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MoveLast
End If
'second_err:
'MsgBox Err.Description, vbOKOnly + vbExclamation, "警告"
Case 4 ''增加
On Error GoTo add_error
Adodc1.Recordset.AddNewadd_error:
If Err.Number = 3426 Then
MsgBox "已经使用过添加记录! 错误:" & Err & "," & Err.Description, 0, "提示"
Unload Me
End If
Toolbar1.Buttons(1).Visible = False
Toolbar1.Buttons(2).Visible = False
Toolbar1.Buttons(4).Visible = False
Toolbar1.Buttons(5).Visible = True
Toolbar1.Buttons(6).Visible = True
Toolbar1.Buttons(7).Visible = False
Case 5 ''确定 ‘修改后不能保存为什么??????
On Error GoTo update_error
If Text1.Text = "" Then
MsgBox "必须填写元器件名称!", 0, "提示"
Exit Sub
End If
If Text2.Text = "" Then
MsgBox "必须填写元器件型号!", 0, "提示"
Exit Sub
End If
‘ Adodc1.Recordset.Book = Varbook1 ’不知如何用,在哪给Varbook1值 ’ Adodc1.Recordset.Fields(1) = Text1
‘ Adodc1.Recordset.Fields(2) = Text2
’ Adodc1.Recordset.Update
update_error:
If Err.Number = 3020 Then
MsgBox "请先添加记录! 错误:" & Err & "," & Err.Description, 0, "提示"
Unload Me
End If
Toolbar1.Buttons(1).Visible = True
Toolbar1.Buttons(2).Visible = True
Toolbar1.Buttons(4).Visible = True
Toolbar1.Buttons(5).Visible = True
Toolbar1.Buttons(6).Visible = True
Toolbar1.Buttons(7).Visible = True
Case 6 ''取消
On Error GoTo CanceErr' Adodc1.Recordset.Edit
Adodc1.Recordset.CancelUpdate
Toolbar1.Buttons(1).Visible = True
Toolbar1.Buttons(2).Visible = True
Toolbar1.Buttons(4).Visible = True
Toolbar1.Buttons(5).Visible = True
Toolbar1.Buttons(6).Visible = True
Toolbar1.Buttons(7).Visible = True
CanceErr:
If Err.Number = 3021 Then
MsgBox "没有记录! 错误:" & Err & "," & Err.Description, 0, "提示"
End If
Case 7 ''删除
On Error GoTo del_error
a = MsgBox("真的删除吗?", vbExclamation + vbOKCancel + vbApplicationModal, "删除记录")
If a = 1 Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveLast
End If
If a = 2 Then Exit Sub
del_error:
If Err.Number = 3426 Then
MsgBox "已经全部删除! 错误:" & Err & "," & Err.Description, 0, "提示"
Unload Me
End If
End Select
End Sub
使用以下代码检查:
if adodc1.readonly=true or adodc1.database.updatable=false or _ adodc1.recordset.updatable=false then
msgbox"该数据库无法更新“
end if
'这种方法也不行,跟书上一样打的,为什么还是不行
objCn.Open
Set objRs.ActiveConnection = objCn
objRs.UpdateBatch adAffectAllChapters
Set objRs.ActiveConnection = Nothing
objRs.Close
objCn.Close
MsgBox "保存操作已经成功完成!", 0, "提示"
End SubPrivate Sub Form_Load()
Set objCn = New Connection
With objCn
.Provider = "SQLOLEDB"
.ConnectionString = "user id=sa;pwd=123;data source=qifeng;" & "Initial Catalog=jyglxt"
.Open
End With
Set objRs = New Recordset
With objRs
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.Open "select * from organ_name_database", objCn
Set .ActiveConnection = Nothing
End With
objCn.Close
Set Text1.DataSource = objRs
Text1.DataField = "名称"
Set Text2.DataSource = objRs
Text2.DataField = "型号"
txtmsg = objRs.AbsolutePosition & "/" & objRs.RecordCountEnd Sub