Соответствующие таблицы
#One#
+----------+ +--------------+
|Quotations| ---> |PurchaseOrders|
+----------+ | +--------------+
<One> | <Many> |
| v #Many#
| +-----------+ +------------+
v |QuotedItems| ---> |OrderedItems|
+-----------+ +------------+
<Many> {One} {Many}
Форма / Подформа
PurchaseOrders
- Мастер-форма, много-к-одному с OrderedItems
OrderedItems
- Подформа в форме таблицы данных, много-к-одному с PurchaseOrders
Quotations
- таблица, которая является «один ко многим» с PurchaseOrders
и используется для запросов
QuotedItems
- таблица, которая является «один ко многим» с OrderedItems
и используется для запроса
Поле со списком
Элемент управления Item
находится в подчиненной форме OrderedItems
. Это поле со списком, которое запускает следующий специальный запрос:
SELECT [ID], [Code]
FROM [QuotedItems]
WHERE [QuotedItems].[Quotation] = Forms.PurchaseOrders.Quotation;
Запрос поля со списком выполняется так, как я ожидал; Здесь нет проблем. Столбец [ID]
скрыт от просмотра (ширина столбца равна нулю).
Проблема
Проблема возникает, когда я пытаюсь добавить значения из таблицы QuotedItems
(отфильтрованные по текущему идентификатору предложения, выбранному в форме) одним нажатием кнопки.
Я создал запрос на добавление для достижения этого с именем CopyQuotedItems2OrderedItems
:
INSERT INTO OrderedItems ( PurchaseOrder, Item, Quantity )
SELECT PurchaseOrders.ID, QuotedItems.Item, QuotedItems.Quantity
FROM ( Quotations
INNER JOIN
PurchaseOrders
ON Quotations.ID = PurchaseOrders.Quotation
)
INNER JOIN
QuotedItems
ON Quotations.ID = QuotedItems.Quotation
WHERE (((Quotations.ID)=[Forms].[PurchaseOrders].[Quotation]));
Кнопка Copy Quoted Items в форме PurchaseOrders
затем запускает следующий код:
Private Sub CopyQuotedItems_Click()
DoCmd.OpenQuery "CopyQuotedItems2OrderedItems"
End Sub
Приложение работает как надо. Однако второе поле оператора INSERT
, связанное с элементом управления Item
, ничего не отображает даже после обновления. Единственный способ сделать элемент Code
видимым - это выбрать поле со списком и выбрать элемент из него.
1000 слов ...
Перед нажатием Копировать цитируемые элементы (обратите внимание, что в этом поле со списком есть две записи в этом случае):
альтернативный текст http://img251.imageshack.us/img251/9529/beforeappendwithcombo.png
После щелчка Копировать цитируемые элементы :
Вопросы
- Во-первых, почему я не вижу свой
Code
по умолчанию после выполнения запроса на добавление? Это потому, что значение, вставленное в запросе добавления, каким-либо образом не связано со списком?
- Во-вторых, я лаю не на том дереве? Если да, то как еще можно заставить его отображать
колонка
Code
автоматически?