Я пишу приложение Excel, которое по сути выбирает значения на основе пользовательского ввода. Пользователь выбирает номер проекта, затем может выбрать из списка типов инструментов, оба из которых уже существуют в базе данных доступа. Однако, если с проектом не связан этот инструмент, я не хочу, чтобы этот инструмент отображался в списке. Например, скажем, пользователь выбрал проект № 15. С этим проектом связано 3 инструмента, например, их названия - «A», «C», «D». Другими словами, инструмент B не имеет никакого отношения к этому проекту.
У меня есть две разные таблицы базы данных, на которые я смотрю. Одна таблица имеет все имена инструментов и называется ToolNames. В другой таблице есть все файлы инструментов, в которых перечислены ассоциации проекта, она называется ToolFiles. Таким образом, в базе данных может быть несколько копий инструмента «C», которые просто зависят от количества данных в них.
Мне действительно нужно запросить таблицу ToolNames, основываясь на входных данных пользователя, которые можно проверить в таблице ToolFiles. Возьмите номер проекта, просмотрите базу данных ToolFiles для инструментов, а затем заполните имена записей инструментов с этим номером проекта, а затем запросите базу данных ToolNames и выберите только имена инструментов, которые обнаружились в базе данных ToolFiles. База данных ToolFiles может иметь несколько имен и дублированных имен инструментов.
Это заявление о присоединении, которое я имею до сих пор:
strSQL = "SELECT * " _
& "FROM ToolNames t " _
& "INNER JOIN ToolFiles f " _
& "ON t.ToolName = f.Tool_Name " _
& "WHERE f.Tool_Name = '" & theSelectedProjName & "' "
rs.Open strSQL ' , cn, 3, 3
где ToolNames - это таблица, из которой я хочу получить значения, ToolFiles - это таблица, с которой я хочу сравнить поле с двумя именами инструментов.
Я знаю, что это сложный вопрос, и его трудно объяснить. Дайте мне знать, если есть что-то, что я могу уточнить. Заранее спасибо!