Access交流中心

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

自己已解决:交叉2DExcel表格如何导入到Access数据表中

陈敏  发表于:2010-11-09 13:23:24  
复制

我有一张excel表格,想要导入到Access数据库中,但是由于表格的特殊性,实在不知如何是好,请各位老师帮我一下啊,表格如下:

 

颜色1 颜色2 颜色3 颜色4
尺码 白色 黑色 红色 绿色
X 21 32 12
XL 24 21 5
SS 34 43 12
M 13 35 23 12

 

想要的数据库表,表事先在Access库中建立好的:

 

尺码 颜色 数量

 X   白色 21

 X   黑色 32

 X   绿色 12

 XL  白色 24

 XL  红色 21

 XL  绿色 5

 

 

以此类推,请大家帮我一下,并且其中没有数量的单元格该如何判断,谢谢!

 

 

Top
煮江品茶 发表于:2010-11-09 18:08:47
很简单嘛,可以在Excel中用剪切粘贴转置等手段,捣腾出一个与Access中一致的表。然后复制该表粘贴到Access中,或者用导入也可。

Tony Chen 发表于:2010-11-10 19:02:33

关键咱老板,要求表格的权限很严格,想在Access中做自动化啊



Tony Chen 发表于:2010-11-11 09:10:58

自己顶一下



Tony Chen 发表于:2010-11-12 09:27:39

经过自己的努力,终于解决了,先把源代码贴上,给大家共享,与大家一起进步

 

Dim db2 As New ADODB.Connection
Dim rs2 As New ADODB.Recordset
Dim nSheetCount As Integer
Dim i As Integer
Dim AAA As Integer
Dim BBB As Integer

Dim sArrFieldsName

Sub 数据导入()

    db2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & CurrentProject.Path & "\test.mdb"
    db2.Open

    Dim NewXls As Excel.Application
    Dim NewBook As Excel.Workbook
    Dim NewSheet As Excel.Worksheet
    '
    Set NewXls = New Excel.Application    '创建 EXCEL 应用程序,打开 EXCEL2000
    Set NewBook = NewXls.Workbooks.Open(CurrentProject.Path & "\Demo.xls")  '创建工作簿
    nSheetCount = NewBook.Worksheets.Count

    sArrFieldsName = Array("尺码", "颜色", "数量")

    Set rs2 = Nothing
    rs2.CursorLocation = adUseClient
    rs2.Open "select * from 1 ", db2, adOpenStatic, adLockPessimistic

    Set NewSheet = NewBook.Worksheets(1)  '创建工作表

    For AAA = 2 To 10    '尺码行数

        For BBB = 1 To 6  '颜色列数
            If NewSheet.Cells(AAA + 1, 1) <> "" Then
            If NewSheet.Cells(2, BBB + 1) <> "" Then
           If Nz(NewSheet.Cells(AAA + 1, BBB + 1)) <> 0 Then
            rs2.AddNew
           
            rs2!尺码 = NewSheet.Cells(AAA + 1, 1).Value
            rs2!颜色 = NewSheet.Cells(2, BBB + 1).Value
            rs2!数量 = NewSheet.Cells(AAA + 1, BBB + 1).Value
        End If
        End If
        End If
        Next
    Next
  
    rs2.Update

    NewXls.Quit
    db2.Close

End Sub



总记录:4篇  页次:1/1 9 1 :