Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

access16版 For i = 1 To Rs1.RecordCount 提示编译错误,类型不匹配

孔繁聪  发表于:2021-03-23 16:18:46  
复制

Option Compare Database
Option Explicit


'定义用于保存用户登录的“用户ID”值
Public UserID As String
'用于保存用户输入的“用户ID”等变量
Public SUserID As String  '保存“用户ID”
Public SUserName As String  '保存“用户名”
Public varPassword As Variant  '保存“密码”
Public PasswordAsk As String  '保存“密码提示”
Public PasswordAsw As String  '保存“密码答案”






Function OpenForm(FormID As Integer)
On Error GoTo Err_OpenForm
Dim i As Integer    '定义用于循环的整型变量
Dim STemp As String  '定义字符型变量
Dim Rs1 As ADODB.Recordset '定义数据集变量
Dim Rs2 As ADODB.Recordset '定义数据集变量
'为定义的数据集变量分配空间
Set Rs1 = New ADODB.Recordset
Set Rs2 = New ADODB.Recordset
'打开“系统权限”数据表
STemp = "Select * From 系统权限"
Rs1.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'打开“系统窗体”数据表
STemp = "Select * From 系统窗体"
Rs2.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'定义用于保存用户是否有权限打开该窗体的布尔变量
Dim blnOpen As Boolean
'定义保存“窗体名称”的字符型变量
Dim FormName As String
    '为blnOpen布尔变量赋初值
    blnOpen = False
    '判断“系统权限”数据是否为空
    If Rs1.RecordCount < 1 Then
        blnOpen = False
    Else
        Rs1.MoveFirst
        '判断当前“登录用户”是否有权限打开FormID对应的窗体
        For i = 1 To Rs1.RecordCount
            If Rs1("用户ID") = UserID And Rs1("窗体ID") = FormID _
                    And Rs1("权限") = True Then
                '如果用户有权限,同把blnOpen变量值设置为“真”
                blnOpen = True
            Else
                Rs1.MoveNext
            End If
        Next i
    End If
    '在“系统窗体”数据表中搜索待打开窗体的“名称”
    Rs2.MoveFirst
    For i = 1 To Rs2.RecordCount
        If Rs2("窗体ID") = FormID Then
            '把窗体名称赋予FormName变量
            FormName = Rs2("窗体名称")
        Else
            Rs2.MoveNext
        End If
    Next i
    '判断用户是否有权限打开窗体,blnOpen为“真”有权限
    If blnOpen = False Then
        '如果用户没有权限,则弹出“无权使用”窗口
        MsgBox "您没有权限使用" & "“" & FormName & "”窗体", vbCritical, "无权使用"
    Else
        '使用DoCmd对象OpenForm的方法打开FormName窗体
        DoCmd.OpenForm FormName, acNormal, , , , acWindowNormal
    End If
    '释放记录集空间
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    Exit Function
Err_OpenForm:
    '释放记录集空间
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    '弹出“窗体打开错误”信息窗口
    MsgBox Err.Description, vbOKOnly, "窗体打开错误"
End Function

 

Top
vious 发表于:2021-03-23 17:20:22
增加引用:Microsoft ActiveX Date Objects 2.8 Liberty以上

总记录:1篇  页次:1/1 9 1 :