Я использую MS Access VBA и хранимую процедуру SQL Server для своего приложения. У меня есть форма frmUsers, у которой есть текстовое поле UserName. Он связан с именем пользователя tblUsers. Если пользователь обновляет его с помощью «@» перед входным значением текстового поля, он должен очистить некоторые столбцы (Password
и Hash
) в таблице SQL tblUser
.Как вызвать хранимую процедуру в выражении if, используя проход через запрос?
Я уже создал хранимую процедуру для него, а также написал код под UserName_AfterUpdate. Я чувствовал, что мне нужно создать сквозной запрос для вызова процедуры хранения внутри оператора If
, как показано ниже; но он не работает (не удаляя значения в таблице, а также не выдавая никаких ошибок).
Хранимая процедура работает сама по себе, но когда я попытался ее протестировать с помощью приложения, то есть вставить «@» перед текстовым полем, он не удаляет два столбца в таблице. Я пропускаю что-то связанное между сквозным запросом и текстовым полем. Пожалуйста помоги.
MS Access VBA
Private Sub UserName_AfterUpdate()
On Error Resume Next
Dim frm As Form
Dim strFilter As String
Dim DB As Database
Set DB = CodeDb
DoCmd.OpenForm "frmUsers", , , , , acDialog
Set frm = Forms!frmUsers
If frm.Tag Then
strFilter = strFilter & "sp_ClearWebsitePwd"
strFilter = strFilter & ", " & frm!UserID
If Left(UserName, 1) = "@" Then
DB.QueryDefs("qryClearWebsitePwd").Connect = SQLConnectString
DB.QueryDefs("qryClearWebsitePwd").sql = strFilter
End If
End If
End Sub
SQL Server хранимая процедура
CREATE PROCEDURE [dbo].[sp_ClearWebsitePwd]
@userID INT
AS
BEGIN
SET NOCOUNT ON;
UPDATE tblUser
SET tblUser.Password = NULL, tblUser.Hash = NULL
WHERE UserID = @userID
END
MS Access сквозная запроса (qryClearWebsitePwd)
sp_ClearWebsitePwd, 20226
Я полагаю, что поле 'Password' зашифровано? Зачем вам это нужно, хотя, учитывая, что вы (по-видимому) храните «Хеш»? –
@ Mat'sMug: Я просто дал несколько имен для столбцов таблицы. Мне нужно свести на нет два столбца. сохраняя «@» впереди, что означает деактивацию пользователя из системы/приложения. – toofaced
Извините, но почему бы не сделать явную ** функцию удаления ** для удаления записей? –