![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
谁能帮我解释一下这段vb代码(详解+感谢)
影碟添加(frmAddDisk):OptionExplicitPublicsqlStrAsStringPublicmsgTextAsStringPrivateSubcmd...
影碟添加(frmAddDisk):
Option Explicit
Public sqlStr As String
Public msgText As String
Private Sub cmdAdd_Click()
Dim rstDisk As ADODB.Recordset
Dim i As Integer
For i = 0 To 3
If txtItem(i).Text = "" Then
MsgBox "请将信息填写完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
'添加新记录
sqlStr = "select * from disks"
Set rstDisk = ExecuteSQL(sqlStr, msgText)
rstDisk.AddNew
rstDisk.Fields("diskName") = txtItem(0).Text
rstDisk.Fields("buyDate") = txtItem(1).Text
rstDisk.Fields("payForRent") = txtItem(2).Text
rstDisk.Fields("stock") = txtItem(3).Text
rstDisk.Fields("total") = txtItem(3).Text
rstDisk.Fields("description") = txtItem(4).Text
rstDisk.Fields("memo") = txtItem(5).Text
rstDisk.Fields("category") = cboType.Text
rstDisk.Update
rstDisk.Close
MsgBox "影碟信息添加完成!", vbOKOnly + vbExclamation, "警告"
initTextBox
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
'窗体居中显示
Me.Top = (Screen.Height - Me.Height) \ 2
Me.Left = (Screen.Width - Me.Width) \ 2
initTextBox
initCategories
End Sub
Sub initTextBox()
Dim i As Integer
'将文本框清空
For i = 0 To 5
txtItem(i).Text = ""
Next i
End Sub
Sub initCategories()
Dim rstCategory As ADODB.Recordset
sqlStr = "select name from categories"
Set rstCategory = ExecuteSQL(sqlStr, msgText)
cboType.Clear
If Not rstCategory.EOF Then
Do While Not rstCategory.EOF
cboType.AddItem Trim(rstCategory.Fields(0))
rstCategory.MoveNext
Loop
cboType.ListIndex = 0
Else
MsgBox "没有类别信息,请添加!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
rstCategory.Close
End Sub 展开
Option Explicit
Public sqlStr As String
Public msgText As String
Private Sub cmdAdd_Click()
Dim rstDisk As ADODB.Recordset
Dim i As Integer
For i = 0 To 3
If txtItem(i).Text = "" Then
MsgBox "请将信息填写完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
'添加新记录
sqlStr = "select * from disks"
Set rstDisk = ExecuteSQL(sqlStr, msgText)
rstDisk.AddNew
rstDisk.Fields("diskName") = txtItem(0).Text
rstDisk.Fields("buyDate") = txtItem(1).Text
rstDisk.Fields("payForRent") = txtItem(2).Text
rstDisk.Fields("stock") = txtItem(3).Text
rstDisk.Fields("total") = txtItem(3).Text
rstDisk.Fields("description") = txtItem(4).Text
rstDisk.Fields("memo") = txtItem(5).Text
rstDisk.Fields("category") = cboType.Text
rstDisk.Update
rstDisk.Close
MsgBox "影碟信息添加完成!", vbOKOnly + vbExclamation, "警告"
initTextBox
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub Form_Load()
'窗体居中显示
Me.Top = (Screen.Height - Me.Height) \ 2
Me.Left = (Screen.Width - Me.Width) \ 2
initTextBox
initCategories
End Sub
Sub initTextBox()
Dim i As Integer
'将文本框清空
For i = 0 To 5
txtItem(i).Text = ""
Next i
End Sub
Sub initCategories()
Dim rstCategory As ADODB.Recordset
sqlStr = "select name from categories"
Set rstCategory = ExecuteSQL(sqlStr, msgText)
cboType.Clear
If Not rstCategory.EOF Then
Do While Not rstCategory.EOF
cboType.AddItem Trim(rstCategory.Fields(0))
rstCategory.MoveNext
Loop
cboType.ListIndex = 0
Else
MsgBox "没有类别信息,请添加!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
rstCategory.Close
End Sub 展开
展开全部
Public sqlStr As String '//定义sql 查询字符串
Public msgText As String '//定义信息字符串信息
Private Sub cmdAdd_Click() '//点击cmdAdd按钮执行的操作
Dim rstDisk As ADODB.Recordset '//定义ado记录集对象 ,可获得记录集
Dim i As Integer
For i = 0 To 3 '//循环判断txtItem文本框 控件是否为空 ,如果为空就提示 “请将信息填写完整”
If txtItem(i).Text = "" Then
MsgBox "请将信息填写完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
'添加新记录
sqlStr = "select * from disks"
Set rstDisk = ExecuteSQL(sqlStr, msgText) '//将ExecuteSQL结果集付给ado记录集,ExecuteSQL是个函数这个模块里面没有看到,应该在公共模块中写的这个函数
rstDisk.AddNew '//ADO开始添加记录
rstDisk.Fields("diskName") = txtItem(0).Text '//将txtItem(0).Text 中的值写到diskName字段中
rstDisk.Fields("buyDate") = txtItem(1).Text '//同上
rstDisk.Fields("payForRent") = txtItem(2).Text '//同上
rstDisk.Fields("stock") = txtItem(3).Text
rstDisk.Fields("total") = txtItem(3).Text
rstDisk.Fields("description") = txtItem(4).Text
rstDisk.Fields("memo") = txtItem(5).Text
rstDisk.Fields("category") = cboType.Text
rstDisk.Update '//提交数据
rstDisk.Close '//关闭数据集
MsgBox "影碟信息添加完成!", vbOKOnly + vbExclamation, "警告"
initTextBox '//调用初始化文本框函数
End Sub
Private Sub cmdCancel_Click() '//点击退出按钮
Unload Me '//关闭窗口
End Sub
Private Sub Form_Load()
'窗体居中显示
Me.Top = (Screen.Height - Me.Height) \ 2
Me.Left = (Screen.Width - Me.Width) \ 2
initTextBox '//初始化文本框内容
initCategories ’'//初始化类别信息
End Sub
Sub initTextBox()
Dim i As Integer
'将文本框清空
For i = 0 To 5
txtItem(i).Text = ""
Next i
End Sub
Sub initCategories()
Dim rstCategory As ADODB.Recordset '//定义ADO记录集
sqlStr = "select name from categories"
Set rstCategory = ExecuteSQL(sqlStr, msgText)
cboType.Clear ’//下拉框清空
If Not rstCategory.EOF Then ‘//判断记录集是否为空
Do While Not rstCategory.EOF ’//循环至记录集结束
cboType.AddItem Trim(rstCategory.Fields(0)) '//添加记录集中字段索引为0的信息到控件中
rstCategory.MoveNext '//移动记录集到下一个
Loop
cboType.ListIndex = 0 '//下拉列表控件移动第一个
Else
MsgBox "没有类别信息,请添加!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
rstCategory.Close '//关闭数据集
End Sub
上面代码中用了vb中名称相同控件的索引值方法,达到快速检索作用,该功能在vb.net中已经没有该功能,该代码是vb6.0的代码
Public msgText As String '//定义信息字符串信息
Private Sub cmdAdd_Click() '//点击cmdAdd按钮执行的操作
Dim rstDisk As ADODB.Recordset '//定义ado记录集对象 ,可获得记录集
Dim i As Integer
For i = 0 To 3 '//循环判断txtItem文本框 控件是否为空 ,如果为空就提示 “请将信息填写完整”
If txtItem(i).Text = "" Then
MsgBox "请将信息填写完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
'添加新记录
sqlStr = "select * from disks"
Set rstDisk = ExecuteSQL(sqlStr, msgText) '//将ExecuteSQL结果集付给ado记录集,ExecuteSQL是个函数这个模块里面没有看到,应该在公共模块中写的这个函数
rstDisk.AddNew '//ADO开始添加记录
rstDisk.Fields("diskName") = txtItem(0).Text '//将txtItem(0).Text 中的值写到diskName字段中
rstDisk.Fields("buyDate") = txtItem(1).Text '//同上
rstDisk.Fields("payForRent") = txtItem(2).Text '//同上
rstDisk.Fields("stock") = txtItem(3).Text
rstDisk.Fields("total") = txtItem(3).Text
rstDisk.Fields("description") = txtItem(4).Text
rstDisk.Fields("memo") = txtItem(5).Text
rstDisk.Fields("category") = cboType.Text
rstDisk.Update '//提交数据
rstDisk.Close '//关闭数据集
MsgBox "影碟信息添加完成!", vbOKOnly + vbExclamation, "警告"
initTextBox '//调用初始化文本框函数
End Sub
Private Sub cmdCancel_Click() '//点击退出按钮
Unload Me '//关闭窗口
End Sub
Private Sub Form_Load()
'窗体居中显示
Me.Top = (Screen.Height - Me.Height) \ 2
Me.Left = (Screen.Width - Me.Width) \ 2
initTextBox '//初始化文本框内容
initCategories ’'//初始化类别信息
End Sub
Sub initTextBox()
Dim i As Integer
'将文本框清空
For i = 0 To 5
txtItem(i).Text = ""
Next i
End Sub
Sub initCategories()
Dim rstCategory As ADODB.Recordset '//定义ADO记录集
sqlStr = "select name from categories"
Set rstCategory = ExecuteSQL(sqlStr, msgText)
cboType.Clear ’//下拉框清空
If Not rstCategory.EOF Then ‘//判断记录集是否为空
Do While Not rstCategory.EOF ’//循环至记录集结束
cboType.AddItem Trim(rstCategory.Fields(0)) '//添加记录集中字段索引为0的信息到控件中
rstCategory.MoveNext '//移动记录集到下一个
Loop
cboType.ListIndex = 0 '//下拉列表控件移动第一个
Else
MsgBox "没有类别信息,请添加!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
rstCategory.Close '//关闭数据集
End Sub
上面代码中用了vb中名称相同控件的索引值方法,达到快速检索作用,该功能在vb.net中已经没有该功能,该代码是vb6.0的代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询