узнать счетчик через дао

vvb152
Дата: 03.12.2006 22:14:10
Всем привет
подскажите, как с помощью дао узнать, что поле таблицы - счетчик?
или для этого нужно адо/адоХ использовать?
в общем, хочу програмно добавлять строки, поэтому и возник вопрос
sql использовать не хочу
Владимир Саныч
Дата: 03.12.2006 22:27:59
fld.Attributes And dbAutoIncrField
где fld - поле рекордсета.
vvb152
Дата: 03.12.2006 23:05:49
Владимир Саныч
fld.Attributes And dbAutoIncrField
где fld - поле рекордсета.

да что-то не получается
Attributes приваиваются константами, и конечное значение его - это сумма констант
где в этой сумме найти dbAutoIncrField - не знаю
mds_world
Дата: 04.12.2006 00:37:23
А вот так вас не устроит?
Dim tdf As TableDef
Dim fld As Field

For Each fld In tdf.Fields
    If fld.Attributes = dbAutoIncrField Then Debug.Print "Счетчик"
    Debug.Print fld.Name
Next fld
ILL HEAD
Дата: 04.12.2006 03:34:58
Sub s()
    Dim i As Integer
    
        For i = 0 To CurrentDb.TableDefs("_ABC").Fields.count - 1
            If CurrentDb.TableDefs("_ABC").Fields(i).Attributes And dbAutoIncrField Then Debug.Print "It's counter"
            Debug.Print CurrentDb.TableDefs("_ABC").Fields(i).name
        Next
End Sub
g
Дата: 04.12.2006 07:33:47
благодарствую
у себя реализовал так:
Function FieldCounter(tableName As String) As String
Dim db As DAO.Database, fld As DAO.Field
Set db = CurrentDb
For Each fld In db.TableDefs(tableName).Fields
If fld.Attributes And dbAutoIncrField Then FieldCounter = fld.Name ': Debug.Print FieldCounter & " - it's counter"
Next fld
End Function

но смотрю на строчку
fld.Attributes And dbAutoIncrField
смотрю в хелп - и не понимаю, почему это условие срабатывает
ладно, главное теперь - ничего не трогать
:)
ILL HEAD
Дата: 04.12.2006 07:45:42
g
fld.Attributes And dbAutoIncrField
почему это условие срабатывает
правильнее было написать так:
If (fld.Attributes And dbAutoIncrField) = dbAutoIncrField Then
mds_world
Дата: 04.12.2006 09:10:35
Вот, блин! Нельзя поздно ночью задачки решать. Забыл написать назначение для Set tdf.
Охренеть. Ладно, поезд ушел.
vvb152
Дата: 04.12.2006 09:49:30
mds_world
Вот, блин! Нельзя поздно ночью задачки решать. Забыл написать назначение для Set tdf.
Охренеть. Ладно, поезд ушел.

а поподробнее? причем здесь обявление табличной переменной?
и потом, я так и не пойму, почему срабатывает
fld.Attributes And dbAutoIncrField
и почему она хуже (fld.Attributes And dbAutoIncrField) = dbAutoIncrField
как-то не очень я понимаю работу с константами в аксе
ILL HEAD
Дата: 04.12.2006 09:53:24
срабатывает потому что НЕ НОЛЬ В РЕЗАЛТЕ (значит NOT FALSE)
а сравнение лучше потому что в результате TRUE/FALSE