Экспорт объектов базы данных в другие базы данных Access
В Access существует несколько способов скопировать объект, например таблицу или форму, из одной базы данных в другой. Проще всего скопировать и вставить объект, но экспорт объекта дает вам дополнительные возможности. Например, вы можете экспортировать определение таблицы и ее данные или же только определение таблицы (пустую копию таблицы). Вы также можете сохранить сведения об операции в виде спецификации экспорта для дальнейшего использования.
Обзор
Вы можете экспортировать таблицу, запрос, форму, отчет, макрос или модуль из одной базы данных Access в другую. При экспорте объекта Access создает его копию в конечной базе данных.
Экспорт объектов базы данных используется в том случае, если нужно:
- скопировать структуру таблицы в другую базу данных как ярлык для создания новой таблицы;
- скопировать оформление и макет формы или отчета в другую базу данных, чтобы быстро создать новую форму или отчет;
- регулярно копировать последнюю версию таблицы или формы в другую базу данных. Для этого вы можете создать спецификацию экспорта, когда впервые экспортируете объект, а затем повторять операцию с помощью нее.
Обратите внимание на то, что экспорт объекта в другую базу данных мало отличается от открытии второй базы данных и импорта в нее объекта из первой. Ниже приведены два основных различия между импортом и экспортом объектов в базах данных Access.
- Вы можете импортировать несколько объектов за одну операцию, но не экспортировать их. Если вы хотите экспортировать несколько объектов в другую базу данных, проще открыть конечную базу данных и выполнить импорт в нее.
- Кроме объектов базы данных, можно импортировать связи между таблицами, любые спецификации импорта и экспорта, а также строки меню и панели инструментов. Вы также можете импортировать запрос в виде таблицы. Экспорт не предлагает таких возможностей.
Ищете сведения об импорте объектов в базу данных Access? См. статью Импорт объектов базы данных в текущую базу данных Access.
Подготовка к экспорту
- Откройте исходную базу данных, если она еще не открыта. У нее может быть формат MDB или ACCDB. Если файл имеет формат MDE или ACCDE, исходным объектом должна быть таблица, запрос или макрос. Формы, отчеты и модули невозможно экспортировать из MDE-или ACCDE-файла.
Примечание: Если база данных доступна только для чтения или у вас нет разрешений на внесение в нее изменений, вы сможете выполнить экспорт, но не сохранить его спецификацию.
| Элемент | Описание |
| Один объект на операцию | Одновременно можно экспортировать только один объект. Чтобы экспортировать несколько объектов, повторите операцию экспорта для каждого из них или импортируйте их в конечной базе данных. |
| Новая таблица | Каждая операция экспорта создает новый объект в конечной базе данных. Если объект с таким именем уже существует, вы можете перезаписать его или же указать другое имя для нового объекта. |
Примечание: С помощью экспорта невозможно добавить записи в существующую таблицу. Чтобы сделать это, рекомендуется создать запрос на добавление. Дополнительные сведения см. в статье Добавление записей в таблицу с помощью запроса на добавление.
- Если не удается открыть базу данных, возможно, она открыта другим пользователем в монопольном режиме. Обычно нужно найти этого пользователя и попросить его закрыть базу данных и снова открыть ее в обычном режиме (для нескольких пользователей).
- Если база данных защищена паролем, при каждом запуске мастера экспорта или сохраненной спецификации вам будет предлагаться ввести пароль.
- Если вы хотите экспортировать объект в новую базу данных, необходимо создать пустую базу данных (которая не содержит таблиц, форм и отчетов) до начала операции.
Экспорт объектов базы данных в другие базы данных Access
- На вкладке Внешние данные в группе Экспорт нажмите кнопку Access.
Совет: Вы также можете запустить экспорт, щелкнув объект правой кнопкой мыши в области навигации и выбрав команды Экспорт > Access.
Дополнительные сведения
- Сведения о том, как сохранить сведения об экспорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.
- Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.
- Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.
- Сведения о том, как изменить имя спецификации, удалить ее или обновить имена исходных файлов, см. в статье Задачи управления данными.
Как вынуть описание товара из базы данных
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как вынуть описание товара из базы данных

Заполните форму и мы свяжемся с вами
Заполняя эту форму вы передаете нам личные и данные и соглашаетесь на их использование для связи с вами.

+995 551 141 956
sales@ecommerce-works.com
| КОНСУЛЬТАЦИЯ |

+995 551 141 956
sales@ecommerce-works.com
| КОНСУЛЬТАЦИЯ |

+995 551 141 956
sales@ecommerce-works.com
| КОНСУЛЬТАЦИЯ |

+995 551 141 956
sales@ecommerce-works.com
| КОНСУЛЬТАЦИЯ |

| КОНСУЛЬТАЦИЯ |

Товары как база данных. Почему это основа любого интернет-магазина
Есть одна тема, о которую может споткнуться и профессионал, и начинающий, запускающий первый магазин. Эта тема контринтуитивна. Речь о товарах.

Лично я считаю, что товары — это первое, из чего состоит интернет-магазин. Возможно, это профдеформация. Но давайте посмотрим на них внимательнее.
Интуитивно товары кажутся очень простой вещью: название, цена, картинка и (не всегда) описание.
Этого достаточно, чтобы продажа была технически возможна.
На практике в информации о товарах могут быть:
- товарные остатки из системы учёта;
- вес и размер для автоматической оценки стоимости доставки;
- варианты товара по объему (50/100/150 мл), расцветке и другим срезам;
- данные о персонализации или конфигурации;
- метки сквозной аналитики;
- данные, используемые в рекламной системе через товарный фид;
- налоговые и бухгалтерские правила.
Почему важны варианты товара и как с ними разобраться
То, что вы понимаете как одну пару кроссовок, на складе может занимать неожиданно много места.
Например, 10 размеров кроссовок по 3 цвета каждый.
Это уже 30 коробок, чтобы иметь по 1 паре каждого варианта.
То же самое касается систем интернет-магазина. Чтобы покупатель получил свой размер и цвет товара, нужно иметь возможность выбора этих параметров при заказе.
Бывает товар и сложнее, когда хочется объединить в одну карточку выбор всех вариантов.
Например, ремешок для часов:
— размеры (2 мужских и 2 женских);
— разная кожа (5 видов);
— металл пряжки (4 варианта);
— цвет пряжки (ещё 4 варианта);
— узор пряжки (4 разных).
Итого 4х5х4х4х4=1280 вариантов одного товара.
Важно!
У облачных систем управления магазинами есть ограничения на количество вариантов одного товара (не более 100 или 1000). Мы выработали способы их обхода.
Тем не менее вы можете упереться в такое ограничение. По моему мнению, это происходит из-за неправильной постановки задачи. В таких случаях лучше продумать путь товара и покупателя, чтобы найти другие способы представления товара.
Давайте рассмотрим примеры.
Сначала покажу антикейсы из своей практики, за которые до сих пор стыдно
ДВА САМЫХ СТРАШНЫХ СЛУЧАЯ С БАЗОЙ ТОВАРОВ В ИНТЕРНЕТ-МАГАЗИНЕ
Некоторые из этих кейсов произошли во время работы в компании ws24.pro.
Пользуясь случаем, передаю привет коллегам)
Магазин для сёрфингистов
Классная тематика обернулась проблемами, когда выяснилось, что у клиента три склада с несовпадающими остатками. Вот как это было.
Приходит клиент, приносит прайс товаров.
Делаем магазин, загружаем прайс.
Выясняется, что есть склад и оттуда надо брать информацию об остатках.
Выставляем счёт за интеграцию склада и магазина.
В процессе работ выясняется, что складов три, остатки не совпадают, артикулы не указаны.
Несколько месяцев пытаемся связать магазин и склад по различным признакам, и всё время появляются нюансы, дубликаты и расхождения.
В итоге вынуждены улаживать конфликт, закрывая сотни неоплаченных часов консультаций и работ.
На этапе ТЗ речь шла о нескольких десятках видов дверей. Это был опытный клиент, у него уже не первый магазин. Далее
В итоге всё вылилось в перенос запуска и несколько человеко-недель работы сверх плана.
Клиент приходит с «простой» задачей: в каталоге меньше сотни позиций.
Опасаюсь, что будут варианты. Уточняю у клиента и выясняю, что — да, будут.
Ну ок, начинаем работать.
Получаем от клиента прайс, загружаем в магазин.
Выясняется, что есть ещё и дополнительные варианты: наличники, фурнитура и прочее.
Вносим около десяти новых свойств товара, на основании которых движок автоматически создаёт варианты.
Появляется предчувствие проблемы, но продолжаем разбираться.
Создаём варианты дверей с несколькими видами наличников, каждый с несколькими видами фурнитуры и так далее.
Получаем больше ста вариантов каждой двери — и упираемся в ограничение движка на количество вариантов товара.
Каждый вариант является составным товаром — это комплект из собственно двери и фурнитуры.
Возникает вопрос, как работать с ценами всех этих вариантов.
Тогда комплектов в движке не было предусмотрено, да и решение с ними выходило слишком неповоротливым.
Получилось, что на виртуальном складе тысячи позиций дверей, а как обновить стоимость наличников во всех этих позициях, неясно.
Мы предлагали клиенту упростить решение, исключить дополнительные опции из товара, но это не подходило к его бизнес-задаче.
Предлагали написать внешнюю систему управления базой товаров, но это не входило в бюджет.
Общались с вендором и пытались найти альтернативные решения.
В итоге мы не смогли найти конечное решение в рамках первоначального бюджета и чуть не утонули в урегулировании. И это при том, что на тот момент, пять лет назад, мы уже были достаточно опытны в работе с товарами и не ожидали сложностей с импортом.
Наши потери — несколько человеко-недель.
Потери клиента — время старта и капитальные издержки на разработку.
И всё это — из-за неверной постановки задачи.
ДВА УСТРАШАЮЩИХ КЕЙСА, С КОТОРЫМИ МЫ УСПЕШНО СПРАВИЛИСЬ
Магазин трусов
Однажды к нам пришёл клиент с относительно типовой задачей — переездом интернет-магазина на InSales.
Мы увидели несколько сотен товаров, оценили работы, согласовали и приступили. Инженер, который занимался переносом данных, задерживал работы. Когда попытались выяснить, в чём дело, он прислал скриншот со структурой базы данных клиента.
В базе всего несколько сотен трусов. При этом только вариантов размеров больше 500, а есть ещё и цвета.

А вот картинка со структурой базы данных трусов:

Здесь вы видите визуализацию базы данных — сотни таблиц с данными о товарах (карточки с синими заголовками) и связи между этими таблицами (чёрные линии).
В тот раз, чтобы создать файл для загрузки товаров, инженер обработал все связи во всех таблицах. Более 60 000 строк.
При этом импорт в InSales тогда был ограничен, за один раз получалось загружать не более 5000 строк. Для запуска каждой следующей порции нужно заново сопоставлять все поля. В некоторых товарах их больше 300.Получается 12 порций по 5000 строк, на каждую уходило не менее часа рабочего времени.
Думаю, теперь очевидно, что стоимость создания базы товаров для магазина может превышать стоимость создания всего остального магазина.
Магазин обуви
Клиент пришёл с просьбой подключить товарный фид от поставщика.
Товарный фид — файл с информацией о товарах, наличием и ценами, который можно открыть по ссылке и который обновляется поставщиком по мере необходимости без изменения ссылки. Существует несколько форматов товарных фидов или можно создать свой.
Проанализировали, нашли все логические неопределённости, урегулировали с клиентом, подключили, запустили. Отлично, теперь цены и наличие в БД обновляются каждое утро.
Далее клиент принёс ещё три товарных фида.
Движок не умеет работать более чем с одним фидом — создаём веб-приложение, которое собирает и объединяет данные из нескольких фидов.
По дороге выясняем, что у разных поставщиков разные форматы записи цвета и размера; придумываем, как это объединить.
Через год магазин использовал семь товарных фидов от разных поставщиков в разных форматах (CSV, XSL, XML, YML), объединяемых по изощрённой логике. Например, у некоторых поставщиков остатки передавались в количественном виде, у некоторых — в формате «есть/нет», у некоторых — в формате «много/мало». При этом надо было показывать, что товар недоступен, а в некоторых случаях скрывать эти товары.
Теперь вы видите, что всё не так просто
Эти кейсы показывают множество различных аспектов работы с товарами в интернет-магазине, которые не очевидны, но влияют на устройство и стоимость его создания.
Разложим всё по полочкам. Для каждого товара вам понадобятся:
1.Собственно описание товара, самое простое.
Должно быть всегда. Источником может быть даже просто прайс.
2. Параметры товара.
Длина, ширина, вес, разъём, какие батарейки нужны
Тут могут возникать нюансы — например, у каждой подкатегории товара были свои наборы параметров.
Помните, на импорте прайса на 1000 товаров мы настраивали сопоставление 300 параметров. При всего одной ошибке этот процесс надо было повторять. Не говоря о том, что интерфейс сопоставления совершенно не предназначался для такой работы и никак не показывал, какие из похожих полей уже были сопоставлены. Просто представьте выпадающее меню на 300 строк, которое надо открыть 300 раз.
3. Свойства товара.
Тут мы имеем в виду такие параметры товара, по которым существуют варианты. Самые распространённые — цвет, размер, объём.
С этого начинаются сложности. Например, кроссовки имеют 6 размеров и 4 цвета.Это значит, что в БД будет 24 строчки про этот товар, у каждой будет своя цена и наличие. 100 моделей дадут в итоге 2400 вариантов товара.
Если у товара десять свойств, там точно будут нюансы реализации. Например, то, о чём часто забывают поставщики, — у каждого варианта должен быть свой артикул . В итоге нам приходится решать задачку, как обновлять наличие вариантов без чёткой привязки.
4. Складской учёт.
До тех пор пока вы работаете по дропшиппингу, или ваш поставщик передает вам товарный фид с наличием, или ваши товарные остатки условно бесконечные, у вас нет проблем с этим пунктом.
Как только появляются товары в шоуруме, потом свой склад, потом склады в регионах — рекомендую как можно скорее внедрять полноценный складской учёт.
С усложнением ситуации будут увеличиваться ваши проблемы: артикулы, остатки, ошибки персонала, дубли товаров. В базе на 300 товаров это может создать ад.
Отдельно не рекомендую пытаться повесить внедрение складского учёта на IT-интегратора под видом настройки интеграции интернет-магазина с сервисом «Мой склад». Тот, кто возьмётся делать это за небольшие деньги, не понимает, во что ввязался.
5. Склейка данных из нескольких источников.
6. Влияние особенностей и ограничений движка на формат данных.
Иногда надо разложить часть данных по разным полям, иногда невозможно это сделать.
Чтобы хорошо работали фильтры, у вас должны быть поля для соответствующих параметров и они должны быть заполнены.Собственно, это те самые нюансы товара, которые могут влиять на внешний вид интернет-магазина.
Что ещё важно
Системы учёта
Системы складского учёта (например «Мой склад») используют дополнительное поле в БД товаров, чтобы однозначно идентифицировать данный вариант товара. Плюс можно использовать ещё несколько полей для привязки к другим сущностям.
Источники данных о товарах
Иногда нет единого полноценного источника всей информации о вашем товаре.
Часть информации вы берёте с сайта конкурента, часть даёт поставщик, часть создаёте вы сами.
Роботы могут объединить данные, только если есть какой-то очевидный признак: SKU, barcode, ID. В остальных случаях это может сделать только человек.Наши сотрудники создают по 15–30 товаров в час (клиент — 2 товара в час). Поэтому создание 2000 товаров может занять месяц и будет хорошо стоить.
Здесь далеко не все возможные нюансы, но этого вполне достаточно, чтобы потратить несколько месяцев, так и не начав торговать.
Именно поэтому я призываю отнестись к товарам в ИМ как к проектированию БД.
Итак, нужно:
— определить источники данных: прайс, фид от поставщика, приложение для DropShipping, сайт конкурента, поставщик данных о товарах;
— определить формат данных: короткое и длинное описания, фото, параметры, свойства;
— выбрать способ работы с вариантами: отдельные товары, склеенные по всем свойствам, склеенные по отдельным свойствам, общий товар с конфигуратором;
— определить одно (1) место, в которое вы будете складывать данные, — потом вы сможете распределить их по всем вашим ресурсам. Это позволит избежать путаницы в данных и снизит вероятность ошибок;
— определить какие ограничения есть у движка: например, не более 100 вариантов;
— учесть требования к фильтру в коллекциях;
— требования к дизайну: картинки, длинное описание.
Таким образом, данные о товарах могут проходить через все бизнес-инструменты компании: от поставщика, через складской учёт, движок ИМ (CMS), дизайн магазина, CRM, маркетинг и рекламу (товарные фиды), бухучёт.
Грубо говоря, запуская магазин в новой товарной нише, вы будете создавать новую информационную систему и базу данных.
Сейчас появляется множество сервисов с готовой товарной информацией. По нашему опыту, клиенты ни разу не обратились к таким сервисам, хотя мы сами обращались к ним за расчётом и предлагали их клиенту (это было дешевле, чем наши услуги).
Думаю, дело в том, что они не решают задачу клиента до конца. Например, у сервиса может не быть одной из товарных категорий, не будет картинок в высоком качестве, описание не будет приведено к общему формату, они не будут клеить данные из нескольких источников и многие другие мелочи. Поэтому у нас уже много лет постоянно работает контент-менеджер, который продолжает решать задачу клиента ручным трудом. И только ручной труд пока позволяет решить задачу клиента на 100%. Надеемся, что однажды наши контент-менеджеры станут учителями нейросетей или подобных инструментов и им больше не будет сниться «CTRL+C, CTRL+V».
Мы обсуждаем эти вопросы с каждым клиентом.
Задаем вопросы клиенту, связываемся с поставщиками, ищем альтернативные источники данных, импортируем, загружаем картинки вручную, настраиваем регулярный импорт в магазин, создаём инструменты объединения данных перед импортом. Короче, решаем задачу клиента.
Иногда мы делаем ручную обработку данных о товарах в таблице, чтобы потом быстро импортировать и сократить расходы на ручную работу.
О некоторых кейсах по товарам мы кратко пишем на нашем сайте.
Создание и выполнение запроса на удаление
Если нужно быстро удалить большой объем данных или регулярно удалять определенные сведения из базы данных рабочего стола в Access, удобно воспользоваться запросом на удаление или обновление: в этом случае можно указать условия для быстрого поиска и удаления информации. Кроме того, с помощью запросов вы сэкономите время, потому что их можно повторно использовать после сохранения.
Примечание: Перед удалением данных или выполнением запроса на удаление убедитесь в том, что у вас есть резервная копия базы данных рабочего стола Access.
Если необходимо удалить всего несколько записей, использовать запрос не нужно. Можно открыть таблицу в режиме таблицы, выбрать поля (столбцы) или записи (строки), которые требуется удалить, и нажать клавишу DELETE.
Важно: Эта статья относится только к базам данных рабочего стола. Запросы на удаление и обновление невозможно использовать в веб-приложениях Access.
В этой статье
- Выбор типа запроса
- Использование запроса на удаление
- Использование запроса на обновление
- Дополнительные сведения
- Советы по устранению неполадок
Выбор типа запроса
Для удаления данных из базы данных можно выбрать запрос на обновление или удаление. Выберите тип запроса на основании сведений в следующей таблице:
Запрос на удаление
Удаление всех записей (строк) из таблицы или двух связанных таблиц одновременно.
Примечание: Если записи хранятся на стороне «один» отношения «один-ко-многим», перед выполнения запроса на удаление необходимо изменить это отношение. Подробнее читайте в разделе по удалению данных из связанных таблиц.
Запросы на удаление удаляют все данные в каждом поле, вместе со значением ключа, который делает эту запись уникальной.
Запрос на обновление
Удаление отдельных полей из таблицы.
Упрощает удаление значений путем замены существующих значений на пустое значение (то есть без данных) или на пустую строку (пару двойных кавычек без пробела между ними).
Что необходимо проверить перед использованием запроса на удаление любых данных
- Убедитесь, что файл не открыт в режиме только для чтения.
- Щелкните правой кнопкой мыши кнопку Пуск и откройте проводник Windows.
- Щелкните файл базы данных правой кнопкой мыши и выберите пункт Свойства.
- Проверьте, не выбран ли параметр Только для чтения.
- Проверьте наличие необходимых разрешений на удаление записей из базы данных. При необходимости обратитесь к системному администратору или разработчику базы данных.
- Убедитесь, что содержимое базы данных активировано. По умолчанию приложение Access блокирует выполнение всех запросов (на удаление, обновление и создание таблицы), пока базе данных не будет предоставлено состояние доверенной. Чтобы узнать о признании базы данных доверенной, см. раздел Выполнение запроса, заблокированного из-за режима отключения содержимого.
- Попросите других пользователей базы данных закрыть все таблицы, формы, запросы и отчеты, в которых используются удаляемые данные. Это позволит избежать конфликтов блокировки.
- Перед редактированием или удалением записи необходимо создать резервную копию базы данных на случай необходимости отмены изменений.
Совет: Если к базе данных подключается большое количество пользователей, может потребоваться закрыть ее и снова открыть в монопольном режиме.
Открытие базы данных в монопольном режиме
- Откройте вкладку Файл и выберите пункт Открыть.
- Найдите и выберите базу данных, щелкните значок стрелки рядом с кнопкой Открыть, а затем выберите команду Монопольный доступ.
Создание резервной копии базы данных
- Откройте вкладку Файл и выберите пункт Сохранить как.
- В разделе Сохранить базу данных как выберите пункт Резервная копия базы данных. Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.
- Нажмите кнопку Сохранить как и укажите имя и расположение для резервной копии, а затем нажмите кнопку Сохранить.
Примечание: При использовании базы данных, доступной только для чтения или созданной в более ранней версии приложения Аccess, может появиться сообщение о том, что резервную копию создать невозможно.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте имя исходной версии резервной копии и откройте переименованную копию.
Использование запроса на удаление
Чтобы создать запрос на удаление, на вкладке «Создание» в группе «Запросы» нажмите кнопку «Конструктор запросов». Дважды щелкните каждую таблицу, из которой вы хотите удалить записи, и нажмите кнопку «Закрыть».
Таблица будет отображена в верхней части бланка запроса. В списке полей дважды щелкните звездочку (*), чтобы добавить все поля таблицы в бланк запроса.
Использование специальных условий в запросе на удаление
Важно: Условия служат для указания только тех записей, которые требуется удалить. В другом случае запрос на удаление удалит все записи в таблице.
Дважды щелкните поле, которое вы хотите указать в качестве условия для удаления, введите одно из критериев в строке «Условия» конструктора запросов, а затем введите для каждого поля условия запроса поле «Показать».
Пример использования этого параметра: предположим, вы хотите удалить все ожидающих ожидания заказов для клиента. Чтобы найти только эти записи, нужно добавить поля «ИД клиента» и «Дата заказа» в сетку конструктора запросов, а затем ввести номер ИД клиента и дату, когда заказы этого клиента стали недействительными.
- На вкладке Конструктор выберите команду Режим >Режим таблицы.
- Убедитесь, что выбраны записи, которые требуется удалить, а затем нажмите клавиши CTRL+S, чтобы сохранить запрос.
- Для выполнения запроса дважды щелкните его в области навигации.
Использование запроса на обновление
Примечание: Запросы на обновление невозможно использовать в веб-приложениях Access.
В этом разделе описано, как использовать запрос на обновление для удаления отдельных полей из таблиц. Помните, что выполнение запроса на обновление для удаления данных заменяет существующие значения на пустые или на строки нулевой длины (пару двойных кавычек, не разделенных пробелом), в зависимости от заданного условия.
- На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
- Выберите таблицу с данными, которые вы хотите удалить (если таблица связана, выберите таблицу на стороне отношения «один»), нажмите кнопку Добавить, а затем — Закрыть. Таблица будет отображена в верхней части бланка запроса. В этом окне перечислены все поля выбранной таблицы.
- Чтобы добавить все поля в бланк запроса, дважды щелкните звездочку (*). Это позволит удалить все записи (строки) из таблицы. Дополнительно можно указать условия для одного или нескольких полей в строке Условия, а затем снять флажок Показать в каждом поле условий. Дополнительные сведения см. в таблице Примеры условий для выбора запросов.
Примечание: Условия служат для выбора только тех записей, которые необходимо изменить. В противном случае запрос на обновление изменит все записи в полях запроса на значение NULL.
Дополнительные сведения
Удаление данных из связанных таблиц
Если вы хотите удалить данные из нескольких связанных таблиц, необходимо включить параметры Целостность данных и Каскадное удаление связанных записей для каждой из связей. Это позволит запросу удалять данные из таблиц на сторонах отношения «один» и «многие». Подготовка к удалению связанных данных требует проверки следующих параметров.
- Определите, какие из записей находятся на стороне отношения «один», а какие — на стороне «многие».
- Если нужно удалить записи на стороне отношения «один» и связанные записи на стороне «многие», включите набор правил «Целостность данных» и разрешите операцию каскадного удаления. Далее в этом разделе описано понятие целостности данных и указано, как выполнить оба действия.
- Если вам нужно удалить данные только на стороне отношения «один», сначала удалите отношение, а затем — данные.
Если требуется удалить данные только со стороны отношения «многие», создайте и выполните запрос на удаление, не внося изменений в отношение.
Чтобы узнать, какие записи находятся на сторонах отношения «один» и «многие», на вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Вкладка Схема данных отображает таблицы в базе данных и связи между ними. Каждая связь изображается линией, соединяющей поля таблиц.
На рисунке ниже изображена типичная связь. В большинстве связей (если не во всех) присутствует сторона «один» и сторона «многие». В схеме связей сторона «один» обозначается единицей (1), а сторона «многие» — знаком бесконечности (∞).
При удалении записей, расположенных на стороне «один», удаляются также все связанные записи на стороне «многие». Однако при удалении записей на стороне «многие» записи на стороне «один» обычно не удаляются.
Коме того, приложение Access автоматически использует набор правил целостности данных. Эти правила обеспечивают правильность значений во внешних ключах базы данных. Внешний ключ — это столбец, значения которого совпадают со значениями в столбце первичного ключа в другой таблице.
Изменение связи
Следующие инструкции выполняются только если необходимо удалить данные на сторонах отношения «один» и «многие».
- На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
- Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Изменить связь.
- Убедитесь в том, что в диалоговом окне Изменение связей установлен флажок Обеспечение целостности данных.
- Установите флажок Каскадное удаление связанных записей.
Примечание: Пока вы снова не отключите это свойство, при удалении записей, расположенных на стороне «один», будут удаляться также все связанные записи на стороне «многие».
Удаление связи
- Откройте область Схема данных, если она закрыта.
- На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Запишите имена полей, участвующих в отношении, чтобы после удаления данных можно было восстановить связь.
- Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Удалить.
Примечание: Чтобы восстановить связь, откройте область Схема данных, как показано выше, и перетащите поле первичного ключа из таблицы «один» на поле внешнего ключа таблицы «многие». Будет открыто диалоговое окно Изменение связей. Если в исходном отношении была включена целостность данных, установите флажок Обеспечение целостности данных и нажмите кнопку Создать. В противном случае просто нажмите кнопку Создать.
Примеры условий отбора для запросов
В следующей таблице приведены примеры условий, которые можно использовать в запросах на выборку, когда требуется убедиться, что удаляются только необходимые данные. В некоторых из этих примеров используются подстановочные знаки.
Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234
Выбирает все записи от «Новосибирск» до конца алфавита.
Between #02.02.2010# And #12.01.2010#
Выбирает даты между 2-фев-2010 и 1-дек-2010 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки (‘). Пример: Between ‘02.02.2010’ And ‘12.01.2010’.
Находит все записи, в которых содержимое поля не соответствует значению «Германия». Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова «Германия», например «Германия (евро)» или «Европа (Германия)».
Находит все записи, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые не оканчиваются буквой «т». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Находит все записи в списке со словами «Канада» или «Великобритания».
Находит в поле с типом данных «Текстовые» все записи, начинающиеся с букв «А–Г». Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые содержат сочетание букв «тр». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Like «Григорий Верны?»
Находит все записи, начинающиеся с имени «Григорий» и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии «Верный», а последняя буква неизвестна. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_).
Находит все записи для 2 февраля 2010 г. Если в базе данных используются подстановочные знаки ANSI-92, необходимо заключить дату в одинарные кавычки вместо знаков решетки (‘2.2.2010’).
Использует функцию Date для возврата всех дат не менее 30-дневной давности.
Использует функцию Date для возврата всех записей, содержащих текущую дату.
Between Date( ) And DateAdd(«M», 3, Date( ))
Использует функции Date и DateAdd которые возвращают все записи между текущей датой и датой на три месяца позже.
Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Выбирает все записи с любым (не пустым) значением.
Возвращает все записи, содержащие строку нулевой длины. Пустые строки служат для добавления значений в обязательные поля, если фактическое значение неизвестно. Например, в поле требуется ввести номер факса, но у некоторых клиентов его нет. В этом случае вводится пара двойных кавычек без пробела («»).
Советы по устранению неполадок
Почему на экране может появиться это сообщение об ошибке, и как его исправить?
Если запрос на удаление строится с использованием нескольких таблиц, а для свойства запроса Уникальные значения задано значение Нет, при попытке выполнения запроса Access выведет на экран сообщение об ошибке Удаление из указанных таблиц невозможно.
Чтобы решить эту проблему, задайте для свойства запроса Уникальные значения значение Да.
- Откройте запрос на удаление в конструкторе.
- Если окно свойств запроса не открыто, нажмите для его открытия клавишу F4.
- Щелкните конструктор запросов, чтобы в окне свойств отображались свойства запроса, а не свойства поля.
- В окне свойств найдите свойство Уникальные значения и назначьте ему значение Да.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если открыть базу данных рабочего стола, которая не является доверенной или не находится в надежном расположении, Access будет по умолчанию блокировать все запросы на изменение.
Если при попытке выполнения запроса на изменение ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Если отображается это сообщение, чтобы разблокировать содержимое, выполните следующие действия.
- На панели сообщений Предупреждение системы безопасности нажмите кнопку Включить содержимое и снова выполните запрос.