Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.226.222.183] |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
АКСЕСС/АДО
база+проект прилагаются Есть 3 таблицы. Их структура: Таблица Организации Id_organizacii (счетчик) Nazvanie_organizacii (текстовый) Таблица Состав организации Id_organizacii (числовой) Id_sostava (счетчик) Name (текстовый) Surname (текстовый) Таблица Данные о составе id_data (счетчик) Id_sostava (числовой) Telefon Таблицы Организации и Состав организации связаны по полю Id_organizacii как 1 ко многим, а таблица Состав организации связаны с таблицей Данные о составе по полю Id_sostava На форме у меня есть такая структура отображающая связь таблиц В DBLookupComboBox1 у меня отображается Названия организаций (берет данные из таблицы Организации). Выбрав из списка DBLookupComboBox1 название организации (к примеру ФСБ) чуть ниже у меня отображается в DBGrid1 состав данной организации. В ADOTable2 свойстве MasterSource у меня прописанDataSource1 а в свойстве MasterFields у меня прописан Id_organizacii. Связь по такому же принципу у меня и между данными из DBGrid1 и DBGrid2(в нем отображаются записи из таблицы Данные о составе) - т.е. в ADOTable3 в свойстве MasterSource у меня прописанDataSource2 а в свойстве MasterFields у меня прописан Id_sostava. Есть на этой же форме кнопки Добавить запись в Таблицу Организации, Добавить запись в Таблицу Состав организации и Добавить запись в Таблицу Данные о составе При нажатии на эти кнопки появляются соответствующие формы в которых есть Edit1(вопрос: а может использовать DBEdit1) для вписания в него новой записи в соответствющие таблицы. А также кнопки изменить записи Как заносить данные вписанные в Edit1 в соответствующий DBLookupComboBox1 или DBGrid'ы И как мне при нажатии кнопки Изменить открывать соответствующую формы в которой в Edit1 будет редактировать выделенная в DBLookupComboBox1 или DBGrid'ах запись и сохраняться изменения Прикреплённый файл123.rar (29.12 Кбайт, скачиваний: 113) |
Сообщ.
#2
,
|
|
|
В DBLookupComboBox1 и DBGrid'ы ничего заносить не надо! они ведь ОТОБРАЖАЮТ данные, хранящиеся в таблице БД => тебе нужно заносить данные в соответствующую таблицу Access.
Table1.Append; //или Table1.Edit если изменение Table1.FieldByName('Name').Value:=Edit1.Text; Table1.Post; До открытия соответствуюшей формы присваиваешь значение в Edit1: Form1.Edit1.Text:=Table1.Fields.Fields[1].AsString; Form1.Show; |
Сообщ.
#3
,
|
|
|
ADOTable.Edit; ADOTable.FieldByName('Name').AsValue := Edit1.Text; ADOTable.FieldByName('Surname').AsValue := Edit2.Text; ADOTable.Post; либо можешь в самом гриде редактировать данные или использовать DBNavigator |
Сообщ.
#4
,
|
|
|
щас буду пробовать
|
Сообщ.
#5
,
|
|
|
Спасибо - все получилось.
Возник вопрос: в форме добавления Организации после нажатия кнопки ОК (добавляет запись в Организации) На кнопке я дописываю нижележащий код, чтобы добавленная организация появилась сразу в DBlookupcombobox1 и была видна form1.DBlookupcombobox1.KeyValue:=form1.ADOTable1Id_organizacii.Value; Но если я это пишу на Редактирование Организации, то нажав на кнопку отредактировать запись изменяется а в DBlookupcombobox1 остается старый вариант и приходится сначала выбрать из DBlookupcombobox1 какую-нить другую организацию чтобы потом можно было в DBlookupcombobox1 выбрать отредактированную запись. И как при запуске программы чтобы в DBlookupcombobox1 уже была выбрана 1-ая запись из списка (т.е. чтобы DBlookupcombobox1 первоначально не был пуст) |
Сообщ.
#6
,
|
|
|
Чтобы выбиралась первая запись:
DBlookupСombobox1.ItemIndex:=0; tmp:=DBlookupСombobox1.ItemIndex; //этот DBlookupСombobox1.ItemIndex:=0; // код DBlookupСombobox1.ItemIndex:=tmp; //я не проверял А вообще я использую обычные компоненты с вкладки Standart, а то эти DB компоненты сложно контролировать (не знаю насколько это правильно!.. ) |
Сообщ.
#7
,
|
|
|
а разве у DBlookupСombobox есть свойство ItemIndex???
пишет ошибку Цитата [Error] Unit.pas(165): Undeclared identifier: 'ItemIndex' |
Сообщ.
#8
,
|
|
|
Упс... Это у DBСombobox есть... Должно и DBlookupСombobox что-то похожее быть...
Добавлено Точно не могу сказать, но свойство ListFieldIndex не подходит в замену ItemIndex? |
Сообщ.
#9
,
|
|
|
Чтобы выбиралась первая запись я сделал так:
DBLookupComboBox1.KeyValue:=1; теперь осталось только Цитата кент @ Но если я это пишу на Редактирование Организации, то нажав на кнопку отредактировать запись изменяется а в DBlookupcombobox1 остается старый вариант и приходится сначала выбрать из DBlookupcombobox1 какую-нить другую организацию чтобы потом можно было в DBlookupcombobox1 выбрать отредактированную запись. щас попробую по этой технологии Цитата Creat!ve @ tmp:=DBlookupСombobox1.ItemIndex; //этот DBlookupСombobox1.ItemIndex:=0; // код DBlookupСombobox1.ItemIndex:=tmp; //я не проверял |
Сообщ.
#10
,
|
|
|
Если что подожди кого-нибудь из более опытных! Сегодня выходной, они, наверное, все спят еще ...
|
Сообщ.
#11
,
|
|
|
temp:=mainform.DBLookupComboBox1.KeyValue; form1.DBLookupComboBox1.KeyValue:=0; form1.DBLookupComboBox1.KeyValue:=temp; сработало |
Сообщ.
#12
,
|
|
|
Есть в БД таблица с типом поля Memo(ведь в нем можно хранить картинки???). И я хочу добавить в него какую-нибудь картинку
Для начала я открываю диалоговое окно для добавления картинки ... If OpenDialog1.Execute then ... а как дальше его добавлять в поле Kartinka??? |
Сообщ.
#13
,
|
|
|
Memo хранит Lengthy text or combinations of text and numbers (длинный текст или комбинации текста и чисел)...
А вот OLE Object может хранить объект (such as a Microsoft Excel spreadsheet, a Microsoft Word document, graphics, sounds, or other binary data), наверное, может хранить и картинки, а как их туда сохранять... мне тоже стало интересно! |
Сообщ.
#14
,
|
|
|
Creat!ve
кент графические и мультимедийные данные (и не только) храняться в BLOB-field (блоб-полях)... записать в них данные и прочитать их оттуда можно так Table.Edit; Table.SaveToBlobField('Graphics.bmp'); Table.Post; Table.LoadFromBlobField('Graphics.bmp'); |
Сообщ.
#15
,
|
|
|
dron-s,
пишу вот так form1.AdoTable3.Append; form1.AdoTable3.FieldByName('Picture').SaveToBlobField('Graphics.bmp'); form1.AdoTable3.Post; ругается на SaveToBlobField - типа нет такого свойства у поля Picture тип OLE Object |