powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как программно переключить DBEdit от 1го источника данных к другому
4 сообщений из 4, страница 1 из 1
как программно переключить DBEdit от 1го источника данных к другому
    #32224624
Andrey_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В DataModule1 содержатся:
Table1 -> DataSource1;
Table2 -> DataSource2;
Table3 -> DataSource3;
На Form1:
DBGrid1,DBGrid2, DBGrid3, DBEdit1, DBEdit2, DBNavigator1
Нужно чтобы
при получении фокуса DBGrid1, DBEdit1, DBEdit2 получали данные из DataSource1;
при получении фокуса DBGrid2, DBEdit1, DBEdit2 получали данные из DataSource2;
при получении фокуса DBGrid3, DBEdit1, DBEdit2 получали данные из DataSource3;

Для этого пишу следующий код и вешаю на OnEnter

procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource1;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource1;
DataField:='Color'; //имя поля1 таблицы1
end;
with DBEdit2 do
begin
Datasource:=DataModule1.DataSource1;
DataField:='Description' //имя поля2 таблицы1
end;
end;

procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource2;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource2;
DataField:='Defect'; //имя поля1 таблицы2
end;
with DBEdit2 do
begin
DataSource:=Datamodule1.DataSource2;
DataField:='Description'; //имя поля2 таблицы2
end;
end;

procedure TForm1.DBGrid3Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=Datamodule1.DataSource3;
with DBEdit1 do
begin
DataSource:=Datamodule1.DataSource3;
DataField:='Model'; //имя поля1 таблицы3
end;
with DBEdit2 do
begin
DataSource:=Datamodule1.DataSource3;
DataField:='Description'; //имя поля2 таблицы3
end;
end;

но при переключении между гридами выдает следующее сообщение

---------------------------
Debugger Exception Notification
---------------------------
Project ProjectExample.exe raised exception class EDatabaseError with message 'DBEdit1: Field 'Color' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
...
Рейтинг: 0 / 0
как программно переключить DBEdit от 1го источника данных к другому
    #32224680
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй
Код: plaintext
1.
2.
3.
4.
begin 
DataSource:=nil; 
DataField:='Color'; //имя поля1 таблицы1 
DataSource:=Datamodule1.DataSource1; 
end;

или что-нибудь в этом духе...
...
Рейтинг: 0 / 0
как программно переключить DBEdit от 1го источника данных к другому
    #32224987
Andrey_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
begin
DataSource:=nil;
DataField:='Color'; //имя поля1 таблицы1
DataSource:=Datamodule1.DataSource1;
end;


у меня не получилось, но сработало
begin
DataField:='';
DataField:='Color'; //имя поля1 таблицы1
DataSource:=Datamodule1.DataSource1;
end;
...
Рейтинг: 0 / 0
как программно переключить DBEdit от 1го источника данных к другому
    #32245313
Stolper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не представляю как это может работать
Правильно
DBEdit1.DataField:='';
{Если без этого то DBEdit1.DataField имеет старое значение и после следущей таблице
такого поля может не быть. Вот вам и Field 'Зозо' not found'.}
DBEdit1.DataSource:=Datamodule1.NevDataSource1{Вот теперь меняем}
DBEdit1.DataField:='NevString';{И связываем с новым полем}
end;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как программно переключить DBEdit от 1го источника данных к другому
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]