我有一个程序设计为使用VBA宏将文本文件重新转换为MS Excel,并使用ADODB进行SQL查询。
文本文件本身是从另一个部门的数据库中提取的(并在文本文件中以逗号分隔的表形式显示)。
无论如何,我有一列(以下为“ Group”)与“ Z4”或“ 50”一起归档。这是该列的仅有的两种输入。
直到今天,查询都返回了两个值。现在,我只得到“ 50”。 “ Z4”应出现的单元格为空。
代码如下:
Sub TextReader()
'Text reader
Application.ScreenUpdating = False
'Error Management
On Error Resume Next
'--------- Connection -------------------------------
Dim cnn As ADODB.Connection
Dim str As String
Set cnn = New ADODB.Connection
cnn.Provider = "Microsoft.ACE.OLEDB.12.0" '
cnn.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ";" & _
"Extended Properties=""text; HDR=YES; FMT=Delimited;"""
'Open Connection
cnn.Open
'ADODB record
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'cleanup
Sheets("Cost").Cells.Clear
'SQL String
str = "select Group from ZR46.txt "
'Get the values
With rs
.ActiveConnection = cnn
.Open str
Sheets("Cost").Range("A2").CopyFromRecordset rs
.Close
End With
'Close
cnn.Close
Application.ScreenUpdating = True
End Sub
文本文件(不完全是文本文件,但由于是私有数据而被修改):
,Article,Designation,Price,Strat,Group,Provis,
,123456789,BODY,706§09,PD,Z4,COND,
,897654321,BONNET,1§456§15,PD,Z4,COND,
,123789456,STEM,102§06,PD,50,COND,