2017-02-17 8 views
0

Будучи я новичком в VBS, мне сложно определить, почему этот короткий скрипт не возвращает число столбцов 193, однажды я получу правильный счет, а другие получаю 0. Благодарим вас за любые предложения.VBScript несогласованный Количество столбцов

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 ("[email protected]") 
    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 

ответ

0

Вы получаете 0 когда содержимое текстового файла, который вы читаете из написал символ новой строки, но ничего.

Из документации Microsoft:

После символа новой строки были написаны, но прежде, чем любой другой символ записывается, столбец равен 1.

тщательно изучить содержимое перед тем, как попытаться прочитать его в виде текстового потока.

отметить, но не имеет отношения к моему ответу выше: вам не нужно объявлять или установить objFile или objTextFile, так как вы используете objReadFile. Предложите удалить обе декларации и операции set для обеих этих переменных.

+0

Robert, по умолчанию файл имеет 194 символа, я пытаюсь проверить, добавлено ли больше данных, – OldCityCat

+0

Я разработал свою оригинальную проблему, проверив, была ли добавлена ​​новая строка, которая, кажется, работает. Опять же, как новичок в VBScript, но уже несколько лет кодируется в VBA. У меня проблемы с использованием Sub. Я проверил несколько онлайн-источников, и все они похожи на VBA, но когда я добавляю Sub/End Sub в свой код, он вообще не запускается из моего редактора, никаких ошибок, просто не запускается. Удалить Sub/End Sub выполняется нормально. Также я вызываю sub с несогласованными результатами – OldCityCat