谁能帮我解释一下这段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
展开
 我来答
来一杯白开水吧
2011-11-08 · 超过17用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:31.9万
展开全部
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的代码
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式