VBA SQL查询仅返回数字值

时间:2018-12-17 08:59:34

标签: sql excel vba adodb

我有一个程序设计为使用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,

0 个答案:

没有答案