powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как кодом удалить только связанные таблицы в базе?
8 сообщений из 8, страница 1 из 1
Как кодом удалить только связанные таблицы в базе?
    #32716841
Геха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как перебрать таблицы базы и удалить связанные? При каждом удалении меняется число таблиц и не получается организовать цикл.
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32716866
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считать надо с максимума...
For i = CurrentDb.Tabledefs.Count-1 To 0 Step -1
...
Next
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32716871
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim tbl as tabledef

for each tbl in currentdb.tabledefs
...
...
next tbl
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32716882
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geodim tbl as tabledef

for each tbl in currentdb.tabledefs
...
...
next tbl
так тоже неправильно будет работать, т.е. пропускать ...
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32716893
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  Dim t As TableDef
  
  For Each t In CurrentDb.TableDefs
    If Left(t.Name,  1 ) = "t" Then
       CurrentDb.TableDefs.Delete t.Name
    End If
  Next
все удалила.
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32717646
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoПочему?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  Dim t As TableDef
  
  For Each t In CurrentDb.TableDefs
    If Left(t.Name,  1 ) = "t" Then
       CurrentDb.TableDefs.Delete t.Name
    End If
  Next
все удалила.

Значит просто повезло или я ошибся, на досуге посмотрю ...
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32717664
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, да, действительно такой код удалит, но методически он неправилен, прежде всего потому что каждый раз вызывается CurrentDb (что и позволяет обновить коллекцию объектов) - довольно медленная процедура, а также потому, что проблема "маскируется".
Попробуйте видоизменить ваш код следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim t As TableDef
Dim Db as DAO.Database
Set Db = CurrentDb   
For Each t In Db.TableDefs
    If Left(t.Name,  1 ) = "t" Then
        Db.TableDefs.Delete t.Name
    End If
Next
И код уже не будет работать должным образом.

Но, прошу прощения за первый "скороспелый" ответ
...
Рейтинг: 0 / 0
Как кодом удалить только связанные таблицы в базе?
    #32839402
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно фигня какая-то...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как кодом удалить только связанные таблицы в базе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]