Проверка существования базы по ссылке.

SFORDinc
Дата: 19.09.2005 08:59:02
Нужна реализация сабжа в VBA.
nibbles
Дата: 19.09.2005 09:18:44
Если база данных - файловая, то обычной проверкой на существование файла.
Путь к базе можно получить из
CurrentDb.Tabledefs("ИмяТаблицы").Connect
SFORDinc
Дата: 19.09.2005 09:43:34
Как проверить существование файла (Код)?
ЗЫ Не нашел в справке. Прошу сильно не бить за глупость.
Toking
Дата: 19.09.2005 10:04:53
VBA IDE -> Help -> DIR
SFORDinc
Дата: 19.09.2005 10:25:48
Простите! А это куда?
Уточните путь назначения.
Пользователь2
Дата: 19.09.2005 10:51:02
     If Dir("d:\MyDb\DataBase.mdb") <> "" Then
        MsgBox "Файл существует."
    Else
        MsgBox "Файл НЕ существует."
    End If
affaaffa
Дата: 19.09.2005 11:34:41
Часто рекомендуют вместо сравнения с пустой строкой сравнивать длину строки с нулем - такое сравнение должно выполняться быстрее. Т.е.

     If Len(Dir("d:\MyDb\DataBase.mdb")) <> 0 Then
        MsgBox "Файл существует."
    Else
        MsgBox "Файл НЕ существует."
    End If
SFORDinc
Дата: 20.09.2005 12:00:08
Воспользовавшись всеми советами, я написал следующий код:

Set pdb = CurrentDb()
    Set qd = pdb.Tabledefs
    
    Dim sdbpth As String
    Dim sdbhdr As String
    Dim scnntdbfllpth As String
    
    sdbpth = "\База\Основные фонды ЦЭПН_be.mdb"
    sdbhdr = "c:"
    If Len(Dir(sdbhdr + sdbpth)) <> 0 Then
       scnntdbfllpth = ";DATABASE=" + sdbhdr + sdbpth
        For Each A In qd
            If A.Connect = scnntdbfllpth Then
                A.Connect = scnntdbfllpth
                A.RefreshLink
            End If
        Next
    Else
        sdbhdr = "\\Федор"
        If Len(Dir(sdbhdr + sdbpth)) <> 0 Then
            scnntdbfllpth = ";DATABASE=" + sdbhdr + sdbpth
            For Each B In qd
                If B.Connect = scnntdbfllpth Then
                    B.Connect = scnntdbfllpth
                    B.RefreshLink
                End If
            Next
        Else
            MsgBox "Файл базы данных отсутствует. Возможно закрыт доступ. Обратитесь к администратору."
        End If
    End If
Однако, база перестала обновлять ссылки. Где ошибка?
ЗЫ При отладке в строке "...If B.Connect = scnntdbfllpth Then..." результат всегда отрицательный. Что бы это могло значить?[SRC vba][/SRC]
Serge Gavrilov
Дата: 20.09.2005 12:17:12
автор
If B.Connect = scnntdbfllpth Then
B.Connect = scnntdbfllpth

А в чем смысл подобного обновления?
SFORDinc
Дата: 20.09.2005 13:25:23
Serge Gavrilov
автор
If B.Connect = scnntdbfllpth Then
B.Connect = scnntdbfllpth

А в чем смысл подобного обновления?

А как бы вы предложили сменить неверную ссылку на путь размещения файла базы данных?