sql - 使用 sql 记录集确定加载时显示哪个用户窗体
问题描述
我有一个 Word 中的 VBA 应用程序。当用户打开文档时,他们将看到两个版本的主菜单之一,这取决于他们存储在 SQL 表中的访问级别。访问级别列是一个整数并且是“1”或“0”。我正在尝试根据查询该表的结果在 VBA 中使用一个简单的 if then 语句,但我的 rs 对象不断出现类型不匹配。
Sub accesscheck()
Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim Database_Name As String
Dim SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Server_Name = "SDL02-VM25"
Database_Name = "PIA"
SQLStr = "select [AccessLevel] from dbo.[AttendanceUsers] Where [Adusername] ='" & getWinUser & "'"
Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & vbNullString
rs.Open SQLStr, Cn, adOpenStatic
If rs = "1" Then MainMenu.Show vbModeless Else OLMenu.Show
rs.Close
Cn.Close
Set rs = Nothing
Set Cn = Nothing
End Sub
解决方案
您必须指定列名,也不需要""
. 尝试这个 :
....
....
If rs("AccessLevel") = 1 Then MainMenu.Show vbModeless Else OLMenu.Show
....
....
推荐阅读
- django - AttributeError:模块'myapp'在Django中没有属性'startswith'
- javascript - 删除请求不起作用
- r - 将使用 mutate_ 创建的新变量分配给将在 dplyr 中作为字符串传递的名称
- shell - 如何在终端默认输出中添加“回声”
- typescript - Typescript“匿名”类型定义的正确名称是什么?
- three.js - Threejs通过UV贴图添加teture后将部分Object3ds面导出为图像
- php - 异步php循环
- android - 如何通过android客户端中的特定端口连接到java服务器?
- python - 抓取小部件
- css - 将不同引导列的子元素设置为相同的高度