在导入EXCEL时(追加记录),遇到源EXCEL表格字段与目标表结构不同时也会导入的情况,这样会造成数据不完整,如何判断EXCEL表的结构与目标表结构相同?如不相同作不导入处理.
另:在导入时我用
Private Sub cmd_Import_Click()
On Error GoTo cmd_Import_err
Dim rs As Object
Set rs = Me.Recordset.Clone
'设置CancelError为 True 时,无论何时选取“取消”按钮,均产生 32755 (cdlCancel) 号错误
CommonDialog6.CancelError = True
MsgBox "导入数据时只可使用与程序导出的电子表格结构相同的文件。" & Chr(13) & Chr(13) & Chr(13) & "注意! 目标表中已存在的记录将不被导入。", vbInformation, "Information"
CommonDialog6.DialogTitle = "导入数据"
'显示“另存为”对话框
CommonDialog6.ShowOpen
'导入数据到'表_对帐单'表中<追加>
Dim FileName As String
FileName = CommonDialog6.FileName
DoCmd.SetWarnings False
DoCmd.TransferSpreadsheet acImport, 8, "表_对帐单", FileName, True, ""
DoCmd.SetWarnings True
Me.Recordset.Requery
cbo_条形码输入.Requery
If rs.RecordCount = 0 Then
cmd_Del.Enabled = False
cmd_编辑.Enabled = False
cmd_Export.Enabled = False
cmd_addtoreport.Enabled = False
Else
cmd_Del.Enabled = True
cmd_编辑.Enabled = True
cmd_Export.Enabled = True
cmd_addtoreport.Enabled = True
End If
If Chk_手工输入条形码.Value = True Then
cbo_条形码输入.SetFocus
Else
txt_条形码扫入.SetFocus
End If
MsgBox "数据成功导入!", vbInformation, "导入"
cmd_Import_err:
If err.Number = 32755 Then
If Chk_手工输入条形码.Value = True Then
cbo_条形码输入.SetFocus
Else
txt_条形码扫入.SetFocus
End If
ElseIf err.Number = 2391 Then
'MsgBox err.Number
MsgBox "在导入数据时发生错误,错误原因可能是:导入电子表格的数据格式与要求不符.", vbCritical, "导入数据错误!"
Exit Sub
End If
End Sub
但我无法判断导入是否真的成功或在重复导入一个表时,这段代码也会提示导入成功,
我想在导入前先得到记录集的总数,在导入后在与之比较,来判断是否有数据导入,但比较麻烦,有其它更好的方法吗?
[此贴子已经被作者于2005-3-17 21:39:00编辑过]
|