2012-02-20 114 views
1

我很难过。我有一个有两个后端的数据库。一个在网络上,另一个在互联网上。当我的数据库启动时,用户必须通过登录,一旦发生这种情况主窗体打开。此时将运行一个查询,以通过链接表通过Internet从本地后端向外部数据发送数据。我期待做的是检查链接表是否有连接,并且只有在链接表连接时才运行此查询。原因在于,如果最终用户或数据库通过Internet连接的服务器在锁定用户前端时没有Internet连接。这是没有好,因为这将限制用户使用该数据库,如果网络连接丢失或服务器停机任何这样的原因Access 2010链接表格检查

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

的表名称是“活动”<----这需要检查,以确保有一个链接 – 2012-02-20 21:26:12

+0

这是甚至可能或我吠叫错误的树? – 2012-02-21 08:57:10

回答

0

您应该能够使用FileSystemObject就要上合适的文件夹网络,如果失败,你没有连接。

编辑

This article使用VBScript来检查SQL Server的端口。 VBScript运行在VBA上的变化很少。

EDIT#2

Powershell的可以用来ping远程服务器和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/由Allen白

+0

谢谢你将看到这是,将这项工作通过互联网到一个服务器,只有端口1433和1434是开放的SQL只休息被锁定下来 – 2012-02-21 09:44:38

+0

非常感谢你,让我的基础知识,但它似乎报告,如果本地网络的SQL是活跃的,在大多数情况下,本地SQL仍然是活动,但不是网络上的外部SQL使用此鳕鱼我可以指定一个IP呢? – 2012-02-21 10:15:00

+0

感谢迄今为止的帮助堆。我有我玩电源外壳剪辑我给我看,但我在两个地方收到意想不到的令牌错误。另外我想知道如何让这个查询开始,如果这个外部操作“通过测试”。有没有这个vba的衍生物。注意这是我遇到powershell – 2012-02-22 00:27:42