Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: час
А вообщето вопрос обширный

Вопрос: Проверка существования таблицы в базе данных

Совет:
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


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.