Vvmebel.com

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

C access sql

Выполнение SQL запросов к текущей базе данных в среде VBA (Access)

В Microsoft Office Access поддерживается выполнение SQL запросов к текущей базе данных из программного кода на VBA. Рассмотрим, как это можно использовать при разработке приложений баз данных.

Так как запрос выполняется к той же самой базе данный в которой выполняется модуль VBA, для выполнения SQL запроса нет необходимости работать со стандартными в подобных случаях интерфейсами ADO, ODBC и т.д. Всё можно сделать при помощи объектной модели Access.

Как известно SQL запросы можно условно разделить на две большие группы:

  • Запросы, не возвращающие данных (INSERT, UPDATE, DELETE и т.д.);
  • Запросы возвращающие данные (запросы на выборку (SELECT)).
Запросы, не возвращающие данных

Для выполнения запросов к текущей базе данных служит метод Execute объекта CurrentDb. Этот метод принимает в качестве параметра строку с SQL запросом, который необходимо выполнить.

Это простейший запрос. Но, как быть с запросами, которые манипулируют теми или иными данными?

Такие запросы тоже можно выполнить. Для этого нужно просто сформировать соответствующую строку.

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

А, так их обновление:

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

Запросы на выборку

Метод Execute объекта CurrentDb не поддерживает выполнение запросов на выборку. Поэтому для них нужен другой подход.

Чтобы работать с выборкой данных необходимо воспользоваться объектом RecordSet, который можно создать при помощи метода OpenRecordSet объекта CurrentDb. Этот метод также принимает в качестве параметра строку с SQL запросом.

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

Помимо простого перебора доступны несколько видов поиска. Но в основном используются два.

Первый вид поиска реализован в виде методов FindFirst, FindLast, FindNext и FindPrevious объекта RecordSet.

Первые два устанавливают курсор на соответственно первую и последнюю записи, соответствующие условию поиска. Условие поиска передаётся в качестве параметра в виде строки. Само условие задаётся по аналогии с предложением WHERE в обычном SQL запросе.

Методы FindNext и FindPrevious устанавливают курсор на следующую и предыдущую записи в соответствии с условием поиска, если такие записи существуют. Условие поиска для этих методов задаётся также, как и для FindFirst и FindLast.

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

В следующем примере перебор записей начнётся с записи, у которой id равен 234, так как курсор был перемещён к ней до начала обхода набора записей в цикле.

Access SQL. Основные понятия, лексика и синтаксис

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

Для извлечения данных из базы данных используется язык SQL. SQL — это язык программирования, который очень напоминает английский, но предназначен для программ управления базами данных. SQL используется в каждом запросе в Access.

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

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

В этой статье

Что такое SQL?

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

На языке SQL описываются наборы данных, помогающие получать ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA).

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

Примечание: Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этой статье. Дополнительные сведения см. в статье Создание и изменение таблиц или индексов с помощью запроса определения данных.

Инструкции SELECT

Инструкция SELECT служит для описания набора данных на языке SQL. Она содержит полное описание набора данных, которые необходимо получить из базы данных, включая следующее:

таблицы, в которых содержатся данные;

связи между данными из разных источников;

поля или вычисления, на основе которых отбираются данные;

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

необходимость и способ сортировки.

Предложения SQL

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

Определяет поля, которые содержат нужные данные.

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

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

Определяет порядок сортировки результатов.

В инструкции SQL, которая содержит статистические функции, определяет поля, для которых в предложении SELECT не вычисляется сводное значение.

Только при наличии таких полей

В инструкции SQL, которая содержит статистические функции, определяет условия, применяемые к полям, для которых в предложении SELECT вычисляется сводное значение.

Термины SQL

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

Сопоставимая часть речи

Имя, используемое для идентификации объекта базы данных, например имя поля.

глагол или наречие

Ключевое слово, которое представляет действие или изменяет его.

Значение, которое не изменяется, например число или NULL.

Сочетание идентификаторов, операторов, констант и функций, предназначенное для вычисления одного значения.

Основные предложения SQL: SELECT, FROM и WHERE

Общий формат инструкций SQL:

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

Каждая инструкция SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL.

Пример в Access

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

1. Предложение SELECT

2. Предложение FROM

3. Предложение WHERE

Эту инструкцию SQL следует читать так: «Выбрать данные из полей «Адрес электронной почты» и «Компания» таблицы «Контакты», а именно те записи, в которых поле «Город» имеет значение «Ростов».

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

Предложение SELECT

SELECT [E-mail Address], Company

Читать еще:  Access vba циклы

Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора («[Адрес электронной почты]» и «Компания»).

Если идентификатор содержит пробелы или специальные знаки (например, «Адрес электронной почты»), он должен быть заключен в прямоугольные скобки.

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

В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM.

Предложение FROM

Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).

В предложении FROM не указываются поля для выборки.

Предложение WHERE

Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город=»Ростов»).

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

С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в следующих статьях:

Сортировка результатов: ORDER BY

Как и в Microsoft Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, вы также можете указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL.

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

Предположим, например, что результаты сначала нужно отсортировать по полю «Компания» в порядке убывания, а затем, если присутствуют записи с одинаковым значением поля «Компания», — отсортировать их по полю «Адрес электронной почты» в порядке возрастания. Предложение ORDER BY будет выглядеть следующим образом:

ORDER BY Company DESC, [E-mail Address]

Примечание: По умолчанию Access сортирует значения по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC.

Дополнительные сведения о предложении ORDER BY см. в статье Предложение ORDER BY.

Работа со сводными данными: предложения GROUP BY и HAVING

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

SELECT COUNT([E-mail Address]), Company

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

Задание полей, которые не используются в агрегатной функции: предложение GROUP BY

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

Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT.

Продолжим предыдущий пример. Пусть в предложении SELECT агрегатная функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом:

GROUP BY Company

Дополнительные сведения о предложении GROUP BY см. в статье Предложение GROUP BY.

Ограничение агрегированных значений с помощью условий группировки: предложение HAVING

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

Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение):

SELECT COUNT([E-mail Address]), Company

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

HAVING COUNT([E-mail Address])>1

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

Дополнительные сведения о предложении HAVING см. в статье Предложение HAVING.

Объединение результатов запроса: оператор UNION

Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора.

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

Примечание: В запросах на объединение числовой и текстовый типы данных являются совместимыми.

Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL.

Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис:

Предположим, например, что имеется две таблицы, которые называются «Товары» и «Услуги». Обе таблицы содержат поля с названием товара или услуги, ценой и сведениями о гарантии, а также поле, в котором указывается эксклюзивность предлагаемого товара или услуги. Несмотря на то, что в таблицах «Продукты» и «Услуги» предусмотрены разные типы гарантий, основная информация одна и та же (предоставляется ли на отдельные продукты или услуги гарантия качества). Для объединения четырех полей из двух таблиц можно использовать следующий запрос на объединение:

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

Использование языка SQL MS ACCESS;

Язык структурированных запросов (SQL) является стандартным средством для работы с базами данных. Может использоваться как для интерактивной работы с БД, так и включаться в языки программирования. В CУБД Access SQL позволяет:

· создавать, модифицировать или удалять таблицы в базе данных Access;

· создавать или удалять ключи, индексы для таблиц в базе данных Access;

· вставлять, удалять или модифицировать записи таблиц;

· получать сводную информацию о данных в таблицах (число записей, суммы, средние, минимальные, максимальные значения и др.);

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

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

SELECT список имен полей 1

FROM список имен таблиц

[WHERE условие]

[ORDER BY список имен полей 2]

[GROUP BY список имен полей 3]

SELECT, FROM, WHERE, ORDER BY, GROUP BY — ключевые слова;

список имен полей 1 набор имен полей, которые выбираются из одной или нескольких таблиц, указанных в списке имен таблиц, вычисляемых полей, агрегированных функций (например, count, sum, min, max, avg и т.д.). Для выбора всех полей из списка таблиц вместо перечисления их имен можно использовать символ «*». Если имя поля таблицы содержит пробел, т.е. состоит из нескольких слов, то это имя должно заключаться в квадратные скобки;

Читать еще:  Типы данных в ms access

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

Имена полей и таблиц нечувствительны к регистру клавиатуры и указываются в списках через запятую.

Все приведенные далее примеры основаны на использовании БД по библиографии, логическая структура которой приведена на рисунке 2.1.

Примеры:

SELECT * FROM Книга — выбор всех полей всех книг из таблицы «Книга» базы данных по библиографии.

SELECT Название, [Год издания] FROM Книга — выбор полей заголовков (Название ) и года издания (Год издания) всех книг из таблицы «Книга». Имя поля года издания указано в квадратных скобках (имеет пробел).

Таблица «Издательство» Таблица «Книга» Таблица «Автор»

Рис. 2.1. Структура и схема БД по библиографии

Для поиска информации, удовлетворяющей некоторому условию, в операторе SELECT используется раздел WHERE, который имеет следующий синтаксис:

SELECT список имен полей FROM список имен таблиц WHERE условие,

где условиеопределяет критерий поиска информации.

В условии используются имена полей, операции сравнения ( , >=, <>) и специальные операции сравнения IN, LIKE, BETWEЕN. Эти операции могут объединяться с помощью логических операций (And, Or) и задавать сложные условия поиска информации.

Примеры:

SELECT Название, [Год издания] FROM Книга

WHERE [Год издания] > 1991 определяет выбор названий книг, год выпуска которых позже 1991.

SELECT Фамилия, Имя FROM Автор

WHERE Фамилия = ”Иванов” определяет выбор полей имен и фамилий авторов из таблицы «Автор», фамилии которых совпадают с фамилией Иванов. Здесь символ “ используется для задания текстовых констант.

Операция IN сравнивает содержимое поля со списком заданных значений, определяющих критерий поиска информации.

Примеры:

SELECT Название, [Год издания] FROM Книга

WHERE [Год издания] IN (1995, 1996) определяет выбор названий и года издания книг, опубликованных в 1995 или в 1996 гг.

SELECT Фамилия, Имя, Город FROM Автор

WHERE Город IN (“Омск”, “Москва”, “Киев”) определяет выбор авторов, живущих в городах Омск, Москва или Киев.

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

Символами шаблона являются: *, ?, #. Символ * соответствует цепочке символов, ? — соответствует одному символу, # — соответствует одной цифре.

Примеры:

Р* — возможные результаты поиска рука, Роза.

КИ? — возможные результаты поиска кий, кит.

12345# — возможные результаты поиска 123455, 123457.

Список диапазона заключается в квадратные скобки, первый и последний символы диапазона отделяются дефисом (-). Диапазон задается в возрастающем порядке.

Примеры:

SELECT Фамилия, Имя, Отчество FROM Автор

WHERE Фамилия LIKE ‘И*’ определяет выбор авторов, фамилии которых начинаются с буквы И.

SELECT Фамилия FROM Автор WHERE Фамилия LIKE [A-K] определяет выбор авторов, фамилии которых начинаются с букв от А до К.

SELECT Название FROM Книга

WHERE Название LIKE “*база данных*” AND [Год издания] = 1996 определяет выбор названий книг, выпущенных в 1996 году и в названии которых присутствует фраза «база данных».

Операция BETWEEN проверяет принадлежность значения поля диапазону значений и является включающим значением (выбираются записи, содержащие поле со значением, равным границе диапазона). Границы значений объединяются операцией AND.

Примеры:

SELECT Название, [Год издания] FROM Книга

WHERE [Год издания] Between #01.01.1994# And #30.06.1994# определяет выбор книг, изданных в первой половине 1994 года. Здесь символ # используется для задания констант типа дата.

SELECT [Название издат], адрес, телефон FROM Издательство

WHERE [Название издат] Between ‘Нау’ And ‘Фин’ определяет выбор информации об издательских фирмах, начальные буквы названий которых, расположенные в алфавитном порядке, находятся в диапазоне между ‘Нау’ и ‘Фин’.

Для определения порядка, в котором представляются результаты поиска записей, используется раздел ORDER BY, синтаксис которого следующий:

SELECT список имен полей FROM список имен таблиц [WHERE условие] ORDER BY имя поля 1 [ASC | DESC][, имя поля 2[ASC | DESC]] ,

где имя поля1, имя поля2 поля (из списка имен полей), по которым производится упорядочение. Опция ASCустанавливает порядок сортировкипо возрастанию (данный порядок установлен по умолчанию), DESC устанавливает порядок сортировки по убыванию. Упорядочение может вестись по нескольким полям (например, по фамилии, а затем по имени)

Пример:

SELECT Название FROM Книга

WHERE Название LIKE “*база данных*” AND [Год издания] = 1996

ORDER BY Название определяет выбор названий книг, выпущенных в 1996 году и в названии которых присутствует фраза «база данных», и упорядочивает названия в алфавитном порядке.

Для группировки записей используется раздел GROUP BY, синтаксис которого следующий:

SELECT список имен полей FROM список имен таблиц [WHERE условие] GROUP BY имя поля 1 [, имя поля 2],

где имя поля1, имя поля2 поля (из списка имен полей), по которым производится группировка записей. Порядок следования полей в этом предложении определяет уровни их группировки. Группировку можно производить для выражений (например, вычисляемых полей), тогда в списке полей этому выражению должно быть присвоено какое-нибудь имя. Для агрегированных функций (count, sum, min, max, avg и т.д.) группировка обязательна.

Пример:

SELECT Фамилия, [Год издания], Sum (Цена) AS [Стоимость]

FROM Книга, Автор

WHERE Автор.[Код автора]= Книга.[Код автора]

GROUPBY Фамилия, [Год издания]

ORDER BY Фамилия, [Год издания] определяет суммарную цену (Стоимость) книг года издания для каждого автора.

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

SELECT список имен полей FROM список имен таблиц WHERE список связей,

где список связей определяет, как таблицы в списке имен таблиц связаны между собой. Например, имя_таблицы1.имя_поля1 = имя_таблицы2.имя_поля2.

Примеры:

SELECT Книга.Название, Издательство. [Название издат]

FROM Книга, Издательство

WHERE Книга. [Код издат]= Издательство. [Код издательства] And

Издательство. [Название издат]=”Наука”

Этот запрос определяет выбор названий книг (Название) из таблицы «Книга» и названий издательств (Название издат) из таблицы издательств (Издательство). Раздел WHERE осуществляет следующее:

· определяет связь между таблицами (выбирается название книги и номер издательства «Код издат» из таблицы «Книга», по номеру издательства «Код издательства» в таблице издательств «Издательство» находится название издательства);

· задает условие для выбора книг, изданных только в издательстве «Наука».

Запросы к бд access через C#

Запросы к бд access через C#
Здравствуйте уважаемые программисты. Столкнулась с такой проблемой: у меня имеется бд в access и.

Можно ли через PHP строить эффективные запросы с БД MS Access ?
Можно ли через PHP строить эффективные запросы с БД MS Access ? Через ASP ясно дело можно но если.

Как в Access объединить запросы в один или вывести эти запросы в одном отчете и рассчитать по ним коэффициент?
Добрый день! Помогите разобраться. Есть у меня 5 запросов access, которые через долгие.

Или воспользуйтесь поиском по форуму:

Получение значения поля :

А если совсем проще то так:
1 — в студии вкладка Данные->Добавить новый источник данных -> добавляешь свою базу пошагово
2 — слева во вкладке Источники данных выбираешь необходимы поля и перетаскиваешь их в как combobox(ы) на свою форму
3 — таким же образом перетаскиваешь и необходимые поля и целые таблицы с зависящей информацией.

если нужно подредактировать обращения к базе то в той же вкладе Источники данных сверху выберешь настройку а там уже впринципе только знания sql.

Читать еще:  Access count пример

😀
А какой язык как вы думаете использует access?)
И на каком языке вы тогда собрались писать запросы..

просто вы работаете с базой не зная, что такое sql — это достаточно забавно.

а по факту:
в комбобоксе в св-вах есть раздел Data — с помощью его напрямую можно тягать значения из бд
DataSource — источник данных(указывает на таблицу откуда берутся данные в combobox)
DisplayMember — поле которое выводится в combobox
ValueMember — значение которо возвращает SelectedValue(обычно ID элемента)

создаете грид, подк
дальше берете ID элемента, и делаете запрос какой вам надо и достаете данные и помещаете в DG
вот небольшой пример:

тут настраиваем наш грид:

грид заполняеся через DataAdapter?
если да

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

сделайте для примера выбор всех данных из таблицы вашей в грид, увидите там добавиться строка аля tbl_sessionTableAdapter.Fill(aNCHDataSet.tbl_session); — а вы сделайте свой, с параметром необходимым вам

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

Преподаватель сказал,что мне для этого нужно сделать проверку на то,что введено в combobox(е) а затем использовать select from.но дело в том,что я никогда с этим select from не работала,помогите пожалуйста хоть чем-нибудь.в и-нете нужную информацию найти не могу.

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

Я решила всё таки базу вручную подключать,вы мне код писали^. Я не понимаю куда его вставить надо. Объясните пожалуйста

Подключение Access к SQL Server

В главе 18 вы рассмотрели, как коллективно использовать вашу заслуживающую награды БД совместно с другими людьми. Для кого-то это блаженное состояние программы Access. Группы пользователей могут сотрудничать, бизнесмены — следить за ежедневным рабочим процессом и все трудятся с удовольствием ныне и присно. Для других многопользовательская поддержка БД — долгая головная боль, поскольку программа Access просто не в состоянии удовлетворить всех, кто хочет внести изменения в одно и то же время.

В этой главе вы познакомитесь с другим подходом, который позволяет преодолеть ограничения Access и совместно использовать ваши БД с гораздо более многочисленными груп­пами пользователей, у которых появится возможность существенно повысить интенсив­ность такого использования. Для этого нужно подключить программу Access к SQL Server, мощной серверной БД корпорации Microsoft. (Вернитесь к разд. «Access или SQL Sewer?» во введении, чтобы вспомнить разницу между серверными и клиентскими БД.)

Такое объединение обеспечит максимум возможностей. Вы сможете применять сверхна­дежный процессор БД (каковым является SQL Server) без отказа от удобного пользователь­ского интерфейса, облегчающего выполнение разнообразных задач (каковой является про­грамма Access). Самое замечательное заключается в том, что можно начать использование версии SQL Server, не потратив ни рубля.

Нужно ли переходить на SQL Server?

Как вы уже знаете, нет общего правила для определения, кто может успешно использовать многопользовательскую поддержку, а кто нет. Вы познакомились с предельными характе­ристиками — компания Fortune 500 с тысячами сотрудников, вероятно, не сможет исполь­зовать многопользовательскую поддержку Access, а команда со штатом 5 человек, занимаю­щаяся дизайном интерьера, не столкнется ни с какими проблемами — но для многих пользователей следует учитывать множество факторов.

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

Некоторые факторы находятся вне пределов досягаемости программы Access — например, медленная или ненадежная сеть компании — что может разрушить коллективное использова­ние БД. В разд. «Как действует многопользовательская поддержка в Access» главы 18 дано не­сколько важных признаков, позволяющих определить, когда многопользовательской

поддержки недостаточно. Однако если БД Access устанавливается для маленькой компании, воз­можно, следует самостоятельно протестировать режим коллективного использования БД.

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

Ваши корректировки часто перекрываются с чьими-то еще. В этой ситуации программа Access каждый раз запрашивает, как устранить конфликт (см. разд. «Обработка конфликтов редактирования» главы 18). Это самая распространенная проблема, и хотя она не разрушит вашу БД, конфликтующие корректировки могут привести к тому, что ваши изменения будут постоянно искажаться или стираться кем-то, одновременно с вами обращающимся к БД.

Вы не можете редактировать нужные вам записи. Эта проблема возникает, когда программа Access применяет блокировки (см. разд. «Применение блокировок для предотвращения наложения обновлений» главы 18) для предотвращения одновременных изменений. Блокировки позволяют Access избежать проблем наложения корректировок, но за это приходится платить. Вся остальная обработка, использующая заблокированную запись, полностью прерывается. И снова эта ситуация не очень опасна — как последствия от приема тройной дозы аспирина.

Данные повреждаются. Эта ситуация одновременно и не столь частая, и очень серьезная. Несмотря на редкость ее возникновения (она становится все реже с каждым выходом новой версии программы Access), иногда она все еще случается. Вы понимаете, что у вас появилась проблема, когда в поле оказываются искаженные данные или когда Access выводит нелепое сообщение об ошибке (например «Слишком много индексов» («Too many indexes»)) при попытке открыть объект БД. В разд. «Повреждение данных» главы 18 дается объяснение проблемы и несколько советов, как ее обезопасить.

Примечание

Порча данных может произойти не по вине программы Access. Например, если у некоего со­трудника пропало сетевое соединение в середине процесса сохранения изменения, Access мо­жет оставить БД с многопользовательской поддержкой в неопределенном или противоречивом состоянии. Единственный способ предотвращения подобных проблем — применение мощной программы управления БД, работающей на сервере, которая выполняет всю работу. (Именно эта идея лежит в основе SQL Server. Когда используется SQL Server, никто не изменяет БД не­посредственно. Вместо этого пользователи создают вежливые запросы к постоянно работаю­щему процессору БД SQL Server, который затем делает эту работу безопасным и контроли­руемым образом.)

Итак, что же делать, если выяснилось, что многопользовательская поддержка не дает нужных результатов? Самый лучший вариант — использовать мощную серверную про­грамму управления БД, как SQL Server. Применение SQL Server, несомненно, добавит сложностей (вы потратите больше времени на се установку и проверку и наладку ее рабо­ты), но она обеспечит нерушимую поддержку безопасного и эффективного совместного ис­пользования БД.

Как работает SQL Server

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector