Есть база с кучей справочных таблиц (как обычно)
Для того, чтобы вытаскивать из них произвольные значения была написана функция:
Public Function GetСправочник(Результат As String, ИмяТаблицы As String, Условие As String) As Variant
Dim rst As New ADODB.Recordset
On Error GoTo Err_Handler
rst.Open "SELECT " & Результат & " AS Результат FROM dbo." & ИмяТаблицы & " WHERE " & Условие, CurrentProject.Connection
If rst.EOF Then
GetСправочник = ""
Err.Raise vbObjectError + 513, , "Справочник не найден"
Else
GetСправочник = rst!Результат
End If
rst.Close
Set rst = Nothing
Exit Function
Err_Handler:
MsgBox Err.Description, vbCritical, "GetСправочник"
Resume Next
End Function
Теперь возникло желание закрыть пользователям прямой доступ к таблицам и реализовать все с помощью хранимых процедур и функций. Посоветовали использовать динамические запросы. Но проблема в том, что динамические SQL запросы исполняются с правами пользователя, т.е. они не решают задачи.
Получается, что на каждое поле каждой таблицы нужно писать свою функцию доступа?
Возможно, кому-то уже удалось решить эту задачу. Поделитесь.