Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]实现从EXCEL表中导入数据功能

张志  发表于:2010-08-06 22:12:51  
复制

一、从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

 

第三步:设置按钮“零件代码”有权限属*有“导入”

 

第四步:设置权限组有“导入”权限,完毕后试试导入功能吧

 

注:导入时请先不要使用新增功能增加数据,已经增加数据的学员请删除已增加的数据再导入)

 

  QQ:2851379730 点击这里给张志发消息
Top
总记录:0篇  页次:0/0 9 1 :