Vvmebel.com

Новости с мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access обновление данных

Создание запросов на обновление таблиц

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

1. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.

2. Выберите поле с данными, которые следует обновить, и введите выражение (условие изменения) в строке Обновление для этого поля.

В строке Обновление можно использовать любое допустимое выражение. В следующей таблице приведены примеры выражений и соответствующие им результаты изменения данных.

3. На вкладке Конструктор в группе Результаты выберите команду Запуск.

4. Появится предупреждающее сообщение.

Нажмите кнопку Да, чтобы выполнить запрос и обновить данные.

Примечание. После выполнения запроса можно заметить, что в его результатах отсутствуют некоторые поля. Если запрос содержит поля, которые не обновлялись, по умолчанию эти поля не отображаются в результатах. Предположим, что были включены поля «Код» из двух таблиц, чтобы убедиться, что запрос возвращает и обрабатывает нужные записи. Если эти поля «Код» не обновлялись, то в приложении Access они не отображаются в результатах.

Обновление данных в одной таблице данными из другой таблицы

При необходимости обновить данные в одной таблице данными из другой помните следующее правило: типы данных исходного и результирующего поля должны либо совпадать, либо быть совместимыми.

Кроме того, при обновлении данных в одной таблице данными из другой и использовании совместимых типов данных вместо совпадающих типов данных приложение Access выполняет преобразование типов данных этих полей в конечной таблице. В результате некоторые данные в конечных полях могут быть обрезаны (удалены).

Процесс обновления данных в одной таблице данными из другой состоит из следующих основных этапов.

1. Создайте запрос на обновление и добавьте исходную и конечную таблицы в запрос.

2. Объедините эти таблицы по полям, содержащим связанные сведения.

3. Добавьте имена конечных полей в строку Поле бланка запроса.

4. Добавьте имена исходных полей в строку Обновление бланка запроса с использованием следующего синтаксиса: [исходная_таблица].[исходное_поле].

Создание и выполнение запроса на обновление

1. На вкладке Создание в группе Другие щелкните Конструктор запросов.

2. В диалоговом окне Добавление таблицы дважды щелкните исходную и конечную таблицы для добавления их в запрос. Каждая таблица отображается в окне конструктора запросов. Закончив добавление таблиц, нажмите кнопку Закрыть чтобы закрыть диалоговое окно Добавление таблицы.

3. Объедините эти таблицы по полям, содержащим связанные сведения. Для этого выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.

При этом в приложении Access создается связь между этими полями в двух таблицах, и данная связь используется для объединения всех связанных записей.

4. На вкладке Конструктор в группе Тип запроса выберите команду Обновление.

5. В конечной таблице дважды щелкните поля, которые нужно обновить. Каждое поле будет появляться в строке Поле бланка запроса.

6. В строке Обновление запроса в каждый столбец, содержащий конечное поле, добавьте имя исходной таблицы и поля исходной таблицы, соответствующее полю в конечной таблице, используя следующий синтаксис: [Таблица].[Поле], где имена таблицы и поля заключаются в квадратные скобки и разделяются точкой.

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

7. На вкладке Конструктор в группе Результаты выберите команду Запуск.

8. Нажмите кнопку Да для подтверждения обновления.

Обновление или повторный запрос данных

Если к вашей базе данных открыт общий доступ по сети, Microsoft Access обновляет информацию через установленные промежутки времени. Чтобы просмотреть самые актуальные данные, обновите записи в режиме таблицы или в режиме формы: на вкладке Главная нажмите кнопку Обновить все и выберите команду > Обновить . Происходит обновление существующих данных в таблице или форме. Этот процесс не переупорядочивает записи, не отображает новые и не удаляет несуществующие записи или записи, которые больше не соответствуют указанным условиям. Чтобы сделать обновление более тщательным, выполните повторный запрос данных с помощью макроса.

Примечание: Повторный запрос может занять много времени в зависимости от размера записей.

В этой статье

Указание интервала обновления

Повторный запрос данных в веб-приложении Access

Обновление данных

Выполните одно из следующих действий:

Чтобы обновить данные в режиме таблицы или формы, на вкладке Главная в группе Записи нажмите Обновить все , а затем нажмите Обновить .

Чтобы обновить данные окне сводной таблицы или сводной диаграммы, на вкладке Конструктор в группе Данные нажмите Обновить сводные области .

Нажмите сочетание клавиш SHIFT+F9.

К началу страницы

Указание интервала обновления

Вы можете указать интервал, по которому Access будет обновлять данные.По умолчанию Access обновляет данные каждые 60 секунд.

Нажмите кнопку Office.Появляется Outspace.

На левой панели Outspace нажмите Параметры .

На левой панели диалогового окна Параметры Access щелкните элемент Расширенные параметры .

На правой панели под Расширенными параметрами уточните значение Интервала обновлений (в секундах) .

К началу страницы

Повторный запрос данных с помощью макроса

Чтобы автоматически выполнять повторный запрос данных при возникновении события, можно создать макрос и связать его с событием. Предположим, вы хотите повторно запросить данные получением TE000127438 в форме. Для этого можно создать макрос и связать его с событием формы Получение фокуса с помощью описанной ниже процедуры:

На вкладке Создание в группе Другие выберите Макрос . Если эта команда недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса , а затем нажмите кнопку Макрос .

Щелкните стрелку в поле рядом с зеленым знаком плюса (+) и выберите пункт Запросить повторно .

Читать еще:  Операторы vba access

Сохраните макрос, используя имя
Повторный запрос , а затем закройте конструктор макросов.

Откройте нужную форму в TE000126615 . Если страница свойств не отображается, нажмите клавишу F4.

Убедитесь, что сама форма выбрана.Затем нажмите на вкладку Событие на странице свойств.

На вкладке Событие щелкните стрелку в свойстве Получение фокуса и выберите макрос «Requery».

К началу страницы

Используйте код, чтобы повторно запросить данные

Чтобы автоматически выполнять повторный запрос данных при возникновении события, можно создать макрос и связать его с событием, например получением в форме. Для этого можно создать макрос и связать его с событием формы Получение фокуса с помощью описанной ниже процедуры:

Откройте нужную форму в Конструкторе. Если страница свойств не отображается, нажмите клавишу F4.

Убедитесь, что сама форма выбрана.Затем нажмите на вкладку Событие на странице свойств.

На вкладке Событие в свойстве Получение фокуса нажмите на кнопку Сборка .

В диалоговом окне Выберите конструктор нажмите на Конструктор кода .

В редакторе Visual Basic откроется новый модуль.

Напечатайте
Me.Requery , а затем закройте редактор Visual Basic.

К началу страницы

Повторный запрос данных в веб-приложении Access

Запросы в веб-приложении Access выполняются на сервере. Чтобы повторно запросить данные в веб-приложении Access, используйте макрос «ОбновитьЗапись». Этот макрос требует текущий набор записей.

Откройте необходимую форму, нажмите кнопку Макрокоманды , а затем выберите Текущая запись.

В Каталоге макрокоманд выберите ПовторноЗапроситьЗаписи . Если поле Выражение= оставить пустым, к результатам не будут применяться дополнительные фильтры, а если оставить пустым поле Порядок сортировки= , не будет применяться сортировка.

Запросы SQL для обновления данных (UPDATE)

Изучаем SQL

  • 1. Введение в SQL
  • 2. Запросы на выборку
  • 3. Условия в запросах
  • 4. Cортировка данных
  • 5. Вставка записи
  • 6. Вставка нескольких записей
  • 7. Изменение записи

Под обновлением данных в БД подразумевается изменение значений в существующих записях таблицы. При этом возможно как изменение значений полей в группе строк (даже всех строк таблицы), так и правка значения поля отдельной строки.

В SQL, изменить запись в таблице БД можно с помощью команды UPDATE. В самом минимальном виде команда обновления данных выглядит следующим образом:

UPDATE таблица SET поле = значение

Здесь, UPDATE – команда указывающая, что запрос на обновление данных;

таблица – название таблицы, в которой будет проводиться изменения;

SET – команда, после которой через запятую указываются поля с назначаемыми им значениями;

поле – поле таблицы, в которое будет внесено изменение;

значение – новое значение, которое будет внесено в поле.

Например, если необходимо задать полю во всех строках таблицы значение равное нулю, можно выполнить такой запрос:

UPDATE goods SET price = 0

В этом случае, поле price абсолютно во всех имеющиеся строках таблицы примет значение 0.

Изменение одного значения

Изменение значения всех полей в таблице необходимо крайне редко. Чаще всего необходимо поменять значение какой-то конкретной записи. Для этого в завершении строки с командой UPDATE будет добавлена директива WHERE, в которой указывается условие, определяющее с какой именно строкой нужно выполнить операцию обновления.

Для примера, нужно обновить стоимость товара с известным нам его значением num. Для этого, выполним следующий запрос:

UPDATE goods SET price = 150 WHERE num = 2

Теперь, перед операцией изменения полей, будет выбрана строка, удовлетворяющая условию num = 2. Такая строка в таблице одна. В этой стоке цена и будет изменена на значение 150. В результате получим таблицу с измененной ценой товара.

Внесение изменений в несколько строк с условием отбора

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

Например, мы хотим уменьшить в два раза цену всех товаров, которые сейчас стоят от 100 и более. Запрос:

UPDATE goods SET price = price / 2 WHERE price >= 100

Условие WHERE здесь содержит правило, по которому будут выбраны только товары с ценой равной или более 100, а те товары, цена у которых ниже 100, затронуты запросом не будут.

price = price / 2 – формула, по которой будет вычисляться новая цена товаров. Новая цена будет записана равной старой цене поделенной на два.

В результате выполнения такого запроса получим таблицу с измененными записями:

Обновление значений в нескольких полях строки

При необходимости обновлять сразу несколько полей, все поля с их значениями указываются после директивы SET через запятую. Например, нужно изменить название и цену товара с кодом 2 на «утюг», стоимостью 300:

UPDATE goods SET title = «утюг» , price = 300 WHERE num = 2

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

Выше приведены основные виды операций обновления. На их основе формируется запросы для решения большинства задач изменения данных в разработке с применением SQL.

Еще материалы из этого раздела

Комментарии

Добрый день!
А можно ли сделать так:
UPDATE goods SET title, price = 100 WHERE num = 2

То есть присвоить двум полям одно значение?

Добрый день, Анастасия.
Простейший вариант:
UPDATE goods SET price = (RAND() * 100) WHERE num = 2

Здесь назначается случайное число до 100, так как функция RAND() вернет дробное от 0 до 1. Поэтому еще стоит обратить внимание на тип поля, когда в БД запись заносится. В данном случае, без округления, вещественное может быть записано.

Добрый день, Василий.
Одна строка таблицы — это одна запись. Если вы хотите исправить в одной записи таблице (строке таблицы), то так и будет:
UPDATE goods SET title = «утюг», price = 300 WHERE num = 2

Читать еще:  Remote desktop access что это

title = «утюг», price = 300 — для каждого столбца строки.

Добрый день, Василий.

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

Подобное решение, как мне кажется применимо, например, в обновлении прайс-листа. Но, т.к. задача не часто выполнимая, то нет смысла усложнять ее, пусть даже для повышения скорости выполнения. Хотя все зависит от конкретных условий.

Надеюсь, я ответил на ваш вопрос, Василий.

Есть простая таблица в sql. И по нажатию на кнопку сохранить выполняется сохранение изменений. Запрос такой:
$query = «UPDATE `comp` SET `comp_login`= ‘$comp_login’, `comp_name` = ‘$comp_name’, `see` = ‘$see’, `p_status` = ‘$p_status’, `comp_text` = ‘$comp_text’ WHERE `id_comp` = ‘$id_comp’ AND `id_clients` = ‘$id_clients'»;
Значения переменных берутся с пост запроса. Примерно такие: $comp_login = mysql_real_escape_string($request[‘comp_login’]);

Вопрос: Мне нужно знать была ли обновлена строка. Даже если ничего не было изменено, то тоже нужно вернуть истину.
Если проверить так: if(mysql_affected_rows() >0) , то возвращается ложь, если ничего не было изменено.

А if(mysql_affected_rows() == -1) выполняется только, если есть конкретные ошибки. Т.е. в таблице есть стpока enum со значениями ‘0’,’1′. Если я в это поле отправляю текст, то ставит 0 и пишет нет ошибки.

Как обычно проверяют такие условия?

А можете ли помочь с таким вопросом:
Есть сайт технической поддержки. И есть пользователи, которые оставляют на нем заявку в компанию. На нем есть таблица с полями: id_client(id пользователя AI, PK), name_client(Имя потльзователя), status(один ко многим), date_r(дата регистрации).

Статусы у всех пользователей будут разные. Например:
у пользователя 1: открыто, отменено, закрыто, передано, принято.
у пользователя 2: открыто, отменено, закрыто, исполнено, в ожидании.
у каждого клиента должны быть видны несколько статусов для выбора (только ему принадлежащие), а у другого клиента (другие статусы, принадлежащие именно ко второму клиенту)

Статусы в любое время могут добавляться( не удаляются).
Я пока придумал только так:
1. вариант:
Вторая таблица такая: id_status, id_client, open, close, cancelled, sent, accepted.
id_status — AI PK, id_client — указывает на первую таблицу на пользователя, другие поля сами статусы и имеют значение enum: ‘0’, ‘1’ — в зависимости присутствует для пользователя ставиться 0 или 1.

Когда необходимо добавлять статус какому либо клиенту сначала ставлю 1 для нужного пользователя, а для всех других проставляю 0.
2 Вариант.
Во второй таблице statuses (id_statuses, name_status) записаны все статусы. В таблице пользователя в поле status записать несколько значений id_statuses разделенных разделителями, которые принадлежат ему.

Может можно реализовать попроще?

Добрый день, Иван.
Не знаю, правильно ли я понял вопрос.
Я бы сделал гораздо больше таблиц: пользователи, статусы, заявки, статусы_заявки. Последняя в случае, если одной заявке может соответствовать несколько статусов. Если нет, то она не нужна.

Например, если нужно чтобы пользователю могло быть назначено несколько статусов, то: сама таблица пользователя (id, имя, прочее), список_статусов (id, название, . ), статусы_пользователя (id, id_пользователя, id_статуса). Таим образом у вас будет обеспечена и целостность данных и не будет в таблицах не будет избыточности.

Обновление данных в форме

привет всем еще раз))

Есть форма, в которой выводятся данные из таблицы, ну и дальше с ними проводятся какие-то манипуляции..
возможно ли, чтобы в форме данные обновлялись в соответствии с изменениями в таблице (например, при добавлении строк или просто изменении)?? или это в форме невозможно?

Обновление данных на форме
День добрый. Просьба помочь. На форме имеется поле со списком, в нем номера заказов, по выбору этих.

Обновление данных в форме
Подскажите куда дописать или изменить. Чтоб открылась форма (для обновления данных) без старых.

Обновление данных в форме
В форме "passForm", в правом верхнем углу есть выпадающее меню для поиска номера телефона по.

Обновление данных в подчиненной форме
Добрый день. Подскажите вот в таком вопросе: Есть форма, которая содержит список и подчиненную к.

поправлюсь, изменения происходят, просто не интерактивно, т.е.
при закрытии и повторном открытии формы, она обновляется в соответствии с данными таблицы и наоборот.. а нет ли что-нибудь типа «обновить форму в соответствии с данными» не закрывая ее?

Добавлено через 1 минуту

Agapov_stas, у меня иногда бывает Me.Refresh не срабатывает

Agapov_stas, не знаю, у меня почему то ни в ленточной ни в табличной ни в одиночной на первую запись не перешли, ну это не суть важно, спасибо за совет, хоть буду знать если форма начнет вести себя странно

Requery — самое подходящее)) т.к. записи часто обновляются и трудно отследить в какой момент форма становится неактуальной, легче перед повторным использованием обновить данные

спасибо за разъяснения и пример))

п.с.: всем спасибкнула))

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обновление данных в подчинённой форме из Главной
Здравствуйте, господа хорошие! Вроде не считаю себя необразованным, но столкнулся с такой.

Обновление данных в форме Access 2003
Имеется форма, построенная на запросе на выборку. При изменении числового значения непосредственно.

Обновление и сохранение данных в подчиненной форме
Здравствуйте! Появилась необходимость в доработке базы Телефоны сотрудников. Создал.

Обновление данных на форме при выборе из списка
Всем, привет! Столкнулась с таким нюансом: Добавила на форму столбцы из одной таблицы (таблица.

Создание и выполнение запроса на обновление

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Читать еще:  Функция date в access

С помощью запроса на обновление в базах данных Access можно добавлять, изменять и удалять данные в существующих записях. Запросы на обновление можно рассматривать как разновидность диалогового окна Поиск и замена с более широкими возможностями. Запрос на обновление нельзя использовать для добавления новых записей в базу данных или их удаления из нее.

Для добавления новых записей используется запрос на добавление, для удаления записей — запрос на удаление.

В этой статье

Обзор

Ниже представлены сходства и различия между функцией «Поиск и замена» и запросом на обновление

Как и в диалоговом окне Поиск и замена, в запросе на обновление можно указать значение, которое требуется заменить, а также новое значение.

В отличие от функции Поиск и замена запрос на обновление позволяет:

использовать условия, которые не зависят от заменяемого значения;

обновлять несколько записей за раз;

изменять записи в нескольких таблицах одновременно.

Ограничения обновления полей

Запрос на обновление нельзя использовать для обновления данных в полях указанных ниже типов.

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

Поля итогового или перекрестного запроса. Значения в запросах этих типов рассчитываются, поэтому их нельзя обновить с помощью запроса на обновление.

Поля с типом данных «Счетчик». Значения в полях с типом данных «Счетчик» изменяются только при добавлении записи в таблицу.

Поля в запросах уникальных значений и уникальных запросов на поиск записей Значения в таких запросах суммируются. Некоторые значения представляют одну запись, а другие — более одной записи. Операция обновления невозможна, так как невозможно определить, какие записи были исключены как дубликаты, и, следовательно, невозможно обновить все необходимые записи. Это ограничение действует, если вы используете запрос на обновление или пытаетесь обновить данные вручную путем ввода значений в форму или таблицу.

Поля в запросе на объединение Вы не можете обновить данные из полей запроса на объединение, так как каждая запись, отображаемая в нескольких источниках данных, отображается только один раз в результатах запроса на объединение. Поскольку некоторые повторяющиеся записи удаляются из результатов, приложению Access не удается обновить все необходимые записи.

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

Примечание: При каскадном обновлении Access автоматически обновляет значения внешнего ключа при изменении значения первичного ключа в родительской таблице.

Использование запроса на обновление

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

Совет: Перед выполнением запроса на обновление рекомендуется создать резервную копию базы данных. Результаты данного запроса нельзя отменить, а созданная резервная копия позволит вам восстановить данные в случае необходимости.

Создание резервной копии базы данных

Откройте вкладку Файл и выберите команду Сохранить как. Обратите внимание: если вы используете Access 2010, откройте вкладку Файл и выберите команду Сохранить и опубликовать.

Справа в разделе Расширенная установка щелкните элемент Создать резервную копию базы данных.

В диалоговом окне Сохранение резервной копии укажите имя и расположение резервной копии и нажмите кнопку Сохранить.

Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.

Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте резервной копии имя исходной версии и откройте переименованную резервную копию в Access.

В этом разделе

Этап 1. Создание запроса на выборку для определения обновляемых записей

Откройте базу данных, содержащую записи, которые нужно обновить.

На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

Откроется конструктор запросов и диалоговое окно Добавление таблицы.

Откройте вкладку Таблицы.

Выделите одну или несколько таблиц с записями, которые требуется обновить, и нажмите кнопку Добавить, а затем — кнопку Закрыть.

Таблица или таблицы отображаются в конструкторе запросов в одном или нескольких окнах, а в Windows список всех полей в каждой таблице. На этом рисунке показан конструктор запросов с обычной таблицей.

1. Таблица в окне конструктора запросов

2. Бланк запроса

В окнах таблиц дважды щелкните поля, которые необходимо обновить. Выделенные поля появятся в строке Поле бланка запроса.

Для каждого столбца в бланке запроса можно добавить одно поле таблицы.

Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (*) в верхней части списка полей таблицы в окне таблицы. На рисунке показан бланк запроса со всеми добавленными полями.

Чтобы ограничить результаты запроса на основе значений полей, в бланке запроса в строке Условие введите условие, которое необходимо использовать для ограничения результатов.

Таблица примеров условий

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

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

Ссылка на основную публикацию
Adblock
detector
×
×