Topic: Как по клику по записи в одной таблице показать связанную в другой

Есть у меня  таблица инструментов, есть таблица сотрудников, и есть таблица выдачи инструмента. Как по клику на инструмент увидеть кому он выдан. Н форме разместил две  таблицы, и хотел чтобы по клику на инструмент во второй высветилась всего одна запись, кому выдал. Я тут на форуме видел подобный пример с фото, и применил его у себя, только инструмент и фото были в одной таблице, а у меня инструмент и сотрудники в разных. Получается таблица выдачи через поле связь, связана с инструментом и сотрудником

Re: Как по клику по записи в одной таблице показать связанную в другой

Привет, Олег!
Если я правильно понял твой вопрос, есть пара моментов, которые, на мой взгляд, стоит учесть.
1. Если тебя интересует только то, какой «сотрудник» в данный момент владеет каким «инструментом», то «сотрудник» — это просто атрибут таблицы «инструменты»; таким образом, таблица «выдача инструментов» не нужна (см. «Инструменты 1» во вложении).
2. Не думаю, что использование двух «таблиц» — наиболее эффективный способ проверки данных: ты не узнаешь, был ли выдан «инструмент» или нет, и если да, то какому «сотруднику», пока не нажмёшь на строку в основной таблице. Не проще ли отобразить всю информацию в единой «таблице», которая одновременно показывает, какие «инструменты» доступны, какие выданы и кому, сколько инструментов у каждого «сотрудника» в любой момент времени и т.д. (см. «Инструменты 2» во вложении).
3. Таблица «выдачи инструментов» вам понадобится, если вы хотите увидеть историю выдачи инструментов, кому они были выданы, когда они были выданы и когда были возвращены. Возможно, это не обязательное требование, но чтобы понять, как это можно сделать, см. «Инструменты 3» во вложении).
Надеюсь, это даст вам несколько идей.
С уважением,
Derek.

Post's attachments

Attachment icon oleg tools.zip 1.29 mb, 126 downloads since 2025-10-24 

Re: Как по клику по записи в одной таблице показать связанную в другой

derek wrote:

Привет, Олег!
Если я правильно понял твой вопрос, есть пара моментов, которые, на мой взгляд, стоит учесть.
1. Если тебя интересует только то, какой «сотрудник» в данный момент владеет каким «инструментом», то «сотрудник» — это просто атрибут таблицы «инструменты»; таким образом, таблица «выдача инструментов» не нужна (см. «Инструменты 1» во вложении).
2. Не думаю, что использование двух «таблиц» — наиболее эффективный способ проверки данных: ты не узнаешь, был ли выдан «инструмент» или нет, и если да, то какому «сотруднику», пока не нажмёшь на строку в основной таблице. Не проще ли отобразить всю информацию в единой «таблице», которая одновременно показывает, какие «инструменты» доступны, какие выданы и кому, сколько инструментов у каждого «сотрудника» в любой момент времени и т.д. (см. «Инструменты 2» во вложении).
3. Таблица «выдачи инструментов» вам понадобится, если вы хотите увидеть историю выдачи инструментов, кому они были выданы, когда они были выданы и когда были возвращены. Возможно, это не обязательное требование, но чтобы понять, как это можно сделать, см. «Инструменты 3» во вложении).
Надеюсь, это даст вам несколько идей.
С уважением,
Derek.

Не знаю что происходит, но я не могу скачать файл. И поэтому не знаю что ответить. Знаю что проблема на моей стороне, что не могу скачать. Поэтому подожду. Как всё наладится так дам ответ.

Re: Как по клику по записи в одной таблице показать связанную в другой

oleg wrote:

Есть у меня  таблица инструментов, есть таблица сотрудников, и есть таблица выдачи инструмента. Как по клику на инструмент увидеть кому он выдан. Н форме разместил две  таблицы, и хотел чтобы по клику на инструмент во второй высветилась всего одна запись, кому выдал. Я тут на форуме видел подобный пример с фото, и применил его у себя, только инструмент и фото были в одной таблице, а у меня инструмент и сотрудники в разных. Получается таблица выдачи через поле связь, связана с инструментом и сотрудником

Приложите ваш проект или хотя бы схему данных (картинкой).

Визуальное программирование: блог и телеграм-канал.

5 (edited by jrga 2025-10-28 16:42:50)

Re: Как по клику по записи в одной таблице показать связанную в другой

Attached is the file Derek sent again, now in RAR format. See if you can download it.

Post's attachments

Attachment icon oleg tools.rar 1.29 mb, 22 downloads since 2025-10-28 

Roberto Alencar

6 (edited by oleg 2025-11-02 03:20:42)

Re: Как по клику по записи в одной таблице показать связанную в другой

derek wrote:

Привет, Олег!
Если я правильно понял твой вопрос, есть пара моментов, которые, на мой взгляд, стоит учесть.
1. Если тебя интересует только то, какой «сотрудник» в данный момент владеет каким «инструментом», то «сотрудник» — это просто атрибут таблицы «инструменты»; таким образом, таблица «выдача инструментов» не нужна (см. «Инструменты 1» во вложении).
2. Не думаю, что использование двух «таблиц» — наиболее эффективный способ проверки данных: ты не узнаешь, был ли выдан «инструмент» или нет, и если да, то какому «сотруднику», пока не нажмёшь на строку в основной таблице. Не проще ли отобразить всю информацию в единой «таблице», которая одновременно показывает, какие «инструменты» доступны, какие выданы и кому, сколько инструментов у каждого «сотрудника» в любой момент времени и т.д. (см. «Инструменты 2» во вложении).
3. Таблица «выдачи инструментов» вам понадобится, если вы хотите увидеть историю выдачи инструментов, кому они были выданы, когда они были выданы и когда были возвращены. Возможно, это не обязательное требование, но чтобы понять, как это можно сделать, см. «Инструменты 3» во вложении).
Надеюсь, это даст вам несколько идей.
С уважением,
Derek.

Спасибо Derek за приведённые примеры, кое как удалось скачать. Пока еще не разбирался, но в 1 и в 3 вложении вроде то что мне надо. Как разберусь, и если повезёт войти на форум обязательно напишу помогло или нет. на всякий случай приложу свой проект. В нём надо смотреть вкладку "Инструменты" и там по клику на выданный инструмент рядом в таблице должно высвечиваться кому он выдан.

Post's attachments

Attachment icon Учёт.zip 359.68 kb, 17 downloads since 2025-11-02 

Re: Как по клику по записи в одной таблице показать связанную в другой

procedure FrmTools_TableGrid1_OnCellClick(Sender: TObject; ACol, ARow: Integer);
var
  toolID: Integer;
begin

  // --- Получаем ID выбранного инструмента
  toolID := FrmTools.TableGrid1.dbItemID;

  // --- Загружаем в TableGrid3 данные о выдаче этого инструмента
  FrmTools.TableGrid3.DBUpdate('SELECT r.*, e.фамилия, e.имя, e.отчество ' +
                              'FROM Rent r ' +
                              'LEFT JOIN employees e ON r.id_employees = e.id ' +
                              'WHERE r.id_tools = ' + IntToStr(toolID));
end;

Так не работает. Ошибка сразу после   FrmTools.TableGrid3.DBUpdate. Направьте меня на правильный путь. Это я пишу всё по своей теме.