Вставка полей из одной табл в другую
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Вставка полей из одной табл в другую Expand / Collapse
Автор
Сообщение
15.05.2007 15:32
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 22.02.2008 15:20
Сообщ.: 44, Visits: 108
Есть форма, берущая данные из таблицы "Итоговая рабочий проект".
Есть таблица "Итоговая рабочий проект" и таблица "Антенны ППА". По полю со списком на форме я выбираю антенну из "Антенны ППА"(запросом) и потом хочу вписать остальные параметры записи таблицы "Антенны ППА" в таблицу "Итоговая рабочий проект".

CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='[Антенны ППА]![Коэф усиления]' WHERE [Адрес объекта] = Me![Адрес объекта]"

Вот тут говорит: "не хватает параметров, должно быть 3"

Просто мне надо поле Коэф усиления из "Антенны ППА" заменить в "Итоговая рабочий проект".

Поле "Коэф усиления" есть и в той и в той таблице.....

Может подскажете где ошибка? Спасибо.
Сообщ. #913281
15.05.2007 17:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 13.03.2008 11:35
Сообщ.: 839, Visits: 8 738
Во-первых, синтаксис:

CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='" & Forms![Антенны ППА]![Коэф усиления] & "' WHERE [Адрес объекта] = " & Me![Адрес объекта]

Во-вторых. Если Вам пишут "не хватает параметров, должно быть ...", то это значит, что запрос на выборку данных не работает... Преобразуйте Ваш запрос (в данном случае - на обновление) в запрос на выборку данных и добейтесь его работоспособности (в конструкторе запросов). Далее - преобразуйте исправленный запрос на выборку в запрос на обновления.
Сообщ. #913285
16.05.2007 12:02
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 22.02.2008 15:20
Сообщ.: 44, Visits: 108
CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='" & Forms![Антенны
^^^^^^^^^ - вот тут говорит, что форма "Антенны ППА" не найдена. А у меня "Антенны ППА" - Таблица!!!!

ППА]![Коэф усиления] & "' WHERE [Адрес объекта] = " & Me![Адрес объекта]

Сообщ. #913306
16.05.2007 12:36


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.11.2007 8:22
Сообщ.: 403, Visits: 4 348
Если у Вас Антенны ППА - таблица, и Вам надо обновлять в Итоговая рабочий проект те записи, которые совпадают с Антенны ППА, то либо объедините сравниваемые поля связью, либо включити уто условие в where
И воспользуйтесь все-таки советом Михайло... сделайте сначала запрос на выборку, убедитесь что он возвращает нужные записи, и только потом преобразовывайте в запрос на обновление
Сообщ. #913309
16.05.2007 14:31
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 22.02.2008 15:20
Сообщ.: 44, Visits: 108
Шось не выходит... :(

Смотрите, в таблице "Антенны ППА" всего 5 полей - наименование, коэф усиления, диаметр, и т. д.

В таблице "Итоговая рабочий проект" много полей, но есть и такие как и в "Антенны ППА".

Так вот, поле "наименование" на форме берет данные через запрос с таблицы "Антенны ППА" поля наименование, и просто должно заполнять в записи оставшиеся 4 поля(коэф усиления, диаметр, и т.д) в таблицу "Итоговая рабочий проект" по критерию адреса объекта.

Надеюсь может лучше объяснил...... Спасибо еще раз......
Сообщ. #913313
16.05.2007 17:26
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 13.03.2008 11:35
Сообщ.: 839, Visits: 8 738
Может быть Вам нужно связать эти таблицы?
Вообще, проще будет, если Вы выложите сюда эти таблицы и саму форму в виде mdb-файла (желательно, в формате MS Access 97), упакованного каким-нибудь архиватором...
Сообщ. #913322
17.05.2007 10:01
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
pvik1970 (16.05.2007)
Шось не выходит... :(

Смотрите, в таблице "Антенны ППА" всего 5 полей - наименование, коэф усиления, диаметр, и т. д.

В таблице "Итоговая рабочий проект" много полей, но есть и такие как и в "Антенны ППА".

Так вот, поле "наименование" на форме берет данные через запрос с таблицы "Антенны ППА" поля наименование, и просто должно заполнять в записи оставшиеся 4 поля(коэф усиления, диаметр, и т.д) в таблицу "Итоговая рабочий проект" по критерию адреса объекта.

Надеюсь может лучше объяснил...... Спасибо еще раз......

Мое мнение, которое я излагал в частной переписке, остается прежним: все Ваши проблемы возникают на ровном месте из-за денормализованности базы.

1) Дополните таблицу "Антенны ППА" полем, например ID, типа счетчк и сделайте его ключевым.
2) В таблице "Итоговая рабочий проект" создайте числовое (длинное целое) поле например ID_ant. Задайте для него в качестве подстановки поле со списком, источником строк которого будет запрос основанный на таблице "Антенны ППА".
3) Уберите из таблицы "Итоговая рабочий проект" поля относящиеся к антенне.
4) Свяжите один ко многим таблицы "Антенны ППА" и "Итоговая рабочий проект" по полям ID и ID_ant.
5) С помощью запроса на выборку, типа такого:
SELECT [Итоговая рабочий проект].*, Антенны_ППА.[наименование], Антенны_ППА.[коэф усиления], Антенны_ППА.[диаметр] FROM Антенны_ППА INNER JOIN [Итоговая рабочий проект] ON Антенны_ППА.id = [Итоговая рабочий проект].id_ant
получаете требуемые результаты без никаких UPDATE.
Преимущества: меньший объем базы; не надо постоянно синхронизировать эти таблицы с помощью запросов на обновление после каждого изменения значений полей в "Антенны ППА".
Пример см. в прикрепленном файле.


  Post Attachments 
db2.rar (2 views, 11,54 KB)
Сообщ. #913347
17.05.2007 16:33
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 22.02.2008 15:20
Сообщ.: 44, Visits: 108
CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Антена ППА-А]='" & Me![Тип] & "', [Частота]='" & Me![Частота] & "', [Коэф усиления]='" & Me![Коэф усиления] & "', [Вес]='" & Me![Вес] & "', [Ширина]='" & Me![Ширина] & "', [Высота]='" & Me![Высота] & "', [Глубина]='" & Me![Глубина] & "' WHERE [Адрес объекта]='& Me![Адрес объекта] &'"

Пробую так, но пишет, что мало параметров. Нужно 3. Мне именно нужен оператор Update, так как тут изменяются только часть полей по условию "Адрес объекта".

Может еще кто подскажет? Просто я только 2 месяца как в Access'е пишу.... :( Спасибо.
Сообщ. #913372