Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Дублировать запись без ключевого поля
 
 автор: Звездная Тень   (27.09.2006 в 13:19)   личное сообщение
 
 

Как выглядит запрос, вставляющий в таблицу NAKL запись, которая есть копия другой с ключевым полем id=55?
Явным образом указать поля-все, кроме id,- очень не хочется, их много и структура таблицы еще не совсем устоялась.
Запрос INSERT INTO NAKL SELECT NAKL.* FROM NAKL WHERE (((NAKL.id)=55));
выдает невозможность добавления из-за нарушения уникальности ключа.
Вопрос простой, а я что-то сообразить не могу.
Подскажите, пожалуйста.

  Ответить  
 
 автор: osmor   (27.09.2006 в 13:30)   личное сообщение
 
 

сдается мне что в лоб никак...
можно попытаться решить как нибуть через... левое ухо.
написать процедуру формирования строки запроса, что бы включить в запрос все поля из таблицы..
или через запрос на создание временной таблицы, а уж из нее, предварительно изменив код, в основную...
в общем задачка не такая простая

  Ответить  
 
 автор: Explorer   (27.09.2006 в 14:51)   личное сообщение
 
 

если поле ключа счетчик, то перечислить в инсерте все поля явно, кроме ключевого - оно подставится само

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));

  Ответить  
 
 автор: Звездная Тень   (27.09.2006 в 15:00)   личное сообщение
 
 

>если поле ключа счетчик, то перечислить в инсерте все поля
>явно, кроме ключевого - оно подставится само

Спасибо, но полей много. Будут еще добавляться/удаляться. Не хочу отслеживать.

  Ответить  
 
 автор: Звездная Тень   (27.09.2006 в 14:56)   личное сообщение
 
 

1.Создаем новую таблицу с одной записью, id=55
Удалить в ней поле id
Добавить в исходную таблицу NAKL.
Это понятно.

2.А можно как-нибудь вроде
Открыть таблицу NAKL
Перейти к записи с id=55
Выделить запись
Копировать в буфер.
Новая запись.
Вставить из буфера.

3.А так: копировать запись из запроса в массив
Заменить значение id на null
Добавить в таблицу из массива.
Именно такбыло сделано в FoxPro, с которого переписываю эту задачу.

  Ответить  
 
 автор: Explorer   (27.09.2006 в 15:04)   личное сообщение
 
 

а просто Duplicate record негодидзе?

  Ответить  
 
 автор: Звездная Тень   (27.09.2006 в 15:28)   личное сообщение
 
 

Чтой-то я в своем 97 не нашла Duplicate record

  Ответить  
 
 автор: osmor   (27.09.2006 в 16:44)   личное сообщение
 
 

в DAO (ну и ADO) есть метод GetRows, который заполняет массив строками рекордсета.

  Ответить  
 
 автор: Explorer   (27.09.2006 в 19:51)   личное сообщение
 
 

вообще говоря это SelectRecord > CopyRecord > PasteAppend

acEditMenu 8
acEditMenu 2
acEditMenu 5

построй мастером на форме кнопку - выбери из предложенного:

РекордОперэйшнз > ДупликейтРекорд

судя по сообщениям на СКУЛЬ.РУ тебе это подойдет

  Ответить  
 
 автор: Звездная Тень   (28.09.2006 в 10:44)   личное сообщение
 
 

Эх, Мастером я кнопочку строила, как раз вызываются пункты меню Edit .
Но форма у меня не на основе таблицы. В форме поле-список на основе запроса. Выдается "Команда или макрокоманда PastAppend в данный момент недоступна". Именно поэтому я и задала вопрос здесь.

А что такое СКУЛЬ.РУ ?

  Ответить  
 
 автор: Explorer   (28.09.2006 в 11:02)   личное сообщение
 
 

>Но форма у меня не на основе таблицы.

а на основе чего?

приаттачь к мессиджу базу (можно в *.ZIP) посмотрим что там у тебя за "PastAppend в данный момент недоступна"

  Ответить  
 
 автор: Звездная Тень   (28.09.2006 в 13:10)   личное сообщение
 
 

Добрый день!
Пробую отправить zip 187 К ,-ни в сообщениях Форума, ни в личных сообщениях ВЫДАЕТ ОШИБКУ Error 1 .
Может быть, на мейл послать?
Прошу прощения за навешивание своих проблем...

  Ответить  
 
 автор: Explorer   (28.09.2006 в 13:28)   личное сообщение
 
 

мэйл в профиле

  Ответить  
 
 автор: Explorer   (02.10.2006 в 20:07)   личное сообщение
 
 

я правильно понял, что необходимость в приладе возникла в связи с новыми правилами заполнения SMGS при отправке на экспорт (с 01.09.2006)?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList