Почему не работают запросы access

Результаты не отображаются при запуске таблицы запросов, связанных SQL Server из разных источников

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Исходный номер КБ: 824169

Эта статья применяется к файлу базы данных Microsoft Access (.mdb) или к файлу базы данных Microsoft Access (.accdb). Требуются базовые навыки макроса, кодирования и интероперабельности.

Симптомы

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

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

Обходной путь

Чтобы решить эту проблему, используйте один из следующих методов:

Переписать запрос

Вы можете переписать запрос Microsoft Access, чтобы использовать критерии присоединений с ключевым словом LIKE. С помощью оператора LIKE можно сравнить одно поле с другим полем в связанных таблицах из разных баз данных, а не с помощью ANSI JOIN.

Например, если исходный запрос следующий, dbo_db1_table1 связан с SQL Server базы данных DB1 и dbo_db2_table1, dbo_db2_table2 связаны из SQL Server базы данных DB2:

Перефразировать запрос следующим образом:

Здесь синтаксис ANSI JOIN и NON ANSI JOIN отображаются в одном запросе.

Использование проекта базы данных Access

Чтобы избежать проблем, упомянутых в разделе «Симптомы» этой статьи, используйте проект базы данных Microsoft Access вместо базы данных Microsoft Access. Соединяйте соответствующие таблицы SQL Server в проекте базы данных Microsoft Access, а затем создайте сохраненную процедуру, чтобы включить следующий запрос (где dbo_db1_table1 связан из базы данных SQL Server DB1 и dbo_db2_table1, dbo_db2_table2 связаны из SQL Server базы данных DB2):

Набор результатов появится при запуске этой сохраненной процедуры.

Импорт таблиц SQL Server

Чтобы избежать проблем, упомянутых в разделе «Симптомы» этой статьи, импортировать таблицы SQL Server в базу данных Microsoft Access, а не связывать таблицы SQL Server с базой данных Access.

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

Дополнительные сведения

Вы можете фильтровать данные в Microsoft Access с помощью ключевого слова JOIN в запросах. Ключевое слово JOIN классифицируется как ANSI JOIN и NON ANSI JOIN. ANSI JOIN использует ключевые слова JOIN и ON в запросе. NON ANSI JOIN использует пункт WHERE в запросе.

NON ANSI JOIN использовался более часто до эволюции anSI 92 SQL и был приумножился к ANSI JOIN. Корпорация Майкрософт рекомендует использовать ANSI JOIN в запросах для фильтрации данных.

Читайте также:  Cyberpunk 2077 модификация хищник не работает

Ссылки

Дополнительные сведения о том, как запустить мастер upsizing, щелкните Microsoft Office Справка по доступу в меню Справка, введите мастер upsizing в поле Поиск для окна в области помощи, а затем нажмите кнопку Начните поиск для просмотра темы.

Источник

Устранение ошибок, которые могут возникнуть при обновлении данных в запросах и формах Access

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Исходный номер КБ: 328828

Требуются базовые навыки макроса, кодирования и интероперабельности. Эта статья применяется к базе данных Microsoft Access (.mdb и .accdb) и к проекту Microsoft Access (.adp).

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

При попытке обновления данных в запросе или форме вы можете получить одно из следующих сообщений об ошибке:

Операция должна использовать запрос с возможностью обновления.

Этот набор записей не обновляется.

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

Если запрос основан на трех или нескольких таблицах и имеет отношение «много к одному», нельзя обновлять данные непосредственно в запросе. Вы можете обновить данные в форме или на странице доступа к данным. Это можно сделать на основе запроса, когда свойство формы заданной RecordsetType dynaset(Несогласованные обновления).

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

Если запрос — это SQL microsoft, вы не можете обновить данные в запросе.

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

Когда запрос является запросом Union, нельзя обновлять данные в запросе.

Когда свойство Unique Values запроса за установлено значение Да, вы не можете обновить данные в запросе. Чтобы решить эту проблему, установите свойство Unique Values запроса на значение No.

Если запрос включает связанную таблицу ODBC без уникального индекса или таблицу Paradox без основного ключа, нельзя обновлять данные в запросе. Чтобы решить эту проблему, добавьте основной ключ или уникальный индекс в связанную таблицу.

Если у вас нет разрешений на обновление данных для запроса или таблицы, вы не можете обновлять данные. Чтобы устранить эту проблему, назначьте разрешения на обновление данных.

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

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

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

Читайте также:  Что делать если не работает быстрое начало

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

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

  • Присоединитесь к полю со стороны «один».
  • Поле «много» бокового присоединяться не появляется в таблице данных.
  • Присоединитесь к полю со стороны «много» после обновления данных с «одной» стороны.
  • Пустое поле из таблицы на «одной» стороне связи один к многим с внешним присоединиться существует.
  • Весь уникальный ключ таблицы ODBC — это не выход.

Вы можете разрешить любую из этих проблем, если вы принимаете правильное действие из следующего списка:

  • Включить каскадные обновления между двумя таблицами.
  • Добавьте поле присоединиться со стороны «много» к запросу, чтобы можно было добавить новые записи.
  • Сохраните запись. Вы можете внести изменения в поле «много» бокового присоединяться.
  • Введите значения в полях из таблицы на стороне «много». Это можно сделать только в том случае, если в соединяемом поле со стороны «один» содержится значение для этой записи.
  • Выберите все основные поля ключевых таблиц ODBC, чтобы разрешить вставки к ним.

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

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

Нельзя обновлять данные в форме, если форма основана на наборе ActiveX объектов данных (ADO). Формы доступа позволяют изменять данные из наборов записей ADO, если набор записей ADO создается с помощью сочетания поставщиков MSDataShape и SQL Server OLEDB.

Источник

Почему не работают запросы access

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
не работает запрос(((((((
Регистрация
Страница 1 из 2 1 2 Следующая >

ХЕЛП. думаю уже неделю,не могу сделать.Нужно сделать запрос по полю(поле имеет свойство выпадающего списка).Делала запрос на выборку с уловием: [Ведите параметр].Запрос запускается,но пустой(данные есть в таблице).Тип данных по нужному мне поле текстовый.

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

Если есть поля подстановки в таблицах — убирайте (думаю, из-за них), архивируйте базу (можете оставить только таблицы) и выкладывайте

shanemac51, у кого мысли сходятся. — Правильно: у единомышленников

VIka, и обязательно перед тем, как выложить, преобразуйте файл в формат 2003

Источник

При запуске запроса в Microsoft Access вы получаете сообщение об ошибке из-за арабского номера с двойным byte

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Симптомы

В Microsoft Access 2010, русская версия Microsoft Access 2007 или в Microsoft Office Access 2003 вы испытываете один из следующих симптомов:

Симптом 1

При запуске запроса с именем поля, начинающийся с арабского номера с двойным byte, вы получаете сообщение об ошибке. Например, если имя поля содержит два или более символов, например «PMonth», вы получите следующее сообщение об ошибке:

Читайте также:  Настроить нвидиа для графики

Если имя поля содержит только один символ, например «1», вы получите следующее сообщение об ошибке:

Симптом 2

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

Примечание Местообладатель TableName представляет имя запрашиваемой таблицы. Местообладатель FieldName представляет имя имени поля, которое вы запрашиваете.

Примечание Эта проблема также может возникать для объектов, не в таблицах.

Решение

Чтобы устранить проблему, описанную в «Симптоме 1», см. в резолюции 1.

Чтобы устранить проблему, описанную в symptom 2, см. в резолюции 2.

Разрешение 1

Чтобы устранить эту проблему, заключив имя поля в квадратные скобки с одним byte ([]). Например, измените имя поля с 1Month на [1 месяц].

Разрешение 2

Чтобы устранить эту проблему, используйте один из следующих методов:

Способ 1

  1. Измените любые имена полей, которые начинаются с арабских номеров с двойным byte, чтобы они не использовали арабские номера с двойным byte.
  2. Создайте и сохраните новый запрос.

Способ 2

Создайте новый запрос, основанный на таблице. Назови новый запрос Query1.

Создайте поле с именем TableName.* для запроса.

Примечание Не добавляйте другие поля, кроме TableName.*.

Сохраните новый запрос.

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

Источник

Типичные ошибки при выполнении запроса на добавление

При выполнении запроса на добавление можно получить следующее сообщение об ошибке: «Приложению Microsoft Access не удается добавить все записи в запросе на добавление».

Сообщение об ошибке может появиться по одной из следующих причин:

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

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

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

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

В таком случае нельзя добавлять записи со значением менее 10.

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

Источник

Оцените статью