ник: час
А вообщето вопрос обширный
Вопрос: Проверка существования таблицы в базе данных
Совет:
Public Function CheckTable(strtblName As String) As Boolean
Dim tbl As dao.TableDef
On Error Resume Next
Set tbl = CurrentDb().TableDefs(strtblName)
If err.Number = 0 Then
CheckTable = True
Else
CheckTable = False
End If
CheckTable_EXIT:
Exit Function
CheckTable_ERR:
Select Case err.Number
Case Else
MsgBox err.Description & "(" & err.Number & ") в процедуре CheckTable"
Resume CheckTable_EXIT
End Select
End Function
osmor
==================
Dim ao As AccessObject
For Each ao In CurrentData.AllTables
MsgBox ao.Name
Next
==================
Переделка из Кена Гетца
Public Function adhExists(strName As String) As Boolean
Dim dbs As Database
Dim ctr As Container
Dim doc As Document
Set dbs = CurrentDb
On Error Resume Next
Set ctr = dbs.Containers!Tables
Set doc = ctr(strName)
'Debug.Print doc.LastUpdated
Set doc = Nothing
Set ctr = Nothing
Set dbs = Nothing
adhExists = (Err.Number = 0)
Err.Clear
End Function
Anatoliy
==================
Еще вариант
Function IsTableInDB(db As Database, tbl As String) As Integer
Dim tdf As TableDef
On Error GoTo IsTableInDB_Err
Set tdf = db.TableDefs(tbl)
IsTableInDB = True
Exit Function
IsTableInDB_Err:
IsTableInDB = False
End Function
StaleX
==================
ща попробую функцию изобразить
Function Проверка_существования_таблицы(mytdf as string) As Boolean
dim tdf As TableDef
For Each tdf In carrentdb.TableDefs
If tdf.Name = mytdf Then mytdf = true
Next tdf
End Function
filosof
==================
Для А2000 и выше
Dim aob As AccessObject
Dim bol As Boolean
For Each aob In CurrentData.AllTables
If aob.Name = "Клиенты" Then
bol = True
Exit For
End If
Next
MsgBox bol
ДиД
==============
можно так
Public Function IsTable(strNameTbl As String) As Boolean
'***************************************************************************************
' Возвращает истину если таблица есть в базе и ложь если нет
' Комментарий : strNameTbl - имя искомой таблицы
'***************************************************************************************
On Error GoTo IsTable_ERR
IsTable = False
Dim tbl As DAO.TableDef
On Error Resume Next
Set tbl = CurrentDb.TableDefs(strNameTbl)
If Err = 0 Then IsTable = True
Resume 0
IsTable_EXIT:
Exit Function
IsTable_ERR:
Select Case Err.Number
Case Else
MsgBox Err.Description & "(" & Err.Number & ") в процедуре IsTable"
Resume IsTable_EXIT
End Select
End Function
или пробежатся по коллекции tabledefs или посмотреть системную таблицу
Я на прошлой неделе отвечал на этот вопрос, поищите
osmor
===========
А чем плохо это?
Function ЕстьТакаяТаблица (ИмяТаблицы as String) As Boolean
Dim oTable As TableDef
On Error Resume Next
Set oTable=CurrentDB.TableDefs("ИмяТаблицы")
If Err.Number<>0 Then
Err.Clear
ЕстьТакаяТаблица=False
Else
ЕстьТакаяТаблица=True
End If
End Function
ЛМВ
===========================
Public Function ThereIsTable(strNameTable As String) As Boolean
Dim tdf As TableDef
On Error Resume Next
Set tdf = CurrentDb.TableDefs(strNameTable)
ThereIsTable = (Err.Number = 0)
Set tdf = Nothing
End Function