我现在是边学边改书上的程序,有很多不懂的地方,先谢谢大家帮助!^_^之前定义了mrc(string)、mcclean(boolean)和mybook(Variant)三个变量。Private Sub updateCommand_Click()
Dim txtSQL As String, Dim MsgText As String, Dim mrcc As ADODB.Recordset
If mcclean Then
MsgBox "请先修改课程信息", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt(txtCourseno.Text) Then
MsgBox "请输入课程编号!", vbOKOnly + vbExclamation, "警告"
txtCourseno.SetFocus
Exit Sub
End If
......(此处是和上面一样的 if 检查语句) mrc.Delete
txtSQL = "select * from course_Info where course_No = '" & Trim(txtCourseno.Text) & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If mrcc.EOF = False Then
MsgBox "课程编号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
mrcc.Close
txtCourseno.SetFocus
Else
mrcc.Close
mrc.AddNew
mrc.Fields(0) = Trim(txtCourseno.Text)
mrc.Fields(1) = Trim(txtCoursename.Text)
mrc.Fields(2) = Trim(comboCoursetype.Text)
mrc.Fields(3) = Trim(txtCoursedes.Text)
mrc.Update
MsgBox "修改课程信息成功!", vbOKOnly + vbExclamation, "警告"
mrc.Book = myBook
Call viewData mcclean = True
End If
End Sub可现在的问题是:以上的语句作用是先删除了原来的数据记录,然后在最后一条记录后面添加的新记录。我自己的想法是:让它直接更新,就象在T-SQL中运用update命令一样,麻烦大家给我一点提示。再次感谢!
Dim txtSQL As String, Dim MsgText As String, Dim mrcc As ADODB.Recordset
If mcclean Then
MsgBox "请先修改课程信息", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt(txtCourseno.Text) Then
MsgBox "请输入课程编号!", vbOKOnly + vbExclamation, "警告"
txtCourseno.SetFocus
Exit Sub
End If
......(此处是和上面一样的 if 检查语句) mrc.Delete
txtSQL = "select * from course_Info where course_No = '" & Trim(txtCourseno.Text) & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If mrcc.EOF = False Then
MsgBox "课程编号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
mrcc.Close
txtCourseno.SetFocus
Else
mrcc.Close
mrc.AddNew
mrc.Fields(0) = Trim(txtCourseno.Text)
mrc.Fields(1) = Trim(txtCoursename.Text)
mrc.Fields(2) = Trim(comboCoursetype.Text)
mrc.Fields(3) = Trim(txtCoursedes.Text)
mrc.Update
MsgBox "修改课程信息成功!", vbOKOnly + vbExclamation, "警告"
mrc.Book = myBook
Call viewData mcclean = True
End If
End Sub可现在的问题是:以上的语句作用是先删除了原来的数据记录,然后在最后一条记录后面添加的新记录。我自己的想法是:让它直接更新,就象在T-SQL中运用update命令一样,麻烦大家给我一点提示。再次感谢!
解决方案 »
- 用VB备份MSSQL2005数据库,提示超时已过期是什么问题啊?
- SetupFactory7.0打包后的安装文件,安装后菜单项里为什么多了项MS Office 2003
- pc串口和单片机通讯的问题
- 求一个SQL语句.
- 求助:ActiveReport2.0文字间距和页脚Data Dynamics公司内容怎么去掉?
- 访问加密access
- 大家帮帮忙很急,关于MSFlexgrid合并单元格问题
- 在线等待关于DATAREPORT 带参数查询的程序代码?
- 隐藏的任务怎么接收键盘输入?怎么设置快捷键?高手请进!
- vb中能制作帮助文件吗?
- 关于VsFlexGrid 7.0 Pro的输入法自动关闭
- 字符串問題
On Error Resume Next
If Command3.Caption = "修改" Then
Text1.Locked = False: Text2.Locked = False
Text1.SetFocus
Command3.Caption = "保存修改"
ElseIf MsgBox("请确认要执行该修改吗?", vbInformation + vbYesNo, "修改记录") = vbYes Then
'-----------------第一种写法之一--直接修改记录集 (吐血推荐!)
'(关键是在窗体加载时要把文本框绑定到记录集对应的字段)
'让网格中记录的移动和记录集中记录的移动--通过文本框来保持同步
'或者在网格的单击事件中写保持同步的语句(见下面)
myres.Fields(0).Value = Text1.Text
myres.Fields(1).Value = Text2.Text '-----------------第一种写法之二' myres!username = Text1.Text '!和字段名之间不能有空格
' myres!password = Text2.Text
'-----------------第二种写法--调用记录集对象的Execute方法--执行SQL语句
' mycon.BeginTrans
' mycon.Execute "update user_password set username='" & Text1 & "',password='" & Text2 & "' " & _
' "where username='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & "' and password='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) & "' "
' mycon.CommitTrans
'-----------------第三、四、五种写法:“先查后改”,确保不会去修改别的记录(书中所采用的方法,有点麻烦)
'-----------------第三种写法:调用记录集对象的Find方法进行查找 (Find后面 接SQL语句Where子句中的内容!)(抛弃!)
' myres.Find "username='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & "' and password='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) & "'"
' myres.Fields(0).Value = Text1.Text
' myres.Fields(1).Value = Text2.Text
'-----------------第四种写法:调用记录集对象的Filter属性进行查找 (Filter后面 接SQL语句Where子句中的内容!)
' myres.MoveFirst
' myres.Filter = "username='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & "' and password='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) & "'"
' myres.Fields(0).Value = Text1.Text
' myres.Fields(1).Value = Text2.Text '-----------------第五种写法:调用记录集对象的Open方法进行查找
' If myres.State = 1 Then myres.Close
' myres.Open "select * from user_password where username='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & "' and password='" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) & "'", mycon, , , 1
' myres.Fields(0).Value = Text1.Text
' myres.Fields(1).Value = Text2.Text
myres.Update
Form_Load
MsgBox "记录修改成功!"
Else
Form_Load
End If
End Sub