在 vbs 中将查询结果写入文本文件

在 vbs 中将查询结果写入文本文件

我对 Visual Basic 脚本还不太熟悉,遇到了一个问题。我正在使用 Notepad++,现在当我进入命令提示符时,我可以成功运行查询,结果会返回到消息框中。我不想让查询结果弹出到消息框中,而是希望将结果保存到文本文件中。

此查询的结果只是一个计数,用于查找错误,因此如果我可以在结果后面加上单词“错误”就好了。(“23 个错误”)

此外,每当我运行脚本时,我都需要用最新版本的文本文件替换该文本文件(有点像 X 副本)。

    Dim connStr, objConn, getNumber
    '''''''''''''''''''''''''''''''''''''
    'Define the driver and data source
    'Access 2007, 2010, 2013 ACCDB:
    'Provider=Microsoft.ACE.OLEDB.12.0
    'Access 2000, 2002-2003 MDB:
    'Provider=Microsoft.Jet.OLEDB.4.0
    ''''''''''''''''''''''''''''''''''''''
    connStr = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Q:\Temp 8 Days Only\SAPDTW\eric_copy_dtw.mdb"

    'Define object type
    Set objConn = CreateObject("ADODB.Connection")

    'Open Connection
    objConn.Open connStr

    'Define recordset and SQL query
    Set rs = objConn.Execute("select count(*) from OLOG where (AddFaiCnt + UpdFaiCnt) > 0 and DateValue(DateTime)>=Date()-1")

    'While loop, loops through all available results
    Do While Not rs.EOF
    'add names seperated by comma to getNames
    getNumber = getNumber + rs.Fields(0) & "," 
    'move to next result before looping again
    'this is important
    rs.MoveNext
    'continue loop
    Loop

    'Close connection and release objects
    objConn.Close
    Set rs = Nothing
    Set objConn = Nothing


    Set objFSO=CreateObject("Scripting.FileSystemObject")
    outFile="c:\test\autorun.inf"
    Set objFile = objFSO.CreateTextFile(outFile,True)
    objFile.Write "test string" & vbCrLf
    objFile.Close
   'Return Results via MsgBox

这就是我现在所拥有的,任何帮助都将不胜感激。

答案1

这应该可行..用以下任一方式替换您的执行语句:

如果您喜欢括号,请尝试......

'Define recordset and SQL query
Set rs = objConn.Execute("select '(' + CAST(COUNT(*) AS VARCHAR(20)) + ' errors)' from OLOG where (AddFaiCnt + UpdFaiCnt) > 0 and DateValue(DateTime)>=Date()-1")

如果您不喜欢括号,请尝试......

'Define recordset and SQL query
Set rs = objConn.Execute("select CAST(COUNT(*) AS VARCHAR(20)) + ' errors' from OLOG where (AddFaiCnt + UpdFaiCnt) > 0 and DateValue(DateTime)>=Date()-1")

如果 CAST() 在 Access SQL 中不被识别为函数,请尝试......

'Define recordset and SQL query
Set rs = objConn.Execute("select Str(COUNT(*)) + ' errors' from OLOG where (AddFaiCnt + UpdFaiCnt) > 0 and DateValue(DateTime)>=Date()-1")

要知道,为了将字符串数据连接到整数数据类型,必须将整数数据类型强制转换为可以向其附加字符串的数据类型,因此是 varchar。希望有所帮助。

祝你好运..

相关内容