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

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

for each tbl in currentdb.tabledefs
...
...
next tbl
так тоже неправильно будет работать, т.е. пропускать ...
...
Рейтинг: 0 / 0
29.09.2004, 15:17:05
    #32716893
Geo
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
29.09.2004, 19:13:44
    #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
29.09.2004, 19:23:51
    #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
22.12.2004, 14:55:18
    #32839402
Pantalone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как кодом удалить только связанные таблицы в базе?
Действительно фигня какая-то...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как кодом удалить только связанные таблицы в базе? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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