Ms access MS Access 2003/2007-从VBA中使用的csv文件导入数据的导入规范……验证字段名?
我有一个向导导入,至少足够保存规范。它导入带有标题、引号文本限定符和逗号分隔符的CSV文件。然后,我在一些vba中使用导入规范,这些vba从按钮单击事件触发 以下是我想知道的一些事情: 那么,如果数据中的字段顺序不正确,导入会失败吗?如果数据不包含所有字段,导入会失败吗?如果数据中有额外字段,导入会失败吗 那么,我是否可以对导入的数据进行任何类型的验证,以确保字段与规范相同,顺序正确(如果需要的话),等等 这工作得很好,但我只是看到,如果数据中的某些内容不正常,它无论如何都会导入,并将整个时间都浪费掉 另外…这不是一个典型的访问设置…这主要是为数据分析师团队将文件导入mdb…没有前端 谢谢Ms access MS Access 2003/2007-从VBA中使用的csv文件导入数据的导入规范……验证字段名?,ms-access,vba,csv,import,ms-access-2003,Ms Access,Vba,Csv,Import,Ms Access 2003,我有一个向导导入,至少足够保存规范。它导入带有标题、引号文本限定符和逗号分隔符的CSV文件。然后,我在一些vba中使用导入规范,这些vba从按钮单击事件触发 以下是我想知道的一些事情: 那么,如果数据中的字段顺序不正确,导入会失败吗?如果数据不包含所有字段,导入会失败吗?如果数据中有额外字段,导入会失败吗 那么,我是否可以对导入的数据进行任何类型的验证,以确保字段与规范相同,顺序正确(如果需要的话),等等 这工作得很好,但我只是看到,如果数据中的某些内容不正常,它无论如何都会导入,并将整个时间都
justin您可以使用ADO记录集检查CSV文件
Public Sub InspectCsvFile()
Const cstrFolder As String = "C:\Access\webforums"
Const cstrFile As String = "temp.csv"
Dim i As Integer
Dim strConnect As String
Dim strSql As String
'early binding requires reference, Microsoft ActiveX Data Object Library '
'Dim cn As ADODB.Connection '
'Dim rs As ADODB.Recordset '
'Dim fld As ADODB.Field '
'Set cn = New ADODB.Connection '
'Set rs = New ADODB.Recordset '
'late binding; no reference needed '
Dim cn As Object
Dim rs As Object
Dim fld As Object
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
cstrFolder & ";Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
'Debug.Print strConnect '
cn.Open strConnect
strSql = "SELECT * FROM " & cstrFile & ";"
rs.Open strSql, cn
Debug.Print "Fields.Count: " & rs.Fields.Count
For i = 0 To rs.Fields.Count - 1
Set fld = rs.Fields(i)
Debug.Print i + 1, fld.Name, fld.Type
Next i
Set fld = Nothing
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
如果该连接字符串不适用于您,请参见我将以正确的格式向他们提供受保护的电子表格。这种保护确保他们不能改变它
如果导入失败,请向他们提供错误报告。我能想到的唯一方法是尝试链接到电子表格,并在运行导入之前检查列是否符合预期。如果这不起作用,您还可以自动化Excel并从Excel中获取此信息。但这些听起来都比你想要的复杂。我要说的是,捕获错误并告诉人们格式化他们的电子表格以匹配模板。对于文本数据源,您可以将连接字符串指向可以找到源文件的位置。所以cstrFolder是我的文件完整路径的文件夹部分:C:\Access\webforums\temp.csv