|
|
|
| Здравствуйте!
Есть код:
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"
Заранее спасибо! | |
|
| |
|
|
|
| варианты:
1. при удалении ловить нужную ошибку и игнорировать ее resume next
2. использовать функции из FAQ 3 варианта (Q4)
http://hiprog.com/index.php?option=com_content&task=view&id=460 | |
|
| |
|
|
|
|
on error resume next
db.TableDefs.Delete "f2_prep_one"
On Error GoTo Err_Table_Append
|
| |
|
| |