我有一个我用向导做的导入,至少足以保存规范。它导入CSV文件,包含标题,引号文本限定符和逗号分隔。然后我在一些按钮点击事件触发的vba中使用导入规范。
以下是我想知道的一些事情:
因此,如果数据中的字段乱序导致导入失败?如果数据不包含导入失败的所有字段?如果数据中有额外的字段导入失败?
所以我可以对导入的数据进行任何验证,确保字段与规范相同,顺序正确(如果需要)等等。
这很好用,但我只是看到,如果数据中的某些内容超出正常范围,它将导入,并将整个时间全部关闭。
此外....这不是典型的访问设置...这主要是由一组数据分析师将文件导入mdb ...没有前端这个。
感谢 贾斯汀
答案 0 :(得分:1)
您可以使用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
如果该连接字符串不适合您,请参阅Connection strings for Textfile
答案 1 :(得分:1)
我会以正确的格式向他们提供受保护的电子表格。保护确保他们不能改变它。
如果/无法导入,请向他们提供错误报告。