Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Доступ к сетевому диску  [new]
Denison777
Guest
Проблема моя заключается в следующем:создал базу данных access,один фаил с формами,таблицами,запросами,модулями хранится на моем компе,а другой с таблицами хранится в сети так вот возникает необходимость при обращении к сетевому диску проверять доступен ли он,а как это сделать в VBА я никак не могу!
26 июн 08, 19:10    [5854823]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
big-duke
Member

Откуда:
Сообщений: 6693
А при чем тут VBA ?
Или речь идет об VBA для аксеса ?
Картинка с другого сайта.
26 июн 08, 19:58    [5854945]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
Да здесь речь идет про акцес
26 июн 08, 20:11    [5854975]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
big-duke
Member

Откуда:
Сообщений: 6693
Тогда я переношу ваш топик в форум Microsoft Access.
Картинка с другого сайта.
26 июн 08, 21:43    [5855136]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
sdfgsdfgsdf
Member

Откуда:
Сообщений: 5996
On Error Goto er1
f=Dir("F:")
Goto ok
Er1:
MsgBox "Доступ к диску F: невозможен"
Exit
ok:
...
.

.
.
26 июн 08, 21:51    [5855159]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
%?*?%
Member

Откуда:
Сообщений: 1357
Denison777
при обращении к сетевому диску проверять доступен ли он,а как это сделать в VBА я никак не могу!


Dim bExist as Boolean, objFSO, colDrives, objDrive

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives

bExist = False
For Each objDrive in colDrives
   If objDrive.DriveLetter = "U" Then
      bExist = True
      If Not objDrive.IsReady Then MsgBox "Drive Not Ready"
   End If
Next
If Not bExist Then MsgBox "Drive Not Exist"

Хотя правильнее проверять доступность самого share. Точнее - компьютера, на котором он расположен. Пингом.
26 июн 08, 22:13    [5855188]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
При вводе кода сразу выдает ошибку на второй строке и пишет ошибка внешней процедуры
27 июн 08, 06:27    [5855946]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
%?*?* Может подскажешь как сделать проверку компьютера а не диска.раз ты говоришь так лучш
27 июн 08, 06:31    [5855951]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
%?*?%
Member

Откуда:
Сообщений: 1357
Denison777
При вводе кода сразу выдает ошибку на второй строке и пишет ошибка внешней процедуры


Это плохо. Попробуй добавить в референсы ссылку на C:\WINDOWS\system32\scrrun.dll и переписать используя раннее связывание.

автор
Может подскажешь как сделать проверку компьютера а не диска.раз ты говоришь так лучш


Читай тут
27 июн 08, 10:56    [5856740]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
Добавил я этот референс и никакой пользы не увидел,выдаёт туже самую ошибку!((((((
28 июн 08, 15:32    [5860945]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
Вот нашел еще один код но он тоже не работает

Public Declare Function prn_WNetGetConnection Lib "mpr.dll" _
Alias "WNetGetConnectionA" (ByVal LocalName$, ByVal RemoteName$, _
cbRemoteName&) As Long
Public Declare Function prn_WNetAddConnection Lib "mpr.dll" Alias _
"WNetAddConnectionA" (ByVal NetPath$, Password, LocalName&) As Long

Public Const ERROR_NO_ERROR = 0
Public Const ERROR_ACCESS_DENIED = 5
Public Const ERROR_BAD_NET_NAME = 67
Public Const ERROR_ALREADY_ASSIGNED = 85
Public Const ERROR_INVALID_PASSWORD = 86
Public Const ERROR_MORE_DATA = 234
Public Const ERROR_INVALID_ADDRESS = 487
Public Const ERROR_BAD_DEVICE = 1200
Public Const ERROR_CONNECTION_UNAVAIL = 1201
Public Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202
Public Const ERROR_NO_NET_OR_BAD_PATH = 1203
Public Const ERROR_NO_NETWORK = 1222
Public Const ERROR_NOT_CONNECTED = 2250

Dim ret
ret = at_CheckNet("\\Ik1-225-4\database")
If ret = 0 Then
MsgBox ("Нет доступа к компьютеру")
Exit Sub
End If

Ошибка в строке ret = at_CheckNet("\\Ik1-225-4\database)
Компьютер на котором хранится база - Ik1-225-4
Папка где база хранится база - database
28 июн 08, 15:37    [5860949]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1361
автор
Хотя правильнее проверять доступность самого share. Точнее - компьютера, на котором он расположен. Пингом.

Не согласен. Доступ к компу это одно а доступ к шаре на этом компе это совсем другое.
У вас может быть доступен комп, а вот шара отключена и получаем теже грабли.
На мой взгляд наиболее грамотное решение предложил
%?*?%

Странно, что у вас проблемы с этим кодом возникают т.к. никаких дополнительных библиотек не задействовано.
А у вас безопасность Акцеса позволяет с макросами работать?
28 июн 08, 16:42    [5861007]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к сетевому диску  [new]
Denison777
Guest
с безпасностью всё нормально!никаких ограничений вроде нет
28 июн 08, 22:54    [5861409]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить