





Одним запросом, видимо, не удастся. Первым нужно найти в какой таблице лежит искомое значение, а вторым вытащить само значение





SELECT *
FROM
(
  SELECT table1.*, 'table1' AS TableName FROM table1
  UNION ALL
  SELECT table2.*, 'table2' FROM table2
  UNION ALL
  SELECT table3.*, 'table3' FROM table3
)
WHERE
TableName = 'искомое имя таблицы' AND id = искомыйid







sql = "SELECT Table FROM tbl0 WHERE ID = " & Id
Set rs = cn.Execute(sql)
TableName = rs("Table").Value
sql = "SELECT Name FROM " & TableName & " WHERE ID = " & Idsql = "SELECT * FROM (SELECT * tbl1 UNION ALL SELECT * FROM tbl2) WHERE ID = " & Id
 , а база то в Access.
 , а база то в Access.




AndreyG_80 писал(а):Как програмно в VB это сделать - я знаю.
Но нужно в Access это делать.
Наверное прийдется использовать VBA.
SELECT * FROM (SELECT * tbl1 UNION ALL SELECT * FROM tbl2) WHERE ID = seekId






Konst_One писал(а):ты пост GSerg смотрел



SELECT * FROM (SELECT * tbl1 UNION ALL SELECT * FROM tbl2) WHERE ID = seekId




Konst_One писал(а):что-то мой инет сегодня притормаживает
AndreyG_80 писал(а):
- Код: Выделить всё
SELECT * FROM (SELECT * tbl1 UNION ALL SELECT * FROM tbl2) WHERE ID = seekId
Я так понял, что это для двух таблиц, а если в базе около 50 таблиц и в каждой куча записей?
 Или менять архитектуру БД, что, как я понимаю, в данном случае не приемлемо.
 Или менять архитектуру БД, что, как я понимаю, в данном случае не приемлемо.Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5