Delphi-Help

Главная Статьи Access Работа с выделенными записями в таблицах Access

Работа с выделенными записями в таблицах Access

Оцените материал
(0 голосов)


Работа с выделенными записями в таблицах СУБД

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

Так давайте тогда и приступим к рассмотрению данного вопроса. Самый простой способ, есть конечно и не один, но я расскажу два простых способа. Давайте создадим для начала какую-нибудь БД и в ней создадим таблицу, СУБД можно выбрать любую, так как данный метод будет работать почти со всеми СУБД, которые будут использовать технологию ADO для подключения, да и BDE, тоже должно работать. Я выбрал СУБД MS Access.

Далее создал БД, в ней таблицу под именем Student, следующей структуры:

1

После этого сохраняем нашу БД и создаем проект в Delphi. На форму устанавливаем следующие компоненты:

· TADOQuery

· TADOConnection

· TDBGrid

· TDataSource

· TButton

Далее делаем подключение к нашей БД. После этого, как у нас всего готова, необходимо сделать настройки некоторых компонентов, а это – TDBGrid. А точнее, нам необходимо установить свойство, чтобы можно было выделять несколько записей, которые отображаются в TDBGrid. Для этого выделяем компонент TDBGrid и в свойстве Options-dgMultiSelect (в более ранних версиях Delphi, возможно будет goMultiSelect) устанавливаем его в True. Теперь записи можно выделять, при нажатии клавиш Ctrl и/или Shift.

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

procedure TForm1.btn1Click(Sender: TObject);
var
 I:Integer;
begin
   try
    qry1.First;
     for I := 0 to dbgrd1.SelectedRows.Count-1 do
       begin
         qry1.Bookmark:=dbgrd1.SelectedRows[i];
         ShowMessage(qry1.FieldByName('FIO').AsVariant);
       end;
   finally
    //-//-//-//-//-//-//-//-//
   end;
end;

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

procedure TForm1.btn1Click(Sender: TObject);
var
 I:Integer;
begin
   try
    qry1.First;
     for I := 0 to dbgrd1.SelectedRows.Count-1 do
       begin
         qry1.GotoBookmark(dbgrd1.SelectedRows[i]);
         ShowMessage(qry1.FieldByName('FIO').AsVariant);
       end;
   finally
    //-//-//-//-//-//-//-//-//
   end;
end;

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

Ну и сразу отвечу на второй вопрос, цитата:

acces су поставил пароль но Microsoft jet 4.0 не хочет подключится

подробно объясните, пожалуйста и программно как можно обращаться с ним

Что касается установки пароля на БД MS Access, то его можно установить, как программно, так и при помощи MS Access. Устанавливаете пароль в MS Access, свойство компонента TADOConnection - LoginPromt устанавливаем в False, при этом в свойство Mode должно быть установлено в ReadWrite, так как БД, должна открываться в монопольном режиме, пароль можно также передавать и своим диалоговым окном в свойство ConnectionString компонента TADOConnection. Внимательно просмотрите строку подключения ConnectionString и само диалоговое окно подключения, Вы сами все поймете, куда и как вводить пароль.

Прочитано 6911 раз

Авторизация



Счетчики