北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
一、从EXCEL中导入数据的意义:
很多企业在您开发软件前,基本上都有其整理的EXCEL数据,如果让用户一条一条记录录入,实在是让用户吃尽苦头,因此,提供导入功能有非常重要的意义,主要表现在:
1.速度快 2.人性化
二、从EXCEL中导入数据的思路:
第一步:建立EXCEL中数据与要导入表之间的对应关系,该对应关系在表 usysTransExcel 体现,是用DAO代码来实现添加这种对应关系的。
第二步:用ACCESS开发平台的函数 Acchelp_TransferSpreadsheet实现数据导入。
三、Acchelp_TransferSpreadsheet 函数说明:
Acchelp_TransferSpreadsheet(xlsPath As String, xlsName As String, sheetName As String, sheetKey As Integer, tblName As String)
'功能:从EXCEL文件中导入数据到Access表中
'xlsPath 是指 EXCEL文件的所在文件夹路径,如下面示例代码是指当前文件夹
'xlsName 是指 EXCEL文件名,不用带后缀.xls,如下面示例代码是指 零件明细
'sheetName 是指 Excel表中sheet表名,如下面示例代码是指 Sheet1
'sheetKey 是指 不为空值的EXCEL表中的列号,用来判断sheet表的记录数
'tblName 是指 要导入数据的表的名称, 如下面示例代码是指 表tblCode_lj
'调用方式
Call Acchelp_TransferSpreadsheet(CurrentProject.Path, "零件明细", "Sheet1", 1, "tblCode_lj")
四、实现导入功能:
第一步:下载示例EXCEL表数据,解压到与AccDev.mdb相同的文件夹
点击浏览该文件
第二步:将以下代码复制到 窗体 frmCode_lj_child 的VBA代码区
Public Sub btnDataIn()
'注意上方是 Public 不是 Private
'从EXCEL表"零件明细.xls"导入零件代码到数据库中
Dim rst As DAO.Recordset
Dim strFileName As String
If MsgBox("您确认要导入{零件代码}吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
'清空表 usysTransExcel
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE usysTransExcel.* FROM usysTransExcel;"
'写入tblCode_lj 表与Excle表的字段与列对应关系
Set rst = CurrentDb.OpenRecordset("usysTransExcel", dbOpenDynaset)
'添加第一行对应关系
rst.AddNew
rst("xlsColumnNum") = 1
rst("xlsFld") = "零件代码" 'Excel第1列标题
rst("mdbFld") = "ljID" '对应的tblCode_lj表中的字段名
rst.Update
rst.AddNew
rst("xlsColumnNum") = 2
rst("xlsFld") = "零件名称" 'Excel第2列标题
rst("mdbFld") = "ljmc" '对应的tblCode_lj表中的字段名
rst.Update
rst.AddNew
rst("xlsColumnNum") = 3
rst("xlsFld") = "零件图号"
rst("mdbFld") = "ljth"
rst.Update
rst.AddNew
rst("xlsColumnNum") = 4
rst("xlsFld") = "图纸链接"
rst("mdbFld") = "tzlj"
rst.Update
rst.AddNew
rst("xlsColumnNum") = 5
rst("xlsFld") = "最低库存量"
rst("mdbFld") = "zdkc"
rst.Update
rst.Close
Set rst = Nothing
'使用文件选择对话框取得Excel文件名称
With FileDialog(3)
.Filters.Clear
.Filters.Add "Excel工作簿文件", "*.xls"
If .Show Then strFileName = .SelectedItems(1)
End With
'如果对话框被取消,则退出导入过程
If strFileName = "" Then Exit Sub
'导入数据
Call Acchelp_TransferSpreadsheet(strFileName, "Sheet1", 1, "tblCode_lj")
'刷新数据
Forms!usysfrmMain!frmChild.SourceObject = "frmCode_lj_child"
Else
MsgBox "您取消了导入!", vbInformation, "提示"
End If
End Sub
第三步:设置按钮“零件代码”有权限属*有“导入”
第四步:设置权限组有“导入”权限,完毕后试试导入功能吧
注:导入时请先不要使用新增功能增加数据,已经增加数据的学员请删除已增加的数据再导入)