marți, 9 februarie 2016

access как добавить строку

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

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

В качестве примера мы рассмотрим запрос, который будет выбирать из базы данных все заказы за 1996 год и переносить их в другую таблицу так, чтобы таблица "Заказы" (Orders) содержала только актуальные данные. Для этого сначала создадим таблицу, которая будет хранить устаревшие данные:

  1. Раскройте список таблиц в окне базы данных и выделите таблицу "Заказы" (Orders).
  2. Скопируйте таблицу в буфер обмена, нажав комбинацию клавиш <Ctrl>+<C>.
  3. Вставьте таблицу из буфера обмена, нажав комбинацию клавиш <Ctrl>+<V>. Появляется диалоговое окно Вставка таблицы (Paste Table As).
  4. В группе Параметры вставки (Paste Options) выберите переключатель Только структура (Structure Only).
  5. В поле имя таблицы (Table Name) введите строку: Заказы (архив). Нажмите кнопку ОК или клавишу <Enter>.

В списке появляется новая таблица, пока пустая, т. к. мы скопировали только структуру таблицы "Заказы" (Orders). Теперь создадим запрос на добавление, который позволит перенести в новую таблицу данные из таблицы "Заказы".

  1. Раскройте список таблиц в окне базы данных и выделите в нем таблицу "Заказы".
  2. Щелкните левой кнопкой мыши по стрелке на кнопке Новый объект (New Object) инструментальной панели и выберите из раскрывшегося списка элемент Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите значение Конструктор (Design View). Появляется окно Конструктора запроса с таблицей "Заказы" в верхней части.
  3. Сначала создайте запрос на выборку нужных записей. Перетащите из списка полей таблицы "Заказы" все поля в строку бланка запроса Поле (Field).
  4. В строке Условие отбора (Criteria) столбца "ДатаРазмещения" введите выражение Between 101.01.961 And 131.12.961
  5. Запустите запрос на выборку, чтобы проверить, правильно ли отобраны записи. Оказались отобранными 152 записи.
  6. Выберите команду Запрос, Добавление (Query, Append) или щелкните левой кнопкой мыши по стрелке на кнопке Тип запроса (Query Type) и выберите из списка элемент Добавление (Append Query). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 8.6).
  7. В поле имя таблицы (Table Name) необходимо выбрать из списка имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана таблица "Заказы (архив)", которую мы только что создали. Нажмите кнопку ОК. (Если бы таблица, в которую нужно добавить записи, находилась в другой базе данных, необходимо было бы выбрать переключатель в другой базе данных (Another Database) и затем в поле имя файла (File Name) указать имя файла MDB, который содержит требуемую таблицу.)

Рис. 8.6. Диалоговое окно Добавление

  1. В бланке запроса на добавление появляется дополнительная строка Добавление (Append To), содержащая названия полей таблицы, в которую добавляются записи (рис. 8.7). В данном случае названия полей запроса и названия полей таблицы совпадают, поэтому по умолчанию вся эта строка заполнена. Если имена полей не совпадают, необходимо выбрать из раскрывающегося списка в строке Добавление (Append To) имя поля результирующей таблицы, соответствующего полю в исходной таблице.
  2. Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, Access выдает сообщение о числе записей, которые предполагается добавить. Вы можете нажать кнопку Да (Yes), и только после этого записи будут добавлены. Если вы нажмете кнопку Нет (No), вставка записей будет отменена.

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

SQL-Урок 13. Добавление данных (INSERT INTO)

В предыдущих разделах мы рассматривали работу по получению данных с заранее созданных таблиц. Теперь пора разобрать, каким же образом мы можем создавать/удалять таблицы, добавлять новые записи и удалять старые. Для этих целей в SQL существуют такие операторы, как: CREATE - создает таблицу, ALTER - изменяет структуру таблицы, DROP - удаляет таблицу или поле, INSERT - добавляет данные в таблицу. Начнем знакомство с данной группой операторов из оператора INSERT.

1. Добавление целых строк

Как видно из названия, оператор INSERT используется для вставки (добавления) строк в таблицу базы данных. Добавление можно осуществить несколькими способами:
  • - добавить одну полную строку
  • - добавить часть строки
  • - добавить результаты запроса.

Итак, чтобы добавить новую строку в таблицу, нам необходимо указать название таблицы, перечислить названия колонок и указать значение для каждой колонки с помощью конструкции INSERT INTO название_таблицы (поле1, поле2. ) VALUES (значение1, значение2. ). Рассмотрим на примере.

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) VALUES ('6', '1st Street', 'Los Angeles', 'Harry Monroe', 'USA')

Также можно изменять порядок указания названий колонок, однако одновременно нужно менять и порядок значений в параметре VALUES.

2. Добавление части строк

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

INSERT INTO Sellers (ID, City, Seller_name) VALUES ('6', 'Los Angeles', 'Harry Monroe')

В данном примере мы не указали значение для двух столбцов Address и Country. Вы можете исключать некоторые столбцы из оператора INSERT INTO. если это позволяет производить определение таблицы. В этом случае должно соблюдаться одно из условий: этот столбец определен как допускающий значение NULL (отсутствие какого-либо значения) или в определение таблицы указанное значение по умолчанию. Это означает, что, если не указано никакое значение, будет использовано значение по умолчанию. Если вы пропускаете столбец таблицы, которая не допускает появления в своих строках значений NULL и не имеет значения, определенного для использования по умолчанию, СУБД выдаст сообщение об ошибке, и это строка не будет добавлена.

3. Добавление отобранных данных

В предыдущей примерах мы вставляли данные в таблицы, прописывая их вручную в запросе. Однако оператор INSERT INTO позволяет автоматизировать этот процесс, если мы хотим вставлять данные из другой таблицы. Для этого в SQL существует такая кострукция как INSERT INTO. SELECT. . Данная конструкция позволяет одновременно выбирать данные из одной таблицы, и вставить их в другую. Предположим мы имеем еще одну таблицу Sellers_EU с перечнем продавцов нашего товара в Европе и нам нужно их добавить в общую таблицу Sellers. Структура этих таблиц одинакова (то же количество колонок и те же их названия), однако другие данные. Для этого мы можем прописать следующий запрос:

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) SELECT ID, Address, City, Seller_name, Country FROM Sellers_EU

Нужно обратить внимание, чтобы значение внутренних ключей не повторялись (поле ID ), в противном случае произойдет ошибка. Оператор SELECT также может включать предложения WHERE для фильтрации данных. Также следует отметить, что СУБД не обращает внимания на названия колонок, которые содержатся в операторе SELECT. для нее важно только порядок их расположения. Поэтому данные в первом указанном столбце, что были выбраны из-за SELECT. будут в любом случае заполнены в первый столбец таблицы Sellers. указанной после оператора INSERT INTO. независимо от названия поля.

4. Копирование данных из одной таблицы в другую

Часто при работе с базами данных возникает необходимость в создании копий любых таблиц, с целью резервирования или модификации. Чтобы сделать полную копию таблицы в SQL предусмотрен отдельный оператор SELECT INTO. Например, нам нужно создать копию таблицы Sellers. нужно будет прописать запрос следующим образом:

SELECT * INTO Sellers_new FROM Sellers

В отличие от предыдущей конструкции INSERT INTO. SELECT. . когда данные добавляются в существующую таблицу, конструкция SELECT. INTO. FROM. копирует данные в новую таблицу. Также можно сказать, что первая конструкция импортирует данные, а вторая - экспортирует. При использовании конструкции SELECT. INTO. FROM. следует учитывать следующее:
  • - можно использовать любые предложения в операторе SELECT. такие как GROUP BY и HAVING
  • - для добавления данных из нескольких таблиц можно использовать объединение
  • - данные возможно добавить только одну таблицу, независимо от того, из скольких таблиц они были взяты.

Проблема с Добавлением строки в БД Access

15 мая 2007 года

Сразу скажу, что в SQL я вообще не разбираюсь, но необходимость написания курсовой работы, в которой необходимо создать базу в access'e и связать её с Delphi вынудела меня потратить бесчисленные часы в поисках ответа на вопрос.

У меня есть база данных Access'а (*.mdb), а в ней таблица Login. Мне необхимо через Delphi добавить в неё строку со значениями, которые юзер введет в едитах.

datamodule2.ADOQuery1.SQL.Clear;

datamodule2.ADOQuery1.SQL.Text:= 'insert into Login (Key1, Surname, Name, Password, Status, Telephone, E-mail, City, Adress) Values (:Key1. Surname. Name. Password. Status. Telephone. E-mail. City. Adress)';

datamodule2.ADOQuery1.Parameters.ParamByName('Key1').Value :=kol+1;

datamodule2.ADOQuery1.Parameters.ParamByName('Surname').Value :=edit3.text;

datamodule2.ADOQuery1.Parameters.ParamByName('Name').Value :=edit1.text;

datamodule2.ADOQuery1.Parameters.ParamByName('Password').Value :=edit2.text;

datamodule2.ADOQuery1.Parameters.ParamByName('Status').Value :='2';

datamodule2.ADOQuery1.Parameters.ParamByName('Telephone').Value :=edit6.text;

datamodule2.ADOQuery1.Parameters.ParamByName('E-mail').Value :=edit4.text;

datamodule2.ADOQuery1.Parameters.ParamByName('City').Value :=edit5.text;

datamodule2.ADOQuery1.Parameters.ParamByName('Adress').Value :=edit7.text;

В ответ на это Delphi ругается: "Ошибка синтаксиса в инструкции Instert INTO". Я добавил двойные кавычки к названию моей таблицы. insert into "Login" (Key1. но и после этого Delphi ругаться не перестал и пишет: "Синтаксическая ошибка в запросе. Неполное предложение запроса".

В чем ошибка и как её исправить? Заранее спасибо.

ADO.net. добавить строку в таблицу в базе Access

Сообщения: 25 Зарегистрирован: 13.11.2007 (Вт) 14:56 Откуда: Ростов-на-Дону
    ICQ

ADO.net. добавить строку в таблицу в базе Access

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

Проблема в следующем:

Хочу тупо добавить строчку в таблицу БД (база в Access'е). Соответственно, пишу следующий код:

Код: Выделить всё ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Baza.mdb"

Dim cb As OleDb.OleDbCommand

Dim dogovorDa As OleDb.OleDbDataAdapter

ds = New DataSet

dogovorDt = New DataTable("Договоры")

dogovorDa = New Data.OleDb.OleDbDataAdapter("SELECT * FROM Договоры", cn)

dogovorDa.FillSchema(dogovorDt, SchemaType.Source)

dogovorDa.Fill(dogovorDt)

ds.Tables.Add(dogovorDt)

cb = New OleDb.OleDbCommand()

cb.ExecuteNonQuery()

Niciun comentariu:

Trimiteți un comentariu