#sql #forms #ms-access
#sql #формы #ms-access
Вопрос:
Название в значительной степени говорит само за себя.
У меня есть представление vPersonalInfo
, подключенное к таблице Customers
, которое запрашивает определенную часть исходной таблицы. Я хочу иметь возможность изменять представление и получать результаты в Customers
таблице.
Возможно ли это? Если нет, есть ли альтернативы? Заранее спасибо.
Примечание: я использую Access для отображения информации из vPersonalInfo
представления в форме.
Например, у меня есть эта исходная таблица, которая называется Customers
:
---- ------ ----------
| id | name | isActive |
---- ------ ----------
| 1 | Joe | 0 |
| 2 | Mike | 1 |
| 3 | Will | 1 |
---- ------ ----------
Я создал представление, vPersonalInfo
специально расположенное в базе данных Уилла:
---- -------- -----------
| id | name | isActive |
---- -------- -----------
| 3 | Will | 1 |
---- -------- -----------
Форма в Access запрашивает vPersonalInfo
, и я хочу изменить значение isActive
на 0 через форму в Access, чтобы оно изменило значение исходной таблицы.
Комментарии:
1. Что вы подразумеваете под «базой данных Уилла» ? Вы работаете с двумя отдельными базами данных? Когда вы ссылаетесь на «Представление», поскольку вы используете MS Access, я предполагаю, что вы имеете в виду «запрос»? Если вы не ссылаетесь на представление в SQL Server, которое связано в MS Access?
2. У каждого клиента есть определенная база данных, созданная для него (структура у всех одинакова), и есть основная база данных, содержащая таблицу клиентов. И да, я связал представление с SQL Server с Access, чтобы оно запрашивало представление при открытии формы.
Ответ №1:
Вы можете использовать left join
:
select c.id, c.name,
nz(pi.isActive, c.isActive) as isActive
from customers as c left join
vPersonalInfo as pi
on c.id = pi.id;