Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск таблицы в базе из VBA 
V
    Опции темы
BMNDED
Дата 13.7.2015, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 26.12.2005
Где: г.Донецк, Украина

Репутация: нет
Всего: нет



Приветствую. Подскажите, плиз.
При выполнении кода в VBA нужно определить есть ли искомая таблица в базе Access.

Это сообщение отредактировал(а) BMNDED - 13.7.2015, 14:57
PM MAIL   Вверх
Akina
Дата 13.7.2015, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 453



Смотрим коллекцию DAO.Tabledefs, например...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
BMNDED
Дата 13.7.2015, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 26.12.2005
Где: г.Донецк, Украина

Репутация: нет
Всего: нет



Смотрел. Есть ли конкретная функция, при возврате из которой будет true или false? Циклами гонять на сравнение всех таблиц вроде бы как тоже не камильфо.
Можно выкрутится и так конечно:

Dim db As Database
Dim td As TableDef
Dim tds As TableDefs
Dim j As Integer

Set db = CurrentDb
Set tds = db.TableDefs
j = tds.Count
Do While j > 0
    j = j - 1
    Set td = tds(j)
    If td.Name = "0" Then
        
    . . . 

    End If
Loop
Set tds = Nothing

Но может кто знает метод попроще?

Это сообщение отредактировал(а) BMNDED - 13.7.2015, 15:48
PM MAIL   Вверх
Akina
Дата 13.7.2015, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 453



Описывайте цель... ну скажем есть (или скажем нет) - и что дальше?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
BMNDED
Дата 16.7.2015, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 26.12.2005
Где: г.Донецк, Украина

Репутация: нет
Всего: нет



Если такой разговор, то ну вас на...
Если знаешь то напиши, я же не все приложение прошу навоять!
А если выделываться и говорить знаю но не скажу - это цирк!
PM MAIL   Вверх
bopoha
Дата 26.7.2015, 19:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Есть вариант по изящней. но, если через DAO, то придется перебирать.
можете посмотреть в сторону ADODB там можно схему бд запросить.

Код

Public Function CM_TableExist(ByVal tblName As String, Optional ByRef dbSrc As DAO.Database) As Boolean
' создана: 2003-11-27

' определяет существует ли такая таблица
' вход: TblName - имя таблицы
' выход: Возвращает True, если таблица существует
On Error GoTo Err_
   
    Dim TBL As TableDef, db As DAO.Database
   
    VC_TableExist = False
    '-- по умолчанию используется текущая база данных
    If dbSrc Is Nothing Then
         Set db = CurrentDb
    Else
        Set db = dbSrc
    End If
    '-- поиск таблицы в базе
    For Each TBL In db.TableDefs
        If TBL.Name = tblName Then
            CM_TableExist = True
            Exit For
        End If
    Next

Exit_:
    Exit Function
Err_:
    Debug.Print Date, Time, "CM_TableExist", Err.Number, Err.Description
'    MsgBox Err.Description
    Resume Exit_
End Function

PM MAIL WWW ICQ Skype GTalk   Вверх
BMNDED
Дата 4.8.2015, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 26.12.2005
Где: г.Донецк, Украина

Репутация: нет
Всего: нет



Спасибо за помощь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.1300 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.