|
|
|
| Как выглядит запрос, вставляющий в таблицу NAKL запись, которая есть копия другой с ключевым полем id=55?
Явным образом указать поля-все, кроме id,- очень не хочется, их много и структура таблицы еще не совсем устоялась.
Запрос INSERT INTO NAKL SELECT NAKL.* FROM NAKL WHERE (((NAKL.id)=55));
выдает невозможность добавления из-за нарушения уникальности ключа.
Вопрос простой, а я что-то сообразить не могу.
Подскажите, пожалуйста. | |
|
| |
|
|
|
| сдается мне что в лоб никак...
можно попытаться решить как нибуть через... левое ухо.
написать процедуру формирования строки запроса, что бы включить в запрос все поля из таблицы..
или через запрос на создание временной таблицы, а уж из нее, предварительно изменив код, в основную...
в общем задачка не такая простая | |
|
| |
|
|
|
| если поле ключа счетчик, то перечислить в инсерте все поля явно, кроме ключевого - оно подставится само
INSERT INTO NAKL
SELECT DATE, SHIPMENT_ADDRESS, RECEPIENT_NAME, PACKAGE_NUM FROM NAKL
WHERE (((NAKL.id)=55));
или сформировать уникальный ключ - (можно DMAX(blah-blah-blah)+1)
INSERT INTO NAKL
SELECT "56" AS NAKLid, DATE, SHIPMENT_ADDRESS, RECEPIENT_NAME, PACKAGE_NUM FROM NAKL
WHERE (((NAKL.id)=55)); | |
|
| |
|
|
|
| >если поле ключа счетчик, то перечислить в инсерте все поля
>явно, кроме ключевого - оно подставится само
Спасибо, но полей много. Будут еще добавляться/удаляться. Не хочу отслеживать. | |
|
| |
|
|
|
| 1.Создаем новую таблицу с одной записью, id=55
Удалить в ней поле id
Добавить в исходную таблицу NAKL.
Это понятно.
2.А можно как-нибудь вроде
Открыть таблицу NAKL
Перейти к записи с id=55
Выделить запись
Копировать в буфер.
Новая запись.
Вставить из буфера.
3.А так: копировать запись из запроса в массив
Заменить значение id на null
Добавить в таблицу из массива.
Именно такбыло сделано в FoxPro, с которого переписываю эту задачу. | |
|
| |
|
|
|
| а просто Duplicate record негодидзе? | |
|
| |
|
|
|
| Чтой-то я в своем 97 не нашла Duplicate record | |
|
| |
|
|
|
| в DAO (ну и ADO) есть метод GetRows, который заполняет массив строками рекордсета. | |
|
| |
|
|
|
| вообще говоря это SelectRecord > CopyRecord > PasteAppend
acEditMenu 8
acEditMenu 2
acEditMenu 5
построй мастером на форме кнопку - выбери из предложенного:
РекордОперэйшнз > ДупликейтРекорд
судя по сообщениям на СКУЛЬ.РУ тебе это подойдет | |
|
| |
|
|
|
| Эх, Мастером я кнопочку строила, как раз вызываются пункты меню Edit .
Но форма у меня не на основе таблицы. В форме поле-список на основе запроса. Выдается "Команда или макрокоманда PastAppend в данный момент недоступна". Именно поэтому я и задала вопрос здесь.
А что такое СКУЛЬ.РУ ? | |
|
| |
|
|
|
| >Но форма у меня не на основе таблицы.
а на основе чего?
приаттачь к мессиджу базу (можно в *.ZIP) посмотрим что там у тебя за "PastAppend в данный момент недоступна" | |
|
| |
|
|
|
| Добрый день!
Пробую отправить zip 187 К ,-ни в сообщениях Форума, ни в личных сообщениях ВЫДАЕТ ОШИБКУ Error 1 .
Может быть, на мейл послать?
Прошу прощения за навешивание своих проблем... | |
|
| |
|
|
|
|
| я правильно понял, что необходимость в приладе возникла в связи с новыми правилами заполнения SMGS при отправке на экспорт (с 01.09.2006)? | |
|
| |