小弟有几行 VB 代码看不明白,请前辈进来指点一下!

来源:百度知道 编辑:UC知道 时间:2024/06/10 05:16:38
下面的代码为按钮的单击事件,此按钮的功能是将Excel表格导入到数据库中,下面用大括号包着的代码(有两处)小弟看不懂,能否请明白的前辈在大括号内的每行代码旁边注释一下,万分感谢!

Private Sub cmdInputfromexcel_Click()

'导入EXCEL数据
{ Set dlgOpen = Application.FileDialog(3)
With dlgOpen
.AllowMultiSelect = 0
.Show
End With
If dlgOpen.SelectedItems.Count > 0 Then
For i = 1 To dlgOpen.SelectedItems.Count
DoCmd.TransferSpreadsheet acImport, 8, "test1", dlgOpen.SelectedItems(i), True, ""
Next i
Set dlgOpen = Nothing
End If }
'设置编号,加入主表
Dim rs As DAO.Recordset
Set rs1 = New ADODB.Recordset

strsql = "select * from test"
strsql1 = "select * from test1"
Set rs = CurrentDb.OpenRecordset(strsql)
rs1.Open strsql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rs1.RecordCount > 0 Then
For i = 1 To rs1.RecordCount

{ Set dlgOpen = Application.FileDialog(3)
With dlgOpen
.AllowMultiSelect = 0 '设置是否允许选择多个文件
.Show '打开文件选择窗口
End With

If dlgOpen.SelectedItems.Count > 0 Then
For i = 1 To dlgOpen.SelectedItems.Count
DoCmd.TransferSpreadsheet acImport, 8, "test1", dlgOpen.SelectedItems(i), True, "" '将选中的文件导入到“test1"表
Next i
Set dlgOpen = Nothing
End If }
test1应该是临时表
然后将TEST1表中数据逐条导入主表

{ DoCmd.DeleteObject acTable, "test1"
test1.Requery }
End If
删除TEST1表

打开一个文件选择窗口
{ Set dlgOpen = Application.FileDialog(3)
With dlgOpen
.AllowMultiSelect = 0
.Show
End With

这个类DoCmd的函数DeleteObject 处理了什么事不确定,感觉是删除掉了一个对象。
{ DoCmd.DeleteObject acTable, "test1"
test1.Requery }