ник: Мюллер
В adp нужно использовать конструкцию CurrentProject, а не CurrentDB
Function paswd()
Dim strSelect As String
Dim strFrom As String
Dim strWhere As String
Dim qqq As String
Dim www As String
Dim strsql As String
strSelect = "SELECT "
strSelect = strSelect & "pas.id, pas.idparol, pas.iduser, pas.idrole, pas.idnaim"
strFrom = " FROM pas"
strWhere = " WHERE true"
If Nz([Form_Avtorizaciy].[Пароль], 0) > 0 Then qqq = [Form_Avtorizaciy].[Пароль]
If Nz([Form_Avtorizaciy].[Логин], 0) > 0 Then www = [Form_Avtorizaciy].[Логин]
If Nz(qqq, 0) > 0 Then strWhere = strWhere & " and pas.idparol = " & """" & qqq & """"
If Nz(www, 0) > 0 Then strWhere = strWhere & " and pas.iduser = " & """" & www & """"
strsql = strSelect & strFrom & strWhere & ";"
CurrentDb.QueryDefs("password").SQL = strsql
paswd = strsql
End Function
|
Не самое лучшее решение. Как вы думаете, что произойдет, если в поле логин я наберу что-то вроде Миша DROP TABLE pas /* Ну плюс поиграться со скобками и кавычками
Конструкцию DROP TABLE можно заменить на delete.
С SQLсервером будьте осторожней. Да и опять же все запросы желательно реализовать используя возможности самого SQLSERVER ( см. stored procedure, function )