Topic: скрипт + combobox

Добрый день!
пользователь/пароль admin/admin
Помогите, что то не пойму! на форме Frm_ob есть комбобокс который открывает таблицу db_pacient и есть еще 2 комбобокса которые заполняются из таблицы db_pacient поля uch и kat_lg с помощью этого скрипта

procedure Frm_ob_ComboBox1_OnChange (Sender: TObject);
begin
    Frm_ob.ComboBox7.dbItemID:=Frm_ob.ComboBox1.dbItemID;
    Frm_ob.ComboBox8.dbItemID:=Frm_ob.ComboBox1.dbItemID;

end;

и получается что скрипт отрабатывает не всегда, т.е. данные в  Frm_ob.ComboBox7 и  Frm_ob.ComboBox8 не подтягиваются.
после удаления базы и заполнения справочника несколько записей все ок и затем снова комбобоксы не заполняются

Post's attachments

Attachment icon обращения.rar 346.34 kb, 289 downloads since 2018-12-21 

Re: скрипт + combobox

скрины

Post's attachments

Attachment icon 1.jpg 227.32 kb, 199 downloads since 2018-12-21 

Re: скрипт + combobox

скрин

Post's attachments

Attachment icon 2.jpg 229.14 kb, 176 downloads since 2018-12-21 

4 (edited by sibprogsistem 2018-12-21 08:45:52)

Re: скрипт + combobox

не могу разобраться в связях ваших таблиц, чго-то голова сегодня не варит..
но насколько я понял ваш вопрос , то эти таблицы должны быть связаны тогда скрипт должен выглядить  примерно так

procedure Frm_ob_ComboBox1_OnChange (Sender: TObject);
begin
    Frm_ob.ComboBox7.dbItemID:= SQLExecute( SELECT имя поля FROM имя таблицы LEFT OUTER JOIN  имя таблицы ON тиблица.id= таблица.id_поле WHERE таблица.id=' + Frm_ob.ComboBox1.value);
 end;

взять значение поля из двух таблиц  объедененых по условию где id поля равен id Frm_ob.ComboBox1

Re: скрипт + combobox

Вы пытаетесь присвоить комбобоксам идентификатор записи, который никак не связан с другими записями. Так можно делать, когда у комбобоксов используется одна и таже таблица в качестве источника записей, но в вашем случае не так.


ComboBox1 - показывает записи из таблицы db_pacient
ComboBox7 - db_lg
ComboBox8 - db_uch

Dmitry.

Re: скрипт + combobox

DriveSoft wrote:

Вы пытаетесь присвоить комбобоксам идентификатор записи, который никак не связан с другими записями. Так можно делать, когда у комбобоксов используется одна и таже таблица в качестве источника записей, но в вашем случае не так.


ComboBox1 - показывает записи из таблицы db_pacient
ComboBox7 - db_lg
ComboBox8 - db_uch

Как тогда сделать не пойму, мне надо чтоб в таблице db_items записывалось id_uch и id_lg

Re: скрипт + combobox

sibprogsistem wrote:

не могу разобраться в связях ваших таблиц, чго-то голова сегодня не варит..
но насколько я понял ваш вопрос , то эти таблицы должны быть связаны тогда скрипт должен выглядить  примерно так

procedure Frm_ob_ComboBox1_OnChange (Sender: TObject);
begin
    Frm_ob.ComboBox7.dbItemID:= SQLExecute( SELECT имя поля FROM имя таблицы LEFT OUTER JOIN  имя таблицы ON тиблица.id= таблица.id_поле WHERE таблица.id=' + Frm_ob.ComboBox1.value);
 end;

взять значение поля из двух таблиц  объедененых по условию где id поля равен id Frm_ob.ComboBox1

Попробую

Re: скрипт + combobox

sibprogsistem wrote:

не могу разобраться в связях ваших таблиц, чго-то голова сегодня не варит..
но насколько я понял ваш вопрос , то эти таблицы должны быть связаны тогда скрипт должен выглядить  примерно так

procedure Frm_ob_ComboBox1_OnChange (Sender: TObject);
begin
    Frm_ob.ComboBox7.dbItemID:= SQLExecute( SELECT имя поля FROM имя таблицы LEFT OUTER JOIN  имя таблицы ON тиблица.id= таблица.id_поле WHERE таблица.id=' + Frm_ob.ComboBox1.value);
 end;

взять значение поля из двух таблиц  объедененых по условию где id поля равен id Frm_ob.ComboBox1

спасибо работает!