powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите удалить ВСЕ индексы из таблицы ...
5 сообщений из 5, страница 1 из 1
Помогите удалить ВСЕ индексы из таблицы ...
    #32837364
Yura Zavaliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это проще сделать? перебирать рекордсет и проверять есть ли индекс как-то? ...
...
Рейтинг: 0 / 0
Помогите удалить ВСЕ индексы из таблицы ...
    #32837401
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и вопрос... А откуда индекс берется? И вообще где структура таблицы в которой это надо сделать?
...
Рейтинг: 0 / 0
Помогите удалить ВСЕ индексы из таблицы ...
    #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
Помогите удалить ВСЕ индексы из таблицы ...
    #32837472
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот еще
currentdb.TableDefs(0).Indexes.Delete "blablabla"
...
Рейтинг: 0 / 0
Помогите удалить ВСЕ индексы из таблицы ...
    #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
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите удалить ВСЕ индексы из таблицы ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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