2013-12-17 18 views
1

Мне нужно сделать автоматическое приложение, вызванное из командной строки Windows. Это приложение запускается, выполняет некоторые операции с БД и автоматически выходит из него. Далее мне нужно обработать возвращаемые значения из Access. Я пробовал все, что я нашел в Google, но Access возвращает 0 каждый раз. Мне нужно вернуть 1 или еще что-нибудь, чтобы сообщить cmd, что в базе данных есть ошибка.Значение возврата приложения MS Access

здесь некоторый код в VBA (доступ форма вызова при запуске приложения):

Private Sub Form_Load() 
    Dim xSQL As String 
    Dim xRS As DAO.Recordset 

    xSQL = "select * from table1" 
    Set xRS = CurrentDb.OpenRecordset(xSQL, dbOpenDynaset) 
    xRS.MoveLast: xRS.MoveFirst 

    DoEvents 

    If xRS!field1 = "" Or IsNull(xRS!field1) Then 
     ' HERE I WANT TO RETURN 1 OR ANY TRUE VALUE = ERROR 
     Application.Quit acQuitSaveAll 
    End If 

    ' HERE I RETURN 0 = SUCCESS 
    Application.Quit acQuitSaveAll 
End Sub 

Некоторые идеи, как это сделать?

+0

возможно дубликат [родительских переменных окружения ребенка] (http://stackoverflow.com/questions/19410574/parent -child-environment-variables) –

ответ

0

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

Из кода VBA:

Private Declare Function SetEnvironmentVariable Lib "kernel32" _ 
Alias "SetEnvironmentVariableA" _ 
(ByVal lpName As String, _ 
ByVal lpValue As String) As Long 


Private Sub Form_Load() 
    Dim xSQL As String 
    Dim xRS As DAO.Recordset 

    xSQL = "select * from table1" 
    Set xRS = CurrentDb.OpenRecordset(xSQL, dbOpenDynaset) 
    xRS.MoveLast: xRS.MoveFirst 

    DoEvents 

    If xRS!field1 = "" Or IsNull(xRS!field1) Then 
     SetEnvironmentVariable "ACCESSEXITCODE", "1" 
     Application.Quit acQuitSaveAll 
    End If 

     SetEnvironmentVariable "ACCESSEXITCODE", "0" 
    Application.Quit acQuitSaveAll 
End Sub 

От де командной строки:

IF %ACCESSEXITCODE%==1 GOTO HandleError 
+0

Как уже отмечалось @ johnny-bones, это не работает. См. Http://stackoverflow.com/questions/19410574/parent-child-environment-variables – morty

Смежные вопросы