powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / определить тип поля
8 сообщений из 8, страница 1 из 1
определить тип поля
    #39746498
mi34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Тип поля счетчик (длинное целое). Иногда слетает индекс, поле становится не ключевым.
Вопрос следующий:
как программно в определенной таблице проверить, является ли ключевым полем (с типом счетчик) поле с конкретным именем? (Да\нет)
Спасибо
...
Рейтинг: 0 / 0
определить тип поля
    #39746546
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mi34,
За,далеко не первый,год общения с ACCESS подобное не наблюдал-может надо думать не как определить тип,а ПОЧЕМУ это происходит
...
Рейтинг: 0 / 0
определить тип поля
    #39746592
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mi34, нотацию прочитали уже


mi34как программно в определенной таблице проверить, является ли ключевым полем (с типом счетчик) поле с конкретным именем? (Да\нет)теперь немного кода
Код: vbnet
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.
Sub TestTable()
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim inx As DAO.Index
Dim i As Long
Dim avFields As Variant

Const TABLE_NAME$ = "MSysAccessStorage"
Set dbs = CurrentDb
Set tdf = dbs.TableDefs(TABLE_NAME)

    For Each inx In tdf.Indexes
        If inx.Primary Then
            avFields = Split(Replace(inx.Fields, "+", vbNullString), ";")
                For i = LBound(avFields) To UBound(avFields)
                    Set fld = tdf(avFields(i))
                        If fld.Attributes And dbAutoIncrField Then MsgBox "Поле " & fld.Name & " является счётчиком и" & IIf((UBound(avFields) - LBound(avFields)) > 0, " входит в состав ключа", " ключевым"): Exit For
                Next i
            Exit For
        End If
    Next inx
Set fld = Nothing
Set inx = Nothing
Set tdf = Nothing
Set dbs = Nothing
End Sub

...
Рейтинг: 0 / 0
определить тип поля
    #39746718
mi34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
а у меня постоянные проблемы. Сделать ничего не могу.. Квалификация 0, к сожалению
...
Рейтинг: 0 / 0
определить тип поля
    #39746719
mi34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, у меня акс 2000, поэтому Ваш код не работает?
...
Рейтинг: 0 / 0
определить тип поля
    #39746745
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mi34Панург, у меня акс 2000, поэтому Ваш код не работает?

А на каком этапе ругается с помощью F8 не выясняли?

Ну и просто открыть в режиме конструктора и посмотреть какое поле ключевое не вариант?
...
Рейтинг: 0 / 0
определить тип поля
    #39747119
mi34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, а как сделать условие в вашей процедуре, если поле "не является..."?
...
Рейтинг: 0 / 0
определить тип поля
    #39747128
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mi34, "не является..." чем? Там два условия, соответственно каждому условию "не является...". Если не входит в массив avFields значит не является ключевым, не имеет соответствующего атрибута - не счётчик.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / определить тип поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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