Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 96

Ошибка при добавлении данных копированием

09.10.2006, 14:13. Показов 1993. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помощи!
Пожалуйста, подскажите, как быть: нужно вставлять записи в таблицу с уникальным номером в индексированном поле №пп (но не счётчиком). Для этого до обновления данных в форме я определяю последний индекс в связной таблице добавляю 1 (функция LastNumb)) и заношу новую запись:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Form_BeforeUpdate(Cancel As Integer)
'проверка занесения новой записи в таблицу
'определение порядкового номера для новой записи
Dim TableName As String
If Me.NewRecord Then
    TableName = "[операции]"
    Numb = LastNumb(TableName)
    Me!№пп = Numb
End If
End Sub
Всё работает до тех пор, пока я не пытаюсь в форму вставить несколько строк копированием: Numb определяется правильно только для первой записи, а остальные вставляются под тем же номером. Как быть????
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2006, 14:13
Ответы с готовыми решениями:

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

Ошибка преобразования типа данных при добавлении записи
Доброе время суток . Помогите найти решение проблемы: При добавлении новой профессии все попадает куда надо в таблицу и в поле со...

Ошибка при добавлении
Здравствуйте. При добавлении аудио-продукции(форма) когда начинаешь вводить код трека выскакивает ошибка, но потом ввод доступен, в...

4
7 / 7 / 1
Регистрация: 06.12.2006
Сообщений: 329
09.10.2006, 16:30
Действительно, засада.



Очевидно, в случае начала копирования открывается транзакция, а по окончанию она закрывается, но мы не можем никоим образом в нее вклиниться. Для каждой копируемой записи обрабатываются все события формы, за которые можно было бы зацепиться: BeforeInsert, BeforeUpdate, AfterUpdate, AfterInsert.

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



Я пока вижу один выход (может кто-то предложит иное): создать таблицу с одной записью и одним полем, в котором держать последнее использованное (или следующее доступное) знчение порядкового номера и после добавления новой записи в таблицу [операции] изменять его.




0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
09.10.2006, 17:20
Всё правильно: событие формы «До обновления» (BeforeUpdate) происходит лишь 1 раз - при вставке всех записей (сколько бы их та не было).

Для получения желаемого эффекта Вам нужно использовать иные событие «До вставки» (BeforeInsert). Но это менее правильно...

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

В обработчике события «После обновления» (AfterUpdate) интересующего Вас поля формы (куда выводится значение того счётчика из таблицы) нужно приращивать эту переменную и её значением заполнять поле формы...
0
7 / 7 / 1
Регистрация: 06.12.2006
Сообщений: 329
09.10.2006, 17:47
Михайло (09.10.2006)
Всё правильно: событие формы «До обновления» (BeforeUpdate) происходит лишь 1 раз ..
Ставлю точку останова в BeforeUpdate и вижу, что событие происходит столько раз сколько копируемых записей. Аналогично и для событий BeforeInsert, AfterUpdate, AfterInsert
0
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 96
09.10.2006, 18:55  [ТС]
Спасибо за помощь. Я так и сделал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2006, 18:55
Помогаю со студенческими работами здесь

Ошибка при добавлении поля
Здравствуйте!У меня следующуя проблема: При попытке изменения свойства индексирования поля с "Не допускаются повторения" на...

Ошибка при добавлении записи
знающие люди, помогите: из формы frmПриборы_показания двойным щелчком на код_орг открывается форма ввод_показания, в ней нужно добавить...

Обновление данных при добавлении новых записей
Здравствуйте. Если открыть базу к примеру на двух компьютерах то: Еслм вносить изменение данных в таблице на первом компе, на втором компе...

При добавлении значений в форме выскакивает ошибка
Приветствую! Когда добавляю информацию в таблицу через форму, выскакивает ошибка: Справку читал, но ничего не понял :( От сам...

ошибка при добавлении записей в связанные таблицы
Подскажите пож-ста что я не правильно делаю. Создал две формы. Первая форма "Glavnaya" из нее открывается другая форма "Glav...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru