vba - 我得到一个编译错误:变量未在后端定义,相同的代码在前端的精确副本中工作
问题描述
我正在关注如何在访问 vba 中制作基本登录表单的指南,但是今天当我启动我的工作电脑时,登录似乎在我的后端根本不起作用(我最初从中导出了登录形成我的前端)。它给了我一个指向“”的“用户定义的类型未定义”错误,Private Sub btnLogin_Click()
但现在情况不再如此,现在它随机给我一个“编译错误:未定义的变量”指向“ Private Sub btnLogin_Click()
”并突出显示“ dbOpenSnapshot
”
这是我的后端文件中的整个代码,它给了我错误
Option Compare Database
Option Explicit
Private Sub btnLogin_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("BElogon", dbOpenSnapshot, dbReadOnly)
rs.FindFirst "logon_user='" & Me.txtboxname & "'"
If rs.NoMatch = True Then
Me.txtwrongname.Visible = True
Me.txtboxname.SetFocus
Exit Sub
End If
Me.txtwrongname.Visible = False
If rs!logon_pass <> Me.txtboxpass Then
Me.txtwrongpass.Visible = True
Me.txtboxpass.SetFocus
Exit Sub
End If
Me.txtwrongpass.Visible = False
DoCmd.OpenForm "FEindex"
DoCmd.Close acForm, Me.Name
End Sub
这是我前端的版本,完美无缺
Option Compare Database
Option Explicit
Private Sub btnLogin_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("BElogon", dbOpenSnapshot, dbReadOnly)
rs.FindFirst "logon_user='" & Me.txtboxname & "'"
If rs.NoMatch = True Then
Me.txtwrongname.Visible = True
Me.txtboxname.SetFocus
Exit Sub
End If
Me.txtwrongname.Visible = False
If rs!logon_pass <> Me.txtboxpass Then
Me.txtwrongpass.Visible = True
Me.txtboxpass.SetFocus
Exit Sub
End If
Me.txtwrongpass.Visible = False
DoCmd.OpenForm "FEindex"
DoCmd.Close acForm, Me.Name
End Sub
我发现它可能是缺少参考但是我的前端也没有启用它们并且它可以工作,所以我只是想理解这一点..
解决方案
如果反编译数据库的建议不起作用,可能是使用了dbOpenSnapshot
or dbReadOnly
。相反,请尝试:
Set rs=CurrentDb.OpenRecordset("BElogon")
此外,与其打开选择了所有记录的表,然后尝试查找匹配项,不如打开已过滤的记录集:
Set rs=CurrentDb.OpenRecordset("SELECT logon_pass FROM BElogon WHERE logon_user='" & Me!txtboxname & "'")
If Not (rs.BOF And rs.EOF) Then ' have found a matching user
If rs!logon_pass<>Me!txtboxpass Then ' password supplied does not match that stored for the user
End If
Else ' user name not found
End If
问候,
推荐阅读
- angular - Workbox-build 不会添加到服务工作者**一些**的预缓存 url(但会添加其他)
- javascript - jQuery 的 .text() 和 JavaScript 的 .innerText 都不起作用?
- python - 使用 OpenCV 显示帧时出现问题?
- python - 如何在 mysql.connector 中使用多个游标?
- excel - 合并多个工作簿的宏,适用于 excel 2010 但不适用于 2016
- python - 如何用python中的图像修改某些轴的属性?
- swift - 为什么@NSManaged 属性可以存储在扩展中?
- r - anaconda 上与 MRO 不兼容的软件包
- arrays - 状态自行改变?
- c++ - 如何通过生成复合数来修复我的 Prime 生成程序