我对 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。希望有所帮助。
祝你好运..