Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как узнать, что есть связь?
 
 автор: scandal   (11.11.2008 в 11:09)   личное сообщение
 
 

Здравствуйте!
Есть код:

Sub ConnectX(sDBname As String)
'On Error GoTo Err_Table_Append
    Dim db As Database
    Dim tdfLink1 As TableDef
    Dim x As Integer
    Dim tablename As String
    'Dim tdfLink2 As TableDef
    
    Set db = CurrentDb
    
    x = InStrRev(sDBname, "\")
    tablename = Right(sDBname, Len(sDBname) - x)
    x = InStrRev(tablename, ".")
    tablename = Left(tablename, x - 1)

    db.TableDefs.Delete "f2_prep_one"
    
    Set tdfLink1 = db.CreateTableDef("f2_prep_one")
    tdfLink1.Connect = ";DATABASE=" & sDBname
    tdfLink1.SourceTableName = tablename
    db.TableDefs.Append tdfLink1
    
Exit_ConnectX:
    Exit Sub

Err_Table_Append:
    'MsgBox Err.Description
    Resume Exit_ConnectX

End Sub

Если связь f2_prep_one до вызова этой процедуры была, то она удаляется и устанавливается новая нужная связь.
Но если связи не было, то на строке
db.TableDefs.Delete "f2_prep_one"
получается ошибка, так как я пытаюсь удалить не существующую связь.
Вопрос. Как определить, до этой строки, есть ли связь, чтоб удалять, когда есть?
Или как быть?
Процедура каждый раз должна связываться с новой таблицей, но все связи должны иметь одно имя "f2_prep_one"

Заранее спасибо!

  Ответить  
 
 автор: osmor   (11.11.2008 в 11:36)   личное сообщение
 
 

варианты:
1. при удалении ловить нужную ошибку и игнорировать ее resume next
2. использовать функции из FAQ 3 варианта (Q4)
http://hiprog.com/index.php?option=com_content&task=view&id=460

  Ответить  
 
 автор: Кабан   (11.11.2008 в 11:48)   личное сообщение
 
 


on error resume next
db.TableDefs.Delete "f2_prep_one" 
On Error GoTo Err_Table_Append 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList