Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите удалить ВСЕ индексы из таблицы ... / 5 сообщений из 5, страница 1 из 1
21.12.2004, 16:05:53
    #32837364
Yura Zavaliy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ВСЕ индексы из таблицы ...
Как это проще сделать? перебирать рекордсет и проверять есть ли индекс как-то? ...
...
Рейтинг: 0 / 0
21.12.2004, 16:19:29
    #32837401
baike2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ВСЕ индексы из таблицы ...
Ну и вопрос... А откуда индекс берется? И вообще где структура таблицы в которой это надо сделать?
...
Рейтинг: 0 / 0
21.12.2004, 16:37:15
    #32837462
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ВСЕ индексы из таблицы ...
через ADOX
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Function XTblAllDel(MyCat As ADOX.Catalog)
' удаление всех локальных таблиц с предвартельным удалением внешних ключей
Dim Mytable As ADOX.Table
Dim MyKey As ADOX.Key
Dim MyAmbar As Collection
Dim MyPoint As Variant
'=======================   внешние ключи     ==============
For Each Mytable In MyCat.Tables
       If Mytable.Type = "Table" Then
         Set MyAmbar = New Collection
          For Each MyKey In Mytable.Keys
             If MyKey.Type = adKeyForeign Then
               MyAmbar.Add MyKey.Name
             End If
          Next MyKey
                For Each MyPoint In MyAmbar
                    Mytable.Keys.Delete MyPoint
                Next MyPoint
         Set MyAmbar = Nothing
        End If
Next Mytable
'=======================   таблицы      ====================
Set MyAmbar = New Collection
For Each Mytable In MyCat.Tables
         If Mytable.Type = "Table" Then MyAmbar.Add Mytable.Name
Next Mytable
For Each MyPoint In MyAmbar
 MyCat.Tables.Delete MyPoint
Next MyPoint
Set MyAmbar = Nothing
End Function
...
Рейтинг: 0 / 0
21.12.2004, 16:40:38
    #32837472
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ВСЕ индексы из таблицы ...
вот еще
currentdb.TableDefs(0).Indexes.Delete "blablabla"
...
Рейтинг: 0 / 0
21.12.2004, 17:54:50
    #32837672
Yura Zavaliy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите удалить ВСЕ индексы из таблицы ...
Geoвот еще
currentdb.TableDefs(0).Indexes.Delete "blablabla"


вот нашел решение
Function DeleteIndexes(strTable As String)
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim lngI As Long
Dim lngKt As Long

Set db = DBEngine(0)(0)
Set tdf = db.TableDefs(strTable)
lngKt = tdf.Indexes.Count - 1

If MsgBox("About to delete " & lngKt + 1 & " index(es) from " & strTable
& vbCrLf & "Proceed?", vbYesNo + vbDefaultButton2 + vbExclamation, "Confirm
delete") = vbYes Then
For lngI = lngKt To 0 Step -1
tdf.Indexes.Delete tdf.Indexes(lngI).Name
Next
DeleteIndexes = lngKt & " index(es) deleted."
End If

Set tdf = Nothing
Set db = Nothing
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите удалить ВСЕ индексы из таблицы ... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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