Access数据库,想用Vb做一个修改密码的窗体,出现两个bug,求高手指教

Access数据库,想用Vb做一个修改密码的窗体,出现两个bug,求高手指教,第1张

Private Sub 确定_Click()

Dim ai, aj, temp3, temp4

ai = "[用户名]='" &yhm &"'"

aj = "[密码]='" &jmm &"'"

temp3 = 0

temp4 = 1

temp3 = DLookup("ID", "用户", ai)

temp4 = DLookup("ID", "用户", aj)

If temp3 = temp4 Then

    If Nz(xmm) = Nz(qr) Then

       DoCmd.RunSQL "UPDATE 用户 SET 密码='" &xmm &"' WHERE 用户名='" &[forms]![修改密码]![yhm] &"'"

      MsgBox xzh &"密码修改成功"

    Else

      MsgBox "新密码和确认密码不一致,不能修改密码"

    End If

Else

  MsgBox "旧密码输入有误"

End If

End Sub

方法1: 用SET PASSWORD命令

 首先登录MySQL。 格式:mysql>set password for 用户名@localhost = password(‘新密码’) 例子:mysql>set password for root@localhost = password(‘123’)

方法2:用mysqladmin 

格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123

方法3:用UPDATE直接编辑user表 

首先登录MySQL。 mysql>use mysql mysql>update user set password=password(‘123’) where user=’root’ and host=’localhost’ mysql>flush privileges

方法4:在忘记root密码的时候,可以这样 以windows为例: 

1. 关闭正在运行的MySQL服务。 2. 打开DOS窗口,转到mysql\bin目录。 3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 6. 连接权限数据库: use mysql。 6. 改密码:update user set password=password(“123”) where user=”root”(别忘了最后加分号) 。 7. 刷新权限(必须步骤):flush privileges 。 8. 退出 quit。 9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

你的数据库连接错误了吧,这样试试

user master

go

exec sp_password '原密码','新密码'

如果原密码为空,则:

exec sp_password null,'新密码'

如果你在master下还找不到该存储过程,那把下面的代码在master库运行一下即可:

create procedure sp_password

@old sysname = NULL,-- the old (current) password

@new sysname, -- the new password

@loginame sysname = NULL-- user to change password on

as

-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --

set nocount on

declare @self int

select @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END

-- RESOLVE LOGIN NAME

if @loginame is null

select @loginame = suser_sname()

-- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --

IF (not is_srvrolemember('securityadmin') = 1)

AND not @self = 1

begin

dbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)

raiserror(15210,-1,-1)

return (1)

end

ELSE

begin

dbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)

end

-- DISALLOW USER TRANSACTION --

set implicit_transactions off

IF (@@trancount >0)

begin

raiserror(15002,-1,-1,'sp_password')

return (1)

end

-- RESOLVE LOGIN NAME (disallows nt names)

if not exists (select * from master.dbo.syslogins where

loginname = @loginame and isntname = 0)

begin

raiserror(15007,-1,-1,@loginame)

return (1)

end

-- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --

if (@self <>1 AND is_srvrolemember('sysadmin') = 0 AND exists

(SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0

AND sysadmin = 1) )

SELECT @self = 1

-- CHECK OLD PASSWORD IF NEEDED --

if (@self = 1 or @old is not null)

if not exists (select * from master.dbo.sysxlogins

where srvid IS NULL and

name = @loginame and

( (@old is null and password is null) or

(pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )

begin

raiserror(15211,-1,-1)

return (1)

end

-- CHANGE THE PASSWORD --

update master.dbo.sysxlogins

set password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus &(~2048)

where name = @loginame and srvid IS NULL

-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --

exec('use master grant all to null')

-- FINALIZATION: RETURN SUCCESS/FAILURE --

if @@error <>0

return (1)

raiserror(15478,-1,-1)

return (0) -- sp_password


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10840039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存