|
#1
|
|||
|
|||
Связанные таблицы
Всем доброй ночи! Помогите пожалуйста новичку решить проблему. Проблема следующая: пытаюсь связать две таблицы с помощью query но неполучается. сам запрос следующий:
select * from CKBI,telephone where keylink=key1 Связь в таблицах вообще отсутствует, тоесть таблица с ключевым полем keylink выдает абсолютно все игнорируя условие. Может я что не так делаю? Пожалуйста помогите, заранее благодарен! |
#2
|
|||
|
|||
Какие поля в этих таблицах? (название, тип)
Почему они не связаны? Обычно одно поле присутствует в обеих таблицах (хоть и может называться по-разному). |
#3
|
|||
|
|||
типы полей следующие:
В таблице CKBI следующие поля: key1(счетчик,ключ.поле), name(строка),surn(строка),patr(строка),num_pos(стр ока),date(дата),pos(строка),vzv(число),pid(число) В таблице telephone следующие поля:key_tlf(счетчик, ключ.поле),keylink(число),dom(строка),mob(строка), rab(строка) keylink- числовое поле в таблице telephone key1- счетчик, ключевое поле в таблице CKBI По идее tlfquery(в котором прописан сам запрос) должен фильтровать данные полей mob,dom,rab Почему не связываются, сам не пойму, компилятор никаких ошибок не выдает, он просто вроде как игнорирует запись (показывает все поля таблицы telephone не зависимо от выбраной строки CKBI) where keylink=key1 причем пробовал уже и полностью прописывать имя типа: where telephone.keylink=CKBI.key1 База данных - Access(с паролем) |
#4
|
|||
|
|||
СУБД следующая:
CKBI.mdb-connection-> CKBIquery(SQL=Select * from CKBI)->CKBIsource (DataSet= CKBIquery) tlfquery('DataSource=CKBISource',SQL=select * from telephone,CKBI WHERE telephone.keylink like CKBI.key1)->tlfsource('DataSet=tlfquery') |
#5
|
||||
|
||||
пробуй
Код:
select * from telephone WHERE keylink = :key1 |
#6
|
|||
|
|||
При активации query выдает ошибку "Неправильно определен обьект Parametr. Предоставлены несовместимые или неполные сведения"
|
#7
|
||||
|
||||
Странно.
Я надеюсь, ты сначала CKBIquery.Open делаешь, а потом tlfquery.Open ? |
#8
|
|||
|
|||
Код HTML:
|
#9
|
|||
|
|||
Код HTML:
|
#10
|
||||
|
||||
Тоесть сначала надо открыть CKBIquery, а потом открыть tlfquery, и именно открыть а не выполнить. Что тут непонятного?
|
#11
|
||||
|
||||
Вы вроде несколько не то предлагаете. У него две таблицы в запросе не связываются.
Код:
select * from CKBI,telephone where keylink=key1 Код:
select * from CKBI inner join telephone on keylink=key1 Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
Цитата:
Выдает ошибку при активации query "Не поддерживается выражение обьединения" |
#13
|
||||
|
||||
У меня есть подозрение, что проблема в запрещенных именах полей. Поля Name и Date являются вроде зарезервированными в Акцесе. Попробуйте переименовать их.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |