Увеличивать значение поля простого ключа каждый раз, когда запрос добавляет другие поля - PullRequest
0 голосов
/ 16 октября 2019

В моей базе данных с именем 'ADMS' существует таблица с именем 'Merit' с полями:

( Index , номер списка заслуг, Group, OM, AS, AR, FGEI, RFGEI, Session)

Индекс - это простой ключ с типом данных в качестве 'AutoNumber'

Я хочу добавить новую запись во все поля через форму с именем 'Обновление Merit ', которое имеет:

2 комбинированных комбинированных блока с именами MeritListVal и Group Val;

все остальные объекты являются текстовыми полями, которые включают SessVal, OMVal, ASVal, ARVal, FGEIVal, RFGEIVal,DPVal.

Теперь я хочу добавить новые записи в таблицу Merit с помощью формы «Update Merit»;

я попробовал следующий код SQL;

INSERT INTO Merit ( [Merit List Number], [Group], [OM], [AS], [AR], [FGEI], [RFGEI], [DP], [Session] )

VALUES ( [Forms]![Update Merit]![MeritListVal], [Forms]![Update Merit]![GroupVal]. [Forms]![Update Merit]![OMVal], [Forms]![Update Merit]![ASVal], [Forms]![Update Merit]![ARVal], [Forms]![Update Merit]![FGEIVal], [Forms]![Update Merit]![RFGEIVal], [Forms]![Update Merit]![DPVal] );

SELECT Merit.[Merit List Number], Merit.[Group], Merit.[OM], Merit.[AS], Merit.[AR], Merit.[FGEI], Merit.[RFGEI], Merit.[DP], Merit.[Session]

FROM Merit;

Ошибка: количество значений запроса и поля назначения не совпадают.

Это из-за PrimeGrpKey?

Добавляет ли он приращение, когда в него добавляются значения INSERT для добавления запроса?

Если нет, как мне сделать это приращение при каждом добавлении новой записи?

Каким будет SQL-код для выполнения этой задачи?

Даже после того, как я удалил поле Index , оно все еще не добавляет больше записей, та же ошибка.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Новая ошибка: символы после завершения оператора SQL

, полученные после ответа @ QuestionGuyBob об ошибке пропущенного поля, потому что в этом коде;


VALUES ( [Forms]![Update Merit]![MeritListVal], [Forms]![Update Merit]![GroupVal], [Forms]![Update Merit]![OMVal], [Forms]![Update Merit]![ASVal], [Forms]![Update Merit]![ARVal], [Forms]![Update Merit]![FGEIVal], [Forms]![Update Merit]![RFGEIVal], [Forms]![Update Merit]![DPVal], [Forms]![Update Merit]![SessVal] );

SELECT Merit.[Merit List Number], Merit.[Group], Merit.[OM], Merit.[AS], Merit.[AR], Merit.[FGEI], Merit.[RFGEI], Merit.[DP], Merit.[Session]
FROM Merit;

Оказывается, нет необходимости использовать SELECT Statement после INSERT INTO Statement. Итак, предыдущий код становится:

INSERT INTO Merit ( [Merit List Number], [Group], [OM], [AS], [AR], [FGEI], [RFGEI], [DP], [Session] )

VALUES ( [Forms]![Update Merit]![MeritListVal], [Forms]![Update Merit]![GroupVal], [Forms]![Update Merit]![OMVal], [Forms]![Update Merit]![ASVal], [Forms]![Update Merit]![ARVal], [Forms]![Update Merit]![FGEIVal], [Forms]![Update Merit]![RFGEIVal], [Forms]![Update Merit]![DPVal], [Forms]![Update Merit]![SessVal] );

И теперь он успешно добавляет данные в несколько полей таблицы «Достоинства». Спасибо @QuestionGuyBob за указание на исходные ошибки.

0 голосов
/ 16 октября 2019

Ваша вставка в заслугу имеет 9 имен столбцов. В вашем разделе значения есть 8 имен столбцов

. Вот почему возникает ошибка.

enter image description here

Добавьте другое значение в разделе «Значения» вашего кода. Я предполагаю, что «[Forms]! [Update Merit]! [SessionVal]».

...