2013-02-23 3 views
1

Кажется, я врезался в кирпичную стену в MS Access 2010.Microsoft Access выборе записи из другой таблицы соответствия текущей записи

Это своего рода трудно объяснить, что я пытаюсь достичь, так что я начну с основным примером. Скажем, у нас есть две таблицы: A и B.

A:

ID  Price Item 
1  5  ABB 
2  4  ATV 
3  2  CCC 

B:

ID  Price limit Chosen item 
1  3  
2  4 
3  5 
4  6 

То, что я пытаюсь добиться, это создать Relation из таблицы А к В. Каждая запись в таблице B должна иметь связанную запись таблицы A. Он должен основываться на поле таблицы «Цена» и в поле «Таблица» «Предел цен» таким образом, чтобы цена выбранной записи из таблицы А была ниже, чем предел цены, введенный в таблице B.

То есть возможная таблица A записей для первой записи таблицы B является только CCC, для второго - ATV и CCC, тогда как для третьего и четвертого действительны все записи.

Что касается моих знаний ограниченного доступа, я решил, что должен написать запрос в свойстве источника строки строки «Выбранный элемент». Однако я попытался написать его сам, но безуспешно. Вот что я придумал:

SELECT [Table A].[ID], [Table A].[Item] 
FROM [Table A] 
WHERE [Table A].[Val] > [Val]; 

Но это не сработает. Может ли кто-нибудь указать мне в правильном направлении?

+0

В столбце «выбранный элемент» выпадающее меню, которое должно содержать записи, соответствующие моему условию, пуст. – Sunius

+0

Это приблизило меня. Однако, когда я нажимаю на раскрывающееся меню сейчас, он просит меня вручную ввести предел цены вместо того, чтобы принимать его из меню: http://img266.imageshack.us/img266/1052/closeraccess.png Я буду попробуйте объяснить, что я хочу делать. Дай мне минуту. – Sunius

+0

В принципе, я пытаюсь сделать доступ, чтобы дать мне раскрывающееся меню, заполненное элементами, которые удовлетворяют моему состоянию. Когда я дам ему этот запрос: SELECT [ta]. [ID], [ta].[Item] FROM ta; Я получаю такой результат: http://img21.imageshack.us/img21/5509/accessdropdown.png Я хочу добиться того же, что и выпадающие пункты меню удовлетворяют условию в зависимости от того, что набирается в текущем запись. РЕДАКТИРОВАТЬ: вы совершенно правы и отправили 3 секунды, прежде чем я смог :). Любой совет, что я должен делать? – Sunius

ответ

2

Я думаю, что вы хотите что-то вроде этого, где окно выпадающего содержит только соответствующие пункты:

enter image description here

Вы можете установить это, установив исходную строку в комбо, чтобы сказать,

select item from ta where price<=forms!tb!pricelimit 

И добавить немного кода

Private Sub Form_Current() 
    Me.Chosenitem.Requery 
End Sub 

Обратите внимание, что этот метод содержит предупреждение. Выпадающие списки Usong, подобные этому в непрерывной форме, могут серьезно испортить отображение ваших данных в любых строках, отличных от текущей строки. В этом случае дисплей отлично, потому что связанный столбец и данные, которые должны быть отображены то же, однако, если выбор был:

Row Source: select id,item from ta where price<=forms!tb!pricelimit 
Bound Column: 1 
Column Widths : 0cm;2cm 

данные, по-видимому исчезают из записей, когда выбор для тока запись создала список, который не содержал идентификаторы для других строк. То есть, если выбор для текущих строк возвратил идентификаторы 1 и 2, а следующая строка уже выбрала ID 3, комбо для следующей строки будет казаться пустым и так далее на странице.

Смежные вопросы