Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / определить тип поля / 8 сообщений из 8, страница 1 из 1
12.12.2018, 10:43
    #39746498
mi34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить тип поля
Добрый день.
Тип поля счетчик (длинное целое). Иногда слетает индекс, поле становится не ключевым.
Вопрос следующий:
как программно в определенной таблице проверить, является ли ключевым полем (с типом счетчик) поле с конкретным именем? (Да\нет)
Спасибо
...
Рейтинг: 0 / 0
12.12.2018, 11:44
    #39746546
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить тип поля
mi34,
За,далеко не первый,год общения с ACCESS подобное не наблюдал-может надо думать не как определить тип,а ПОЧЕМУ это происходит
...
Рейтинг: 0 / 0
12.12.2018, 12:38
    #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
12.12.2018, 15:00
    #39746718
mi34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить тип поля
sdku,
а у меня постоянные проблемы. Сделать ничего не могу.. Квалификация 0, к сожалению
...
Рейтинг: 0 / 0
12.12.2018, 15:01
    #39746719
mi34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить тип поля
Панург, у меня акс 2000, поэтому Ваш код не работает?
...
Рейтинг: 0 / 0
12.12.2018, 15:33
    #39746745
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить тип поля
mi34Панург, у меня акс 2000, поэтому Ваш код не работает?

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

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


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