Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2012, 15:24   #1
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию OnDblClick в DBGrid и открытие новой формы

Здравствуйте!
Имеется форма на которой есть DBGrid с данными. Нужно чтобы при двойном щелчке открывалась другая форма с данными другой таблицы.
Таблицы между собой связаны в Access'e
в событии OnDblClick прописал
Код:
procedure TTurnirForm.TurnirGridDblClick(Sender: TObject);
begin
if turnirGrid.DataSource.DataSet.FieldbyName('NAME_T').AsString=Form2.DBGrid1.DataSource.DataSet.FieldByName('NAME_T').AsString
then
Form2.ShowModal;
end;
но ничего не происходит
прикрепил БД и проект
Вложения
Тип файла: rar проект и БД.rar (1.38 Мб, 19 просмотров)

Последний раз редактировалось Stilet; 14.11.2012 в 16:06.
haker270 вне форума Ответить с цитированием
Старый 14.11.2012, 15:55   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. Во время двойного клика в таблице может быть ничего не выбрано и вылетит исключение
2. Есть уверенность, что if должен сработать?
pu4koff вне форума Ответить с цитированием
Старый 14.11.2012, 16:07   #3
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
1. Во время двойного клика в таблице может быть ничего не выбрано и вылетит исключение
2. Есть уверенность, что if должен сработать?
я понял, так как я написал совсем неверно, как правильно, можете подсказать?
haker270 вне форума Ответить с цитированием
Старый 14.11.2012, 16:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты поставь точку прерывания и посмотри - условие отрабатывает, или дает False
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2012, 16:10   #5
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты поставь точку прерывания и посмотри - условие отрабатывает, или дает False
Вам легко говорить, а я ниче понять не могу
haker270 вне форума Ответить с цитированием
Старый 14.11.2012, 16:20   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

немного не так:
Код:
if turnirGrid.DataSource.DataSet.Locate('NAME_T',Form2.DBGrid1.DataSource.DataSet.FieldByName('NAME_T').AsString,[])
  then Form2.ShowModal
  else ShowMessage('Указанная запись не найдена');
(могут быть погрешности, т.к. писал в слепую)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 14.11.2012, 16:22   #7
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию

смотрите, Вы здесь писали про такой метод, можно так тоже попробовать?
haker270 вне форума Ответить с цитированием
Старый 14.11.2012, 16:29   #8
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
немного не так:
Код:
if turnirGrid.DataSource.DataSet.Locate('NAME_T',Form2.DBGrid1.DataSource.DataSet.FieldByName('NAME_T').AsString,[])
  then Form2.ShowModal
  else ShowMessage('Указанная запись не найдена');
(могут быть погрешности, т.к. писал в слепую)
спасибо, оно открывает форму, но там все данные(информация о всех турнирах), а мне нужно чтобы оно показало информацию по выбранному турниру в прошлой форме
haker270 вне форума Ответить с цитированием
Старый 14.11.2012, 16:30   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Читайте про организацию связи Master-Detail
pu4koff вне форума Ответить с цитированием
Старый 14.11.2012, 18:42   #10
haker270
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 24
По умолчанию

через adotable у меня получилось организовать связь, а вот как через adoquery?
ну т.е. я в первой форме adotable подключил к дбгриду, а в событии OnDblClick прописал Form2.showmodal, а втором adotable в форме2 прописал mastersource и masterfields и у меня все нормально работает
как сделать тоже самое с adoquery?
haker270 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление новой записи в DBGrid из 2х DBLookupComboBox ta_n_u_s_h_ka БД в Delphi 0 05.06.2012 18:21
Поиск ссылки и ее открытие в новой вкладке tolmik JavaScript, Ajax 0 13.02.2012 23:35
переход к новой записи в DBGrid rashik C++ Builder 1 15.05.2011 13:46
Создание новой формы по клику на стору в DBGrid insense БД в Delphi 9 14.06.2010 13:28
Открытие новой формы в VB byte916 Помощь студентам 1 04.03.2008 19:10