|
|
|
Forum Member
      
участник
Last Login: 22.02.2008 15:20
Сообщ.: 44,
Visits: 108
|
|
Есть форма, берущая данные из таблицы "Итоговая рабочий проект".
Есть таблица "Итоговая рабочий проект" и таблица "Антенны ППА". По полю со списком на форме я выбираю антенну из "Антенны ППА"(запросом) и потом хочу вписать остальные параметры записи таблицы "Антенны ППА" в таблицу "Итоговая рабочий проект".
CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='[Антенны ППА]![Коэф усиления]' WHERE [Адрес объекта] = Me![Адрес объекта]"
Вот тут говорит: "не хватает параметров, должно быть 3"
Просто мне надо поле Коэф усиления из "Антенны ППА" заменить в "Итоговая рабочий проект".
Поле "Коэф усиления" есть и в той и в той таблице.....
Может подскажете где ошибка? Спасибо.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
Во-первых, синтаксис:
CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='" & Forms![Антенны ППА]![Коэф усиления] & "' WHERE [Адрес объекта] = " & Me![Адрес объекта]
Во-вторых. Если Вам пишут "не хватает параметров, должно быть ...", то это значит, что запрос на выборку данных не работает... Преобразуйте Ваш запрос (в данном случае - на обновление) в запрос на выборку данных и добейтесь его работоспособности (в конструкторе запросов). Далее - преобразуйте исправленный запрос на выборку в запрос на обновления.
|
|
|
|
|
Forum Member
      
участник
Last Login: 22.02.2008 15:20
Сообщ.: 44,
Visits: 108
|
|
CurrentDb.Execute "UPDATE [Итоговая рабочий проект] SET [Коэф усиления]='" & Forms![Антенны
^^^^^^^^^ - вот тут говорит, что форма "Антенны ППА" не найдена. А у меня "Антенны ППА" - Таблица!!!!
ППА]![Коэф усиления] & "' WHERE [Адрес объекта] = " & Me![Адрес объекта]
|
|
|
|
|
Supreme Being
      
участник
Last Login: 24.11.2007 8:22
Сообщ.: 403,
Visits: 4 348
|
|
Если у Вас Антенны ППА - таблица, и Вам надо обновлять в Итоговая рабочий проект те записи, которые совпадают с Антенны ППА, то либо объедините сравниваемые поля связью, либо включити уто условие в where
И воспользуйтесь все-таки советом Михайло... сделайте сначала запрос на выборку, убедитесь что он возвращает нужные записи, и только потом преобразовывайте в запрос на обновление
|
|
|
|
|
Forum Member
      
участник
Last Login: 22.02.2008 15:20
Сообщ.: 44,
Visits: 108
|
|
Шось не выходит... :(
Смотрите, в таблице "Антенны ППА" всего 5 полей - наименование, коэф усиления, диаметр, и т. д.
В таблице "Итоговая рабочий проект" много полей, но есть и такие как и в "Антенны ППА".
Так вот, поле "наименование" на форме берет данные через запрос с таблицы "Антенны ППА" поля наименование, и просто должно заполнять в записи оставшиеся 4 поля(коэф усиления, диаметр, и т.д) в таблицу "Итоговая рабочий проект" по критерию адреса объекта.
Надеюсь может лучше объяснил...... Спасибо еще раз......
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
Может быть Вам нужно связать эти таблицы?
Вообще, проще будет, если Вы выложите сюда эти таблицы и саму форму в виде mdb-файла (желательно, в формате MS Access 97), упакованного каким-нибудь архиватором...
|
|
|
|
|
Supreme 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.
Преимущества: меньший объем базы; не надо постоянно синхронизировать эти таблицы с помощью запросов на обновление после каждого изменения значений полей в "Антенны ППА".
Пример см. в прикрепленном файле.
|
|
|
|
|
Forum 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'е пишу.... :( Спасибо.
|
|
|
| | |