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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2013, 23:41   #1
lun-wadim
 
Регистрация: 18.12.2012
Сообщений: 8
По умолчанию Поиск точного совпадения по двум столбцам таблицы в БД Access

Имеется две отдельные таблицы (TProizFactor и TProizFactor2). В первом таблице TProizFactor: номер сотрудника, номер пункта произв. вред. фактора, наименование произв. вред. фактора. Во втором таблице TProizFactor2: номер пункта произв. вред. фактора, наименование произв. вред. фактора.

Например:
Первая таблица TProizFactor
Таблица TProizFactor.jpg

Вторая таблица TProizFactor2. Это как справочник.
Таблица TProizFactor2.jpg

Я открываю данные сотрудника под номером 3, открываю справочник (таблица TProizFactor2), добавляю из справочника пункт 1.1.1 в таблицу TProizFactor. Вот результат на рисунке
Таблица TProizFactor далее.jpg

Вот мой код Delphi
Код:
var
Res: Variant;
.........
Res:=fDM.TProizFactor.Lookup('Номер сотрудника;№ п/п',VarArrayOf([fDM.TFIO.FieldByName('Номер сотрудника').AsString,fDM.TProizFactor2.FieldByName('№ п/п').AsString]),'');
if VarType(Res) = varNull then
  begin
    ShowMessage('Добавляем запись');
    fDM.TProizFactor.Append;
    ........
Если совпадает, то ругает на строку if VarType(Res) = varNull then.
Если ли другие варианты поиска? Locate не помогает.
lun-wadim вне форума Ответить с цитированием
Старый 15.02.2013, 05:18   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Если ли другие варианты поиска? Locate не помогает.
А покажите, как Вы локейтом пользуетесь, что она не помогает?

А из других вариантов - ну например, SQL-запрос. Или фильтр по столбцу
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 15.02.2013, 21:39   #3
lun-wadim
 
Регистрация: 18.12.2012
Сообщений: 8
Хорошо

Sciv насчет Locate, у меня получилось. Я немножко не то написал. Вот верный код:
Код:
if fMain.DBGrid3.DataSource.DataSet.Locate('Сотрудник;№ п/п', VarArrayOf([fDM.TFIO.FieldByName('Код').AsString,fDM.TProizFactor2.FieldByName('№ п/п').AsString]),[])=false then

Последний раз редактировалось lun-wadim; 15.02.2013 в 21:44.
lun-wadim вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск дубликатов по двум столбцам?! mojo Microsoft Office Excel 5 15.11.2012 00:13
Фильтр по двум столбцам kzld Microsoft Office Excel 3 31.10.2010 16:57
C Builder фильтрация в ADOTable по двум столбцам AlexSol.BY Помощь студентам 0 28.05.2010 22:09
подстановка с помощью ВПР по двум столбцам grichanuk Microsoft Office Excel 0 04.12.2009 17:23
SQL запрос сразу по двум столбцам одной таблицы Иван БД в Delphi 6 03.01.2008 14:36