Sync combo-boxes "1 в форме, 1 в подформе"

хороший день

Я успешно (благодаря большой помощи от stackoverflow) синхронизирует две комбинированные поля в форме.

НОВАЯ ПРОБЛЕМА...

Я создал a, с суб-формой. Один комбинированный блок (A) находится в форме, а другой (B) находится в под-окне. (комбо "B" должно быть ограничено комбо "A" )

ie.. (он работает, когда оба комбинированных поля находятся в форме, но когда один (комбо "B" ) находится в подформе, происходит ошибка.

Код запроса:


SELECT products.Product_Name FROM Table1 INNER JOIN products ON Table1.Suppliers_of_Customer = products.Company_Name WHERE (((Table1.Suppliers_of_Customer) = [Forms]! [Form1]. [A]));

Макрокод для COMBO 'A':


Запрос ACTION
АРГУМЕНТЫ B

ACTION SetValue
ARGUMENTS [B], nz (DMin ( "Product_Name", "Query1" ), "")


Что мне делать? Спасибо...

Ответы

Ответ 1

Вам нужно научиться обращаться к элементам управления на подформатах.

Если у вас есть cmbComboBox1 в вашей родительской форме и cmbComboBox2 на подформе, называемой MySubForm, из основной формы вы ссылаетесь на них как:

  Me!cmbComboBox1
  Me!MySubForm.Form!cmbComboBox2

Из подформы вам следует обращаться к ним таким образом:

  Me.Parent!cmbComboBox1
  Me!cmbComboBox2

В некоторых контекстах могут возникать проблемы с разрешением Me.Parent, и я не знаю, работает ли это в макросах (программисты реального доступа не используют макросы - уйду от них, как только сможете), В этом случае вам может потребоваться сослаться на родителя, полностью соответствующего его имени, через коллекцию Forms:

  Forms!ParentForm!cmbComboBox1

Но сначала вы должны попробовать Me.Parent, потому что это означает, что подформа может быть встроена во множество разных родительских форм, если они имеют одинаковые имена элементов управления.