Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Доброе утро. Помогите пожалуйста с запросом на обновление. В двух таблицах есть поля с одинаковыми значениями. Как можно сделать так, чтобы при изменении значения в поле таблицы1 менялось значение в поле таблицы2?
3 апр 06, 12:06    [2517124]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Если таблицы SQL Server тогда отслеживать в триггере, если Аксовские, то полной уверенности, что всегда будет обновление - нет, за исключением полей, связанных каскадным обновлением в Foreign Key.

Но зачем держать одинаковые поля в разных таблицах?
3 апр 06, 12:13    [2517159]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Нет, работа идёт в Аксесе. А поля одинаковые, т.к. в другой таблице более подробные данные.
3 апр 06, 12:19    [2517190]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
bubucha
Member

Откуда:
Сообщений: 5636
Rivkin Dmitry
то полной уверенности, что всегда будет обновление - нет

Ну это вопрос реализации, т.е. перед изменеием поля в 1-й таблицы запоминаем его значение, пробуем обновить во второй, если не получается, то возвращаемся к старому значению. Ну это как вариант.
3 апр 06, 12:20    [2517195]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Я пишу запрос на обновление такого плана:
UPDATE Таблица2 SET Таблица2.Поле1 = ('Таблица1.[Поле1]')
WHERE ((('[Таблица2]![Код]')='[Таблица1]![Код]'));
У полей Код тип счётчик, а значения в Поле1 обеих таблиц равны.
Вообще выше написанное должно работать?
3 апр 06, 12:27    [2517223]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Не-а. Фрома нету.
3 апр 06, 12:28    [2517241]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
(тупой вопрос) А куды его?
3 апр 06, 12:34    [2517272]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Какой-то хаос с кавычками у вас. Попробуйте вместо:
UPDATE Таблица2 SET Таблица2.Поле1 = ('Таблица1.[Поле1]')
WHERE ((('[Таблица2]![Код]')='[Таблица1]![Код]'));
так:
UPDATE Таблица2,Таблица1 SET Таблица2.Поле1 = Таблица1.[Поле1]
WHERE Таблица2.[Код]=Таблица1.[Код];
3 апр 06, 12:36    [2517278]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
bubucha
Member

Откуда:
Сообщений: 5636
автор
(тупой вопрос) А куды его?

А не пробовали построителем запросов воспользоватся?
3 апр 06, 12:37    [2517284]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Karfagenу низкий поклон!!!!
3 апр 06, 12:41    [2517307]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Karfagenу низкий поклон!!!!
3 апр 06, 12:42    [2517313]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
bubucha
Rivkin Dmitry
то полной уверенности, что всегда будет обновление - нет

Ну это вопрос реализации, т.е. перед изменеием поля в 1-й таблицы запоминаем его значение, пробуем обновить во второй, если не получается, то возвращаемся к старому значению. Ну это как вариант.

Это слишком глубоко, я до таких глубин не дошел еще!
Я име ввиду, что если обновление любой из таблиц делать напрямую, минуя форму, то отследить это изменение, практически невозможно! Да и в одной форме отслеживать изменения в двух таблицах - гемор порядочный! Лучше все-же не иметь одинаковые поля в разных таблах. И это не оправдание, что в другой таблице даты больше - тем хуже!
3 апр 06, 13:06    [2517462]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Ну надо чтоб так было (я про одинаковые поля). А вообще вы, наверное, правы
3 апр 06, 13:12    [2517521]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Redrick
Ну надо чтоб так было (я про одинаковые поля). А вообще вы, наверное, правы

Это не я прав - это правила реляционных баз данных.
От них можно отступать, но нужно знать куда и когда!
3 апр 06, 13:14    [2517542]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Redrick
Member

Откуда: Питер
Сообщений: 883
Ну уговорили, уговорили. Но в ДАННОЙ базе от этого не уйти
3 апр 06, 13:17    [2517566]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на обновление  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Redrick
Ну уговорили, уговорили. Но в ДАННОЙ базе от этого не уйти

Попробую еще поуговаривать...
Лучше сейчас уйти, чем потом кусать локти. И не так уж трудно это - выбрать таблу с большим кол-вом полей и добавить в нее недостающие из второй. Создать запрос на обновление и заполнить эти поля датой. Поиском найти все места, где встречается вторая таблица и поменять ее имя на имя первой. Дропнуть вторую и откомпелировать. Два дня работы - не больше. Но потом - кайф!
3 апр 06, 13:24    [2517618]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить