Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 12
MS Access

как перенести данные?

22.05.2014, 15:56. Показов 4011. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам




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

Сейчас дошел до момента выдачи книг пользователям, на первой картинке я показал форму пользователей, там есть дбгрид а в ней немного данных.
Так вот, нужно перенести фамилию, имя, отчество на вторую форму(вторая картинка)т.е в комбобоксе будут фамилии(когда нажимаю на выпадающий список), после выбора фамилии, остальные данные(имя, отчество) будут автоматически перенесены в edit1, edit2 соответственно.

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

Меня ИНТЕРЕСУЕТ на данный момент первый шаг, т.е свзяь первой таблицы пользователи с комбибоксом и едитами.
Как можно это реализвать?Даже мыслей нету(хотя может с sql побаловаться) уже 3 ий час бьюсь над этим вопросом, результатов нет((
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2014, 15:56
Ответы с готовыми решениями:

Как перенести данные из DBGrid
Привет. Мне надо перенести данные из одной базы данных в другую. Я выбираю данные которые надо перенести и вывожу их в DBGrid. Вот...

Как перенести данные из ADOQuery в ComboBox
Хочу чтобы в ComboBox отобржался список пользователей который получаем при помощи запроса в ADOQuery из таблицы БД. Как это сделать...

Как перенести данные из dbgrid нужной строки в tedit
Есть таблица dbgrid данные входят с бд msaccess используя компоненты ADOConnection DataSource ADOQuery id имя фамилия ...

9
3 / 3 / 3
Регистрация: 14.03.2014
Сообщений: 18
22.05.2014, 17:59
Не специалист, но помогу чем смогу)
данная процедура заполняет комбобокс фамилиями.

Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.FormShow(Sender: TObject);
begin
ADOQuery1.First;
ComboBox1.Items.Clear;
while not ADOQuery1.Eof do begin
   ComboBox1.Items.Add(ADOQuery1.FieldByName('НазваниеКолонкиИзКоторойНужноЗанестиДанныеВКомобокс').AsString);
   ADOQuery1.Next;
end;
end;
Добавление в БД происходит следующим образом. Допустим при нажатии на кнопку "Добавить"
Delphi
1
2
3
4
5
6
7
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ADOQuery1.Insert;
  ADOQuery1.FieldByName('НазваниеКолонкиВКоторуююНужноДобавитьЗапись').AsString:=Edit1.Text;
  ADOQuery1.Post; //Сохранение в БД
  Edit1.Text:='';
 end;
Данная процедура позволяет прокручивать БД с помощью колесика мышки, если БД будет объёмная.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm3.MouseWheelHandler(var Message: TMessage);
var  
p:TPoint;
begin
GetCursorPos(p);
If WindowFromPoint(p)=DBGrid1.Handle then
begin
  If Message.WParam<0
 then
  DBGrid1.Perform(WM_VSCROLL, SB_LINEDOWN, 0) 
 else
  DBGrid1.Perform(WM_VSCROLL, SB_LINEUP, 0);
end;
end;
Чтобы она заработала нужно добавить в type:
Delphi
1
2
3
4
type
TForm1 = class(Tform)
procedure MouseWheelHandler(var Message: TMessage); override;
 ...
Очищает всю базу данных
Delphi
1
2
3
4
5
6
7
try
    DBGrid1.DataSource.DataSet.First;
    while not DBGrid1.DataSource.DataSet.Eof
    do DBGrid1.DataSource.DataSet.Delete;
    finally
    DBGrid1.DataSource.DataSet.EnableControls;
  end;
Отобразить Таблицу с книгами при нажатии на кнопку можно так
Delphi
1
2
3
4
5
6
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='SELECT Книги From НазваниеТаблицы ';
ADOQuery1.open;
end;

Как отобразить в эдитах имя и отчество при выборе фамилии в комбобоксе - не в курсе) но если будут еще какие вопросы - пиши, постараюсь помочь
0
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 12
23.05.2014, 10:57  [ТС]
Delphi
1
2
3
4
5
ADOQuery1.First;
DBLookupComboBox1.Items.Clear;
while not ADOQuery1.Eof do begin
   DBLookupComboBox1.Items.Add(ADOQuery1.FieldByName('famp').AsString);
   ADOQuery1.Next;
Ругается на Items
DBLookupComboBox1.Items.Clear;
0
3 / 3 / 3
Регистрация: 14.03.2014
Сообщений: 18
23.05.2014, 12:18
В "DBLookUpComboBox" достаточно правильно указать KeyField, DataSource, ListSource и ListField
0
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 12
23.05.2014, 12:27  [ТС]
В том то и дел, что всё заполнено( Да, фамилии он выдаёт в расскрывающемся списке. но после выбора фамилии вылетает.Вот код:

Delphi
1
2
3
pol:=ADOQuery1.FieldValues['famp'];
dbedit1.Text:=ADOQuery1.FieldValues['imp'];
dbedit2.Text:=ADOQuery1.FieldValues['ot4p'];
т.е создал в var переменную pol(integer).

в listsours и keyfield указал нужные ссылки. при запуске программы выдает дает возможность выбрать фамилии (в выпадающем списке), но после выбора виснет с ошибкой
"project project1.exe" raised exception class edatabaseerror with message 'adoquery1:field 'famp' not found'
0
3 / 3 / 3
Регистрация: 14.03.2014
Сообщений: 18
23.05.2014, 14:14
А где используется переменная pol?
это единственная строчка где она есть?

Я изменив строки KeyField, ListSource и ListField получаю выбранную строки без ошибок
Миниатюры
как  перенести данные?  
0
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 12
23.05.2014, 15:04  [ТС]
Да!Pol есть только в var

Добавлено через 8 минут
Вообщем отпишу, что сделал на данный момент.
Вот код:
Delphi
1
2
3
pol:=ADOquery1.FieldValues['Kod'];
dbEdit1.Text:=ADOquery1.FieldByName('imap').AsString;
dbEdit2.Text:=ADOquery1.FieldByName('ot4p').AsString;
В keyfield DBLookupComboBox1 выбрал "Kod" (ключевой элемент таблицы)
В listfield DBLookupComboBox1 выбрал "famp" (откуда будут браться значения для выпадающего списка)
В listsource выбрал Form4.DataSource1 (т.е где таблица пользователи)

В datasource и datafield ничего не прописовал т.к вылетает.

При запуске программы в DBLookupComboBox1 выбираю фамилию, в edit меняется Имя и Отчество(как мне и надо)
Но!Увы, уже через секунду вылетает с ошибкой "project project1.exe" raised exception class edatabaseerror with message 'adoquery1:field 'famp' not found'
и всё, надо закрывать программу.

Добавлено через 32 минуты
Вообщем вот как выкрутился.
Код убрал в DBLookupComboBox1 полностью.
В DBedit выбрал соответственно (imap,ot4p)

В keyfield DBLookupComboBox1 выбрал "Kod" (ключевой элемент таблицы)
В listfield DBLookupComboBox1 выбрал "famp" (откуда будут браться значения для выпадающего списка)
В listsource выбрал Form4.DataSource1 (т.е где таблица пользователи)

на форму (выдача книг) бросил adoquery и datasource.
в sql adoquery прописал SELECT * FROM pol3ovateli и соеденил connection с первой формой.
при запуске программы выбираю в раскрывающемся списке фамилию, в dbedit-ах меняется имя и отчество.Только вот смогу ли я в будующем эти данные перенести в дбгрид?
0
3 / 3 / 3
Регистрация: 14.03.2014
Сообщений: 18
23.05.2014, 15:30
Лучший ответ Сообщение было отмечено Посол_вон как решение

Решение

Добавление в БД происходит следующим образом. Допустим при нажатии на кнопку "Добавить"
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ADOQuery1.Insert;
  ADOQuery1.FieldByName('imap').AsString:=DBEdit1.Text; //Добавит содержимое DBedit1 в колонку imap
  ADOQuery1.FieldByName('ot4p').AsString:=DBEdit2.Text; //Добавит содержимое DBedit2 в колонку ot4p
  ADOQuery1.Post; //Сохранение в БД
  DBEdit1.Text:='';
  DBEdit2.Text:='';
 end;
0
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 12
23.05.2014, 15:33  [ТС]
InterA спс большое за Вашу помощь, сейчас разберусь с книгами, календарём и попробую ваш метод подключения(ориентировочно уже завтра).

Кстате, забыл спросить , мне нужно в аксессе новую таблицу создать? c полями famp, ot4p,imap и т.д?
0
3 / 3 / 3
Регистрация: 14.03.2014
Сообщений: 18
23.05.2014, 16:08
К сожалению, я не уверен что смогу ответить вам наверняка по данному вопросу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2014, 16:08
Помогаю со студенческими работами здесь

Перенести данные из файла в DBGrid
Надо перенести данные из .exp в dbgrid или в access чтобы он отображался в dbgrid'e. Срочно нужно помощь. Сам файл выглядит так: ...

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

Перенести все данные одной таблицы в другую
как правильно построить запрос на перенос всех данных из таблица1 в таблица2 и очистить таблицу1 сохранив структуру её полей? ...

По нажатию кнопки перенести данные в другую таблицу
Имеется форма с двумя таблицами DBGRID(использовала ACCESS). Как по нажатию на кнопку перенести выделенную запись с одной таблицы на...

Как определить редактировались ли данные? Как редактировать данные через DBEditEh
Доброго времени суток! Снова требуется ваш совет. Пишу программу, через которую пользователь будет редактировать реквизиты по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru