Access交流中心

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

[5分]EXCEL多行文本导入到ACCESS的表中的备注字段后成为了一行!

lili  发表于:2013-10-10 18:58:40  
复制

EXCEL多行文本导入到ACCESS的表中的备注字段后成为了一行!

EXCEL表中有个单元格的数据在输入时是按alt+回车强制分行的,现在导入或追加到ACCESS一个表中时,变成了单行,字段属性是“备注”

有没有办法能按原来的多行格式导入?!

 

Top
叶海峰 发表于:2013-10-11 17:34:36

直接用access的导入功能估计不行,开业自己写个模块。可以解决的。因为软回车是Chr(10),用mid函数循环单元格每个字符,写入到access标的字段里面就可以了.




叶海峰 发表于:2013-10-12 09:39:04

Sub ImportXLS(XLSName As String, ShName As String, TblName As String)

'---------------------------------------------------------------------------------------
' Procedure : ImportXLS
' DateTime  : 2013-10-12 09:32
' Author    : 叶海峰
 'XLSName Excel源文件名,包含路径和"\"号
 'ShName'Excel源文件中需要导入的工作表名称
 'TblName 数据库中导入的目标表名称
 '作用:导入带alt+回车的单元格数据到mdb的字段中,保持分行显示
   
    Dim rst    As DAO.Recordset
    Dim xlapp  As Object
    Dim i      As Long
    Dim j      As Long
    Dim str

    Set xlapp = CreateObject("excel.application")
    Set rst = CurrentDb.OpenRecordset(TblName)

    CurrentDb.Execute "delete * from " & TblName '清空目标表

    With xlapp
        .workbooks.Open (XLSName)
        .sheets(ShName).select
        For i = 2 To .activesheet.usedrange.rows.Count
            rst.AddNew
            For j = 1 To .activesheet.usedrange.columns.Count
                If InStr(1, .cells(i, j), Chr(10)) > 0 Then
                    str = Replace(.cells(i, j), Chr(10), vbCrLf)
                Else
                    str = .cells(i, j)
                End If
                rst(j - 1) = str
            Next
            rst.Update
        Next
        xlapp.Quit
    End With
    Set xlapp = Nothing
    rst.Close
    Set rst = Nothing


End Sub

Sub BB()
Call AA(CurrentProject.Path & "\信息.xls", "1A", "AAA")
End Sub



lili 发表于:2013-10-12 11:03:28

非常感谢老师的回答,先学习下



茼蒿 发表于:2013-10-12 15:44:59

导入ACCESS后,先拆分单行文本为多列,然后用交叉转列表转换就可以了

http://www.accessoft.com/article-show.asp?id=7426

 



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