Добавление данных в индексированную таблицу - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь добавить записи в таблицу, данные которой проиндексированы по столбцу идентификаторов. Мне бы хотелось, чтобы добавленные данные продолжали индексирование и добавляли следующий номер к первой добавленной записи и так далее. Однако этот столбец ID не является столбцом AutoNumber - первое число должно быть 5001, поэтому его текущий тип данных - «Number». Данные уже в этой таблице вводятся через форму с этим VBA для форматирования столбца идентификатора:

    If Nz(Me.ID, "") = "" Then
    NewID = Int(DMax("ID", "tComplianceAll") + 1)
Else
    NewID = Me.ID
End If

В настоящее время у меня есть запрос на добавление, чтобы попытаться добавить новые данные в таблицу с этим SQL для этого столбца ID: Int (DMax ("ID", "tComplianceAll") + 1) AS Expr1

Это, однако, работает только для первой записи. Остальные не добавляются из-за нарушения ключа, так как он пытается назначить один и тот же идентификационный номер для всех добавленных записей. Есть ли способ изменить этот SQL, чтобы он правильно индексировал вновь добавленные данные?

1 Ответ

0 голосов
/ 10 июля 2018

Вы, конечно, можете использовать стандартное значение идентификатора Autonumber здесь!

  1. Изменить таблицу tComplianceAll и изменить тип столбца ID на AutoNumber
  2. Затем установите следующее значение, используя этот SQL:

    ALTER TABLE tComplianceAll ALTER COLUMN ID AUTOINCREMENT(5001,1)
    

    На самом деле, вы бы изменили 5001 на последнее значение, возвращаемое (DMax("ID", "tComplianceAll") + 1)

Это должно быть сделано при условии, что tComplianceAll не связан с другими сторонними таблицами, использующими поле ID.

...