2012-02-20 2 views
1

Я в тупике. У меня есть база данных с двумя концами. Один из них локальный в сети, а другой - через Интернет. Когда моя база данных запущена, пользователь должен пройти через вход в систему, и как только это произойдет, открывается основная форма. В это время выполняется запрос для отправки данных с локального внешнего конца на внешний через Интернет через связанную таблицу. То, что я хочу сделать, это проверить, имеет ли связанная таблица соединение, и только запускать этот запрос, если связанная таблица подключена. Причина этого заключается в том, что если либо конечный пользователь, либо сервер, к которому подключается база данных через Интернет, не имеют подключения к Интернету в момент блокировки пользовательского интерфейса. Все это не хорошо, как это будет ограничивать использование пользователями базы данных, если подключение к Интернету потеряно или сервер идет вниз по любой из этих причинAccess 2010 связанная таблица check

Example: if sql link is ok then 
     run query 
     Else goto end 
+0

таблицы Имя «АКТИВНО» <---- это нужно проверить, чтобы убедиться, что есть ссылка –

+0

Возможно ли это, или я лаяю неправильное дерево? –

ответ

0

Вы должны быть в состоянии использовать FileSystemObject, чтобы получить подходящую папку на сети, если это не удается, у вас нет соединения.

EDIT

This article использует VBScript для проверки портов SQL Server. VBScript работает в VBA с очень небольшим количеством изменений.

РЕДАКТИРОВАТЬ # 2

Powershell может быть использован для пинг удаленных серверов и can be run from VBA

$servers = Get-Content 'servers.txt' 
ForEach-Object ($server in $servers) { 
    # Ping the machine to see if it's on the network 
    $results = Get-WMIObject -query "select StatusCode from 
Win32_PingStatus where Address = '$server'" 
    $responds = $false 
    ForEach-Object ($result in $results) { 
     # If the machine responds break out of the result loop and indicate success 
     if ($result.statuscode -eq 0) { 
     $responds = $true 
     break 
     } 
    } 
     If ($responds) { 
     # Gather info from the server because it responds 
     Write-Output "$server responds" 
    } else { 
     # Let the user know we couldn't connect to the server 
     Write-Output "$server does not respond" 
    } 
} 

Код выше, является вырезать и вставить из: http://www.simple-talk.com/sql/database-administration/let-powershell-do-an-inventory-of-your-servers/ Аллен Уайт

+0

спасибо, что посмотрим, будет ли это работать через Интернет на сервере, который открыт только для портов 1433 и 1434 для sql. Остальные блокируются. –

+0

Большое спасибо, что у меня есть основы, но, похоже, сообщают, локальная сеть sql активна, и в большинстве случаев локальный sql по-прежнему будет actibe, но не внешний sql поверх сети, используя эту треску, я могу указать IP так же? –

+0

благодарит кучи за помощь до сих пор. я имел, котор я играю вокруг с зажимом раковины силы я показал меня но я получаю неожиданную ошибку токена в 2 местах. Также мне интересно, как я собираюсь запустить запрос, если эта внешняя операция «проходит тест». есть ли производный этого для vba. обратите внимание, что это моя первая встреча с powershell –

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