Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2012, 13:20   #1
Lexx_Luthor
Новичок
Джуниор
 
Регистрация: 11.07.2012
Сообщений: 1
Вопрос Обновление данных в таблице из формы.

Доброго времени!

Подскажите, как реализовать следующую вещь:

1. Есть таблица с данными. В ней одно из полей носит название "номер".
2. Есть форма, для ввода данных в таблицу.
3. Необходимо сделать проверку, при которой, если в таблице уже присутствует строка с номером, который только что ввели через форму, то не создаётся новая запись, а модифицируется с данным номером.
Lexx_Luthor вне форума Ответить с цитированием
Старый 12.07.2012, 09:16   #2
Swatch
Форумчанин
 
Регистрация: 05.07.2009
Сообщений: 209
По умолчанию

Сделайте кнопку сохранения записи и по нажатию организуйте проверку на наличие записи в таблице с таким же номером. ПРИМЕРНО это будет выглядеть так:
Код:
dim rst as recordset
dim i as integer
i=0
set rst=currentdb.openrecordset("Таблица")
do while not rst.eof
if rst!НомерЗаписи=Me.НомерЗаписи then
i=1
end if
rst.movenext
loop
If i=0 then ' если в таблице нет такой записи
docmd.runsql "insert into Таблица (список полей таблицы) select (список полей формы)"
else  ' если такая запись уже есть
docmd.runsql "update Таблица set НомерЗаписи=" & Me.НомерЗаписи & ", ...... "
end if
Это ПРИМЕРНО
Swatch вне форума Ответить с цитированием
Старый 12.07.2012, 19:44   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Lexx_Luthor.
От Swatch Вы получили образец - хорошую конструкцию которая в состоянии решать подобную задачу,
но Вас не предупредили что подобное решение будет "лучше себя чувствовать" (выполняться) на Unbound форме
- форме не связанной с данными.
Для такого-же решения ещё один вариант:
Код:
Const sQ = "select * from Таблица where НомерЗаписи="
dim rst as recordset, i as integer, s$
s = Me.НомерЗаписи & ""
set rst=currentdb.openrecordset(sQ + s)
if rst.Eof then rst.addnew else rst.edit
for i = 1 to rst.fields.count - 1
	s = rst.fields(i).name
	rst(i) = Me.controls(s)
next
rst.update
подразумевается что в первом поле таблицы (поле с нулевым индексом в рекордсете) расположен идентификатор
- счётчик который ни добавлять ни изменять не надо, а имена у полей формы такие же как у полей таблицы.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление записей в таблице ua3pno Microsoft Office Access 4 20.02.2011 19:56
Обновление данных в сводной таблице Tolikv Microsoft Office Excel 13 11.06.2010 14:54
Обновление данных в основной таблице из выделенных ячеек дополнительной semjenion Microsoft Office Excel 6 09.04.2010 17:52
Обновление данных подчиненной формы из другой подчиненной формы smoky Microsoft Office Access 2 15.08.2009 15:28
Привязка к файлам, Перезагрузка и обновление формы, Регистр букв, Шифровка данных Лукманов Александр Общие вопросы Delphi 2 24.12.2008 15:17