查询带有标题的制表符分隔的文本文件时出现 VBA 错误 - “没有为一个或多个必需参数提供值”
Posted
技术标签:
【中文标题】查询带有标题的制表符分隔的文本文件时出现 VBA 错误 - “没有为一个或多个必需参数提供值”【英文标题】:VBA error while querying a Tab limited Text file with headers - "no value given for one or more required parameters" 【发布时间】:2020-10-18 18:42:22 【问题描述】:我的文本文件是制表符分隔的,并且确实有 标题字段 "Datum"
。我打算将两个给定时间戳(沿行)之间的数据读入 Excel 文件,并认为使用 ADO 和 SQL 方法是最好的方法,因为这样可以避免使用数组和循环。
我的文本文件如下所示:
Sub FetchZaehlerData()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim myConn As New ADODB.Connection
Dim myRecordSet As New ADODB.Recordset
Dim mysqlQry As String
Dim myFSO As Object
Set myFSO = CreateObject("Scripting.FileSystemObject")
Dim myFilePath As String
myFilePath = "P:\PROJECTFILES\O&M\Metering Data\2020\01_2020\LS20200201"
myConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & myFilePath & ";" & _
"Extended Properties='text;HDR=YES';"
mySQLQry = "SELECT [Datum] FROM [TenneT2_P802_20200201064325.txt]"
Debug.Print mySQLQry
myRecordSet.Open mySQLQry, myConn
wb.Worksheets("Sheet2").Range("F3").CopyFromRecordset myRecordSet
myRecordSet.Close
myConn.Close
Exit Sub
【问题讨论】:
【参考方案1】:您需要在 ConnectionString 的扩展属性部分指定FMT=TabDelimited
您需要提供一个 schema.ini 文件,如回答 here
很遗憾,错误消息与您遇到的问题没有任何关系,但如果您解决了我提出的两点,“它应该都能正常工作”。
【讨论】:
以上是关于查询带有标题的制表符分隔的文本文件时出现 VBA 错误 - “没有为一个或多个必需参数提供值”的主要内容,如果未能解决你的问题,请参考以下文章