Я пытаюсь приблизиться к MS Access через VBA. Один из звонков, который я хотел бы сделать, - это вставка из последнего поставленного номера. Это нужно будет выбрать последнее число, которое было введено, и повторить его с помощью одного. Я могу просто разместить это в цикле for, чтобы создать 30 из них, однако, я просто пытаюсь получить синтаксис SQL правильно в этот момент. Кажется, что в вставке выбора есть проблема. Ошибка, которую я получаю, - «Ввод запроса должен содержать хотя бы одну таблицу или запрос».Запрос доступа MS для вставки последнего номера
Dim StrSSQL As String
StrSQL = "INSERT INTO MyQueryTable (MYNUMBER) VALUES((Select top 1 MYNUMBER + 1 from MyQueryTable order by MYNUMBER desc));"
DoCmd.SetWarnings False
DoCmd.RunSQL StrSQL
DoCmd.SetWarnings True
Однако, простая вставка как "INSERT INTO MyQueryTable (MYNUMBER) VALUES(999)"
работает нормально.
Столбцы FYI AutoIncrement предназначены для этого и предлагают преимущество, не вызывая серьезных проблем с параллелизмом. –
('NUMBER' является зарезервированным словом, поэтому избегайте его как' [NUMBER] '.) –
Правильно, однако это число не нуждается в этом, так как оно может меняться в любой ручной вставке. (Не уникальный идентификатор). Используя этот макрос, который я установил на месте, должен сгенерировать, скажем, 50 вставок поверх последнего использованного числа. Если, возможно, нет эффективного способа использования автоматического приращения для уникальных номеров? – Brad