Доступ вопрос о VBA: Измените запрос, ссылаемый функцией, в зависимости от контекста

У меня есть пользовательская функция в Access2007, который зависит от захвата данных из определенного запроса. Это открывает Outlook, создает новое электронное письмо и заполняет поля с определенными адресами и данными, взятыми от запроса ("DecisionEmail"). Теперь я хочу сделать другой запрос ("RequestEmail") и имейте его, заполняют электронную почту с теми данными. Таким образом, все, что я должен сделать, изменить эту строку:

Set MailList = db.OpenRecordset("DecisionEmail")

и это - то, где я озадачен.

Это - мой желаемый результат: Если пользователь идет Form_Decision и нажимает кнопку "Send email", "DecisionEmail" будет включен функция и те данные появятся в электронном письме. Если пользователь на Form_SendRequest и нажимает кнопку "Send email", "RequestEmail" будет вместо этого включен. Причина, что это различные запросы, состоит в том, потому что они содержат совсем другую информацию, которая пачкается о по-разному. Однако, так как это - всего одна небольшая вещь, которая должна измениться в функциональном коде, я не думаю, что совершенно новая функция является хорошей идеей.

Мое последнее средство должно было бы сделать совершенно новую функцию и использовать поле Conditions в интерфейсе Macro для выбора между ними, но у меня есть чувство, что существует более изящное возможное решение.

У меня есть неопределенное понятие установки имен запроса как переменные и использование, Если оператор, но у меня просто нет умственного словаря для того, чтобы продумать это.

1
задан artlung 21 May 2010 в 21:47
поделиться

1 ответ

Почему бы не сохранить макрос как код, тогда вы можете отредактировать его, скажем:

Function CustomEmail(NameOfQuery As String)

    CurrentDB.Openrecordset(NameOfQuery)

End Function

Затем в каждой форме в желаемом событии:

CustomEmail "DecisionEmail"
2
ответ дан 3 September 2019 в 00:23
поделиться