Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Скрипт не подключается к Access

37K
11 февраля 2013 года
qbikk
40 / / 08.09.2010
Добрый день!
Скрипт на vbs подкючается локально к Access и выбирает определенную информацию. Куда же легче. Не тут-то было.
При подключении к базе, появляется диалоговое окна куда необходимо ввести логин и пароль для подключения.
Долго бился, решения не нашел, решил придумать костыль. скрипт обертка запускает первоначальный скрипт, после чего ожидает появления окна подключения и с помощью senkey передает в форму данные.
Вроде бы работало, но при запуске через таск шедулер, не работало. понял почему,
Создал виндовс сервис, который запускал сей скрипт с доступом к рабочему столу. но связка по каким-то причинам не заработала.
Может кто подскажет, как избежать ошибки аутентификации?
Или может быть подскажет как починить костыль что бы работал в шедулере?
Заранее благодарен, очень сильно!

 
Код:
Set sh = WScript.CreateObject("WScript.Shell")
sh.Run "cmd /K cscript  C:\access.vbs"


WScript.Sleep 5000
sh.AppActivate "Connect to xxx"
WScript.Sleep 80  
sh.SendKeys "pass"
WScript.Sleep 800
sh.SendKeys("{Enter}")
Код:
Set sh = WScript.CreateObject("WScript.Shell")
dim filesys, filetxt
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.OpenTextFile("C:\log.txt", ForWriting, True)

SelectToAccess "TRANSFORM Max([1].a) AS [Max-a] SELECT '1', Sum([1].[a]) AS Итог FROM 1 GROUP BY '1' PIVOT [1].b"
filetxt.Close

'''''''''''''''''''''''''''''''''''''''

Sub SelectToAccess(query)
    Dim ADOCon, ADOrs
    Set ADOCon=CreateObject("ADODB.Connection")
    Set ADOrs=CreateObject("ADODB.Recordset")
    ADOCon.ConnectionTimeOut = 10
    ADOCon.CommandTimeout = 10
    ADOCon.ConnectionString="Provider=MSDASQL.1;Password=pass;Persist Security Info=True;User ID=admin;Data Source=db"
    ADOCon.Open
   
    Set ADOrs = ADOCon.Execute(query)
    Do While Not ADOrs.EOF
        res=""
        For Each Field In ADOrs.Fields
            res = res&"|"&Field
        Next
        filetxt.WriteLine res
        ADOrs.MoveNext
    Loop
   
    ADOCon.Close
    ADOCon = empty
End Sub
37K
11 февраля 2013 года
qbikk
40 / / 08.09.2010
ну и забыл добавить что в MS Access настроена AD аутентификация
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог