![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.03.2009
Сообщений: 12
|
![]()
Сложилась такая ситуация: у меня имеется форма, на которой размещено множество едитов. После ввода данных (и кое-каких операций) нужно чтобы содержимое этих едитов сохранилось в БД Access. А после, при открытии этой формы, нужно загрузить в эти едиты значения из БД (в таком же порядке в котором они были первоначально).
Буду благодарен любой помощи! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
В onActive твоей формы пропиши примерно так:
Edit1.Text:=AdoQuery1.Fieldbyname(' PoleForEdit1').asString; и в таком духе до последнего едита. Или второй вариант создаешь специальное поле, например PoleForEdits и заносишь туда данные. AdoQuery1.Insert; AdoQuery1.fieldByName('PoleForEdits ').AsString:=Edit1.Text; AdoQuery1.Post; и так по порядку до Editn, а потом в цикле считываешь с самого первого поля до последнего и присваиваешь едитам. AdoQuery1.First; Edit1.text:=AdoQuery1.fieldbyName(' PoleForEdits').Asstring; AdoQuery1.Next; Это конечно если этих едитов не так много самый простой вариант... Третий вариант если едитов очень много то в цикле перечислить по названию компонента начиная с Edit + 1 до Edit +n...
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Проверил третий вариант, получился примерно такой код:
Код:
Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.03.2009
Сообщений: 12
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Почему не через Access?
Может имелось в виду подсоединить базу данных Access в Дельфи? Легче создать файл *.mdb (Access) и сделать там таблицы, а уже потом разместив компоненты в дельфи подсоединить данную таблицу через AdoConnection, например, в Adoquery прописать запрос, который учитывает данную таблицу... Или здесь какая то специфичная задача, которая требует физического создания таблицы прямо из дельфи? Уточните немного конкретнее...
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.03.2009
Сообщений: 12
|
![]()
Я наверно неправильно выразился... Файл БД Access (*.mdb) есть. Но там, к примеру, всего одна таблица. После, содержимое едитов сохраняется в ней. А при следующем открытии этой формы можно было вводить новые данные, которые уже сохранялись бы в новой таблице..
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Так вот в чем дело. Поначалу мне показалось, что содержимое едитов это какие то настройки для программы, которые являются уникальными. Оказывается это список вносимых данных. Тогда вариант первый:
создается в аксесс таблица, а в ней поля начиная с Edit1 до Editn и заносишь данные каждый раз внося новые данные в каждое поле. А вот насчет создания новой таблицы каждый раз, мне кажется база данных разрастется немеренно, да и не совсем правильно по логике, хотя если ты чуть чуть поподробнее напишешь для чего тебе столько едитов, и в чем суть программы, может удастся упростить логику построения программы.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 15.03.2009
Сообщений: 12
|
![]()
Может для кого-то эта программа и окажется проста... но я еще плохо разбираюсь в Delphi.
Суть программы заключается вот в чем: имеется форма, с несколькими вкладками. В каждой вкладке свой набор едитов (хотя думаю лучше будет использовать не вкладки, а отдельные формы). В общем, содержимое едитов будет распечатано на бланках (для каждой вкладке имеется свой бланк). Бланки здесь это определенные листки фирмы. Они заполняли их в ручную, поэтому эта программа должна помочь в заполнении. Поэтому каждый едит имеет свою координату чтоб в точности заполнить бланк. Для распечатки я едиты настроил - бланки нормально заполняются. Вот после заполнения этих едитов нужно сохранить как-нибудь, чтоб потом можно было востановить данные (например, чтоб можно было просмотреть эти данные через несколько дней, указав дату заполнения)... |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Тогда можно создать две таблицы 1. Дата добавления(поля Код, Дата) 2. Список едитов (Kod,IdDate, Edit1,...Editn).
Связать эти таблицы отношением один ко многим Дата добавления.Kod к Список едитов.IdDate После добавлять данные. Это в том случае, если в один день может быть заполнено несколько таких форм. Если дата уникальная каждый раз, то наверное создавать лишнию таблицу не надо просто сделать поле в Списке едитов и потом в запросе отфильтровать. Сохранять наверное лучше так Код:
Код:
По моемому по такому принципу можно построить программу. Если, конечно нет каких еще дополнительных условий. На первый взгляд находится такое решение задачи. Напиши про успехи или про непонятные моменты...
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 15.03.2009
Сообщений: 12
|
![]()
я, если честно, не понял как сделать.. таблицы access совсем непонятны
![]() ты не мог бы выложить пример из 5 едитов? буду очень признателен! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите в изучении БД Access | -HunteR- | БД в Delphi | 25 | 07.04.2009 02:03 |
Помогите с Access !!! | Drummer_SV | Помощь студентам | 0 | 03.06.2008 23:27 |
Помогите с Access! | Adm | Microsoft Office Access | 2 | 08.02.2008 08:38 |
Delphy и Access.вводя инфу во вторичный файл Access, она отражалась в первом ADOTable | Lev | БД в Delphi | 0 | 11.11.2007 12:14 |