Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/39: Рейтинг темы: голосов - 39, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
1

Delphi + Access редактирование и заполнение БД через TDBEdit

16.09.2013, 14:19. Показов 7031. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня!
Идея :
1) Есть БД в Access в которой есть поля "Должность", "Имя","фамилия","отчество" и.т.д. Все ячейки таблицы имеют формат Text.
2) Есть форма в Delphi, в которой через tado компоненты и элемент TDBGrid выводится вся таблица.
3) Требуется при двойном клике по строчке в первой форме открывать вторую форму, где будет элементы редактирования каждой ячейки строчки по-отдельности (вероятно TDBEdit) и при нажатии кнопки "Сохранить" все изменённые (или не изменённые) значения заносились в БД.
Проблемма:
По какой то, неведомой мне причине, при компиляции вылетает ошибка, котогая как я понимаю говорит о несовместимости типов ячеек (ячейки БД и TDBEdit). Подскажите, нет ли ошибки в плане реализации? (к каждой ячейки строчки привязывать отдельный элемент TDBEdit второй формы). Возможно я использую не тот компонент (TDBEdit не подходит для этого??)
Не работал с Delphi уже 4 года, возобновляю навыки с самоучителем. Если у кого то есть возможность поделиться кодом такой операции буду очень признателен.
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2013, 14:19
Ответы с готовыми решениями:

как создать запрос на заполнение в полей таблицы Access через delphi
как создать запрос на заполнение в полей таблицы Access через delphi, при помощи Editов

Заполнение и редактирование формы Microsoft Access из SQL Server
Коллеги, доброго времени суток! Вопрос в следующем. Создал форму в Microsoft Access, добавил...

Delphi,access. Поиск и редактирование
К примеру, дана таблица с такими полями user_id , user_name , user_fam. Подскажите, каким образом...

Заполнение из delphi связанной таблицы access
есть в базе три связанных таблицы дата с полем date связанна с таблицей склад где есть поле...

15
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
16.09.2013, 15:36 2
Покажите код который у вас сейчас есть (если такой имеется)
Цитата Сообщение от chindjer;5060971QUOTE
По какой то, неведомой мне причине, при компиляции вылетает ошибка, котогая как я понимаю говорит о несовместимости типов ячеек (ячейки БД и TDBEdit).
Покажите код ошибки (её скриншот например)
(TDBEdit не подходит для этого??)
Вполне подходит
1
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
16.09.2013, 16:07  [ТС] 3
К сожалению, смогу выложить код только через 3 часа. Очень надеюсь на помощь, поскольку на данный момент это основная проблема в реализации идеи.
Так же буду очень благодарен, если подскажете где есть хорошие уроки по работе в Delphi с Access (как сравнивать содержимое числовых и текстовых ячеек, как фильтровать столбцы по значению, как организовать мультивыбор из выпадающего списка). Во многих самоучителях имеются ошибки в коде, без которого мне чрезвычайно тяжело понять назначение того или иного оператора или функции.
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
16.09.2013, 19:59  [ТС] 4
Вот код собственно
Как должно быть :
1)форма sotrudniki загружает из БД таблицу с сотрудниками.
2)при двойном клике на строку, содержащую информацию о сотруднике (имя, отчество, дата рождения, и т п) открывается форма sotrudniki_red, в которой элементы TDBEdit должны содержать информацию о выбранном сотруднике (имя в TDBEdit "imya" ну и т п)
3) При необходимости, я исправляю данные, нажимаю кнопку и заношу изменения в БД.

Ошибку, к сожалению, уже не смогу точно воспроизвести, так как удалил всю процедуру.
Начало ошибки было: "access violation at address".
Как я понял, почему то программа воспринимала значение одного из полей как integer и не соглашается работать с полем "text" в Access ( это логично, но найти причину я так за пол ночи и не смог).
Помогите чем можете, или хоть подскажите где для подобных задач почитать учебник.
Спасибо.
Вложения
Тип файла: txt sotrudniki.txt (2.2 Кб, 63 просмотров)
Тип файла: txt sotrudniki_red.txt (1.5 Кб, 38 просмотров)
Тип файла: txt UnitDMsotrudniki.txt (1.2 Кб, 37 просмотров)
0
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
16.09.2013, 20:41 5
Вот посмотрите пример.., я не знаю как вы подключаете свою БД и таблицы, через ADOTable или ADOQuery
Если через ADOQuery то как то так
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
begin
With Form1.ADOQuery1 do begin
  Connection:=Form1.ADOConnection1;
  Insert;
  FieldByName('edit1').Value:=Form2.Edit1.Text;
  FieldByName('edit2').Value:=Form2.Edit2.Text;
  FieldByName('edit3').Value:=form2.Edit3.Text;
  Post;
end;
Вложения
Тип файла: rar Тест.rar (330.2 Кб, 207 просмотров)
1
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
17.09.2013, 00:12  [ТС] 6
Огромное спасибо!
Думаю это то что нужно.
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
22.09.2013, 18:57  [ТС] 7
Доброго дня!
Ошибка повторилась снова (скриншот во вложении).Пробовал делать по Вашему примеру из файла Тест.rar но она всё равно сохранилась. Решения не смог найти, даже не понял что означает данная ошибка.
Миниатюры
Delphi + Access редактирование и заполнение БД через TDBEdit  
0
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
23.09.2013, 14:19 8
chindjer, В какой момент события возникает эта ошибка, при запуске программы, при нажатии на какую либо кнопку?
Как вариант можно большие участки кода закомментировать на более мелкие, таким образом вы узнаете в каком именно участке кода возникает ошибка.
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
23.09.2013, 20:22  [ТС] 9
Программа вылетает когда на форме, содержащей TDBGrid со списком сотрудников я нажимаю на кнопку "новая запись" или "редактировать". На самой форме TDBGrid заполнен данными из таблицы, а вот когда я хочу перейти на форму редактирования/добавления строки в эту таблицу вылетает ошибка.
0
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
23.09.2013, 20:27 10
Выложите свой проект
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
23.09.2013, 20:41  [ТС] 11
Архив в приложении, начальная форма создана "про запас", проблема при нажатии :Справочники->сотрудники-> новая запись/редактировать
Вложения
Тип файла: rar KRUS.rar (611.4 Кб, 72 просмотров)
1
569 / 169 / 22
Регистрация: 18.10.2012
Сообщений: 912
23.09.2013, 22:43 12
Если честно, я ваш проект даже открыть не могу, куча ошибок вылезает .
Вы на каких делфях пишете?
Как вариант, я вам могу предложить сделать свой проект заново, т.е открыть старый проект и по аналогии делать новый, только периодически проверять его работоспособность.
А по поводу вашей ошибки вот http://www.gunsmoker.ru/2009/0... ation.html
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
23.09.2013, 22:57 13
Цитата Сообщение от chindjer Посмотреть сообщение
Архив в приложении
Вот не поверишь, у меня на диске F: нет папки \Project 3, а в ней - файла Kemppi.pas... Да и диска F: вообще нет. Я безнадежен? Или это ты забыл приложить ВСЕ необходимые файлы?
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
24.09.2013, 00:16  [ТС] 14
Возможно я и безнадёжен, но компонент TADO как я понимаю достаточно легко перенастроить, если указать путь к файлу БД, который является единственным в архиве, путь к файлу БД указывался без полного пути, причины, почему он ссылается на полный путь я так же не знаю. Когда я запускаю KRUS.exe, то у меня всё работает запланированным образом, за исключением описаной ранее ошибки, я допускаю что в проекте имеется большое количество других ошибок, которые я не заметил и не увидел. Я попробую написать всё заново, спасибо!

PS: пишу на Delphi 2010, и повторюсь,UI, я не являюсь опытным программистом и взялся восстанавливать немногочисленные навыки после 6 лет простоя, если вас раздражает возникшая у меня проблема, то врятли я смогу получить от вас помощь. duh_si, спасибо.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
24.09.2013, 00:36 15
Меня раздражает то, что ты выкладываешь проект, который невозможно открыть, потому что часть этого проекта хранится в других папках, которые ты прикрепить не соизволил. Внимание, вопрос: зачем ты выложил проект? Чтобы занять место на сервере? Чтобы занять пользователей скачиванием больше, чем полумегабайта ненужного хлама (а проект без заглавной формы иначе не назовешь)?
0
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 10
24.09.2013, 01:26  [ТС] 16
Спасибо. Ваша модерация мне непонятна :
1) Вы не в состоянии объяснить внятно свою претензию, поскольку я открываю проект, и у меня всё читается, и в архиве имеются определённо все файлы, которые создавались при написании кода. Диск F является флешкой, на которой хранился проект ( Вы же грамотный человек, не заметили присутствие лишь одного файла БД, на которую и может ссылаться проект, пусть и с ошибочным путём?)
2) Я не претендую на место на вашем сервере, в особенности если оно иссякает. (можете удалить файлы)
3) Раз вы, являясь модератором, считаете тему бесполезной - её стоит удалить, Однако заметьте, вы не только не предложили решения, вы опубликовали 2 абсолютно бесполезных (по факту) поста, которые так же заняли место.

duh_si, спасибо, я постараюсь найти решение по предоставленной вами ссылке или на других ресурсах.
0
24.09.2013, 01:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2013, 01:26
Помогаю со студенческими работами здесь

Редактирование строк через ADO (access)
Привет, есть DBGrid куда записываются данные из таблицы в бд (access) в DBGrid по строчное...

Редактирование записей БД Access через DataGridview
Как можно поместить таблицу Datagridview в Access, а затем если пользователь захочет открыть ее...

Редактирование СУБД Access через интерфейс C#
Задание: Создать интерфейс к Базе Данных Access через C#. И возникает такой вопрос: Как вставлять,...

Редактирование строк через ADOTable (access)
Нужно сделать Редактирование строк через ADOTable (access) с помощью edit, !!!! не с помощью...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru