Tables("订单明细表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"项次号","客户代码","物料名称","模具型号","规格","ET","材面","PCD","中心孔","制程","客户颜色","中文颜色","订单量","盖子","盖子备注","铭板","铭板备注","螺栓螺母","螺栓螺母备注","加工规范","钻头"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 3 To Sheet.Rows.Count -15
Dim r As Row = Tables("订单明细表").AddNew()
For m As Integer = 0 To nms.Length - 1
r(nms(m)) = Sheet(n,m).Value
r("客户") = sheet(1,1).Text
r("下单日期") = sheet(1,8).text
r("合同号") = sheet(1,13).text
r("订单号") = sheet(1,19).text
r("评审交期") = sheet(Sheet.Rows.Count -13,2).Text
r("出货方式") = sheet(Sheet.Rows.Count -12,2).text
r("柜型") = sheet(Sheet.Rows.Count -11,2).text
r("总方量") = sheet(Sheet.Rows.Count -10,2).text
r("包装方式") = sheet(Sheet.Rows.Count -9,2).Text
r("盖子铭板要求") = sheet(Sheet.Rows.Count -8,2).text
r("刻字要求") = sheet(Sheet.Rows.Count -7,2).text
r("螺丝扳手要求") = sheet(Sheet.Rows.Count -6,2).text
r("贴纸要求") = sheet(Sheet.Rows.Count -5,2).Text
r("品质标准") = sheet(Sheet.Rows.Count -4,2).text
r("其他要求") = sheet(Sheet.Rows.Count -3,2).text
Next
Next
End If
Tables("订单明细表").ResumeRedraw()
这样可以实现点击按钮后出现文件选择窗口,选择excel文件后(excel文件要按照模板的固定格式)将订单表中的数据导入数据库。现在的问题是,如果导入项次号重复的数据,会有个提示,但是数据依然会导入数据库,只有项次号列为空。我想实现的是出现错误提示后点确定,整条数据都不导入。另外,考虑到如果导入的数据有很多重复的,就需要不停的按确定,比较麻烦。是否可以添加一个按钮直接取消本次导入。