我写我自己的导入功能,以及它的工作原理:
' Import from an Excel with a default field length different from 255 (must be < 255)
Function importFromExcel(fileName As String, fieldLength as integer)
Dim my_xl_app As Object
Dim my_xl_worksheet As Object
Dim my_xl_workbook As Object
Set my_xl_app = CreateObject("Excel.Application")
Set my_xl_workbook = my_xl_app.Workbooks.Open(fileName)
Set s = my_xl_workbook.Worksheets(1)
Dim fieldsNumber As Integer
Dim recordNumber As Long
fieldsNumber = s.cells(1, s.Columns.Count).End(1).Column
recordNumber = s.cells(s.Rows.Count, 1).End(3).Row
tablename = "[" & Replace(GetFilenameFromPath(fileName), ".", "_") & "]"
On Error Resume Next
DoCmd.RunSQL "DROP TABLE " & tablename
On Error GoTo 0
' Creo tabella
sql = "CREATE TABLE " & tablename & " (F1 TEXT(" & fieldLength & ")) "
DoCmd.RunSQL sql
For i = 2 To fieldsNumber
sql = "ALTER TABLE " & tablename & " ADD COLUMN F" & i & " TEXT(" & fieldLength & ")"
DoCmd.RunSQL sql
Next
' Ora insert
For i = 1 To recordNumber
sql = "INSERT INTO " & tablename & " VALUES ("
For j = 1 To fieldsNumber
sql = sql & " '" & Replace(s.cells(i, j), "'", "''") & "',"
Next
sql = Mid(sql, 1, Len(sql) - 1)
sql = sql & ")"
Next
my_xl_workbook.Close SaveChanges:=False
Set my_xl_app = Nothing
End Function
正如我在写更新,默认的文本大小被忽略,当我导入具有DoCmd.TransferDatasheet – kiks73 2014-12-05 14:21:54
数据看出刚过,对不起。 – Veve 2014-12-05 14:45:47