Вам определенно следует отказаться от возможностей сопоставления сетевых дисков:
- , используя эту технику, заставляет вас «физически» манипулировать каждым компьютером с помощью вашей базы данных, где вам нужно назначить букву сетевому диску.
- каждый пользователь компьютера может легко изменить его
- любое отключение от сети может заставить пользователя «вручную» переподключиться к дисководу
Хотя вы включеныдомен, я бы не советовал вам использовать имя, так как компьютеры по разным причинам не всегда могут найти его «легко» в сети, особенно когда его IP-адрес регулярно меняется.
Вы обязательно должны найтиспособ присвоения фиксированного IP-адреса вашему диску: это наиболее стабильное и постоянное решение, о котором вы только можете подумать.Попросите администратора домена организовать его для вас.
Проверка наличия сетевого диска может быть проведена очень легко.Существует несколько решений, в том числе попытка открыть файл mdb.Вы также можете проверить существование файла (через файловый объект, я думаю) или даже использовать любую внешнюю программу или Windows API, которые вы можете запустить из своего кода.Пожалуйста, Google 'VB test IP' или что-то подобное, чтобы найти решение в удобное для вас время.
РЕДАКТИРОВАТЬ: Windows даже предлагает имитировать пинг с некоторым кодом VB.Проверьте это здесь
EDIT2: я нашел в одном из моих приложений этот код VBA, который позволяет быстро проверить, существует ли файл (и может ли он быть доступен) где-то в вашей сети.В основном он был настроен на проверку доступности новой версии пользовательского интерфейса.
Function fileIsAvailable(x_nom As Variant) As Boolean
On Error GoTo ERREUR
Application.Screen.MousePointer = 11
Dim fso as object
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(x_nom) Then
fileIsAvailable = False
Else
fileIsAvailable = True
End If
Set fso = Nothing
Application.Screen.MousePointer = 0
On Error GoTo 0
Exit Function
ERREUR:
Application.Screen.MousePointer = 0
debug.print Err.Number, Err.description
End Function
Вы можете легко вызвать эту функцию, указав сетевое имя вашего файла, например:
if fileIsAvailable("\\192.168.1.110\myFileName.mdb") then ...