VBScript不一致列数

时间:2017-02-17 16:48:35

标签: vbscript

由于我是VBS的新手,我很难确定为什么这个简短的脚本没有返回列数为193,有一次我得到正确的计数而其他的我得到0。 提前感谢您提出任何建议。

OldCityCat

Sub VerifyOrders
Dim Results
Dim objFSO, objTextFile, objReadFile, Contents, objFile

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\TestFileWith_194_characters.csv")
Set objTextFile = objFSO.OpenTextFile("C:\TestFileWith_194_characters.csv")

Set objReadFile = objFSO.OpenTextFile("C:\TestFileWith_194_characters.csv",1) 
    objReadFile.ReadAll

     Contents = objReadFile.Column -1

WScript.Echo Contents

    If Contents < 194 Then
        Results = "No Orders"
    Else
        Results = "Has Orders"
    End if
objReadFile.Close

    If Results = "No Orders" Then
        Call NoOrders
    Else
        Call OpenAccess
    End If
End Sub

'/ If no orders the send email end script. Else If orders process them
Sub NoOrders
If Results = "No Orders" Then
   Set objOutlook = CreateObject("Outlook.Application")
   Set objMail = objOutlook.CreateItem(0)
   objMail.Display
   objMail.Recipients.Add ("gchichester@wilk.us.com")
   objMail.Subject = "No Sales Orders to Process"
   objMail.Body = "Respect didn't receive any orders for Pine Castle"
   objMail.Send   
   objOutlook.Quit
Set objMail = Nothing
Set objOutlook = Nothing
End If

End Sub

Sub OpenAccess
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Exec("C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE "&" C:\DropBox\Inflow\DrugSales.accdb /x OnOpen")
        WScript.Sleep 60000
        WshShell.SendKeys "%{F4}" 
End Sub

1 个答案:

答案 0 :(得分:0)

当您正在阅读的文本文件的内容已写入换行符时,您将获得0,但没有其他内容。

来自Microsoft文档:

  

在写入换行符后,但在写入任何其他字符之前,Column等于1.

在尝试以文本流的形式阅读文本文件之前,请仔细检查文本文件的内容。

值得注意但与我上面的回答无关:由于您使用objFile,因此无需声明或设置objTextFileobjReadFile。建议删除这两个变量的声明和set操作。