Office中国论坛/Access中国论坛

标题: 下面的代码做出的结果是我打开的所有窗体都是数据表模式,但我只有部分需要, [打印本页]

作者: wangf    时间: 2007-1-12 16:43
标题: 下面的代码做出的结果是我打开的所有窗体都是数据表模式,但我只有部分需要,
下面的代码做出的结果是我打开的所有窗体都是数据表模式,但我只有部分需要,

各位可不可以帮我改一下,

需求=窗体模式or数据表模式

Dim stDocName As String
    Dim stLinkCriteria As String


    stDocName = "窗体名称"
    DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria

[此贴子已经被作者于2007-1-12 8:44:02编辑过]


作者: 一点通    时间: 2007-1-12 16:56
要想在一段代码中完成不同的显示方式,必须先进行判断哪些窗体是什么显示方式才能实现的
作者: wangf    时间: 2007-1-12 19:12
修改后提示,没有块IF,或END IF

(我是第一次用代码,尚在学习当中,如果有类似小儿科的问题,也请大家帮忙耐心指教)

谢谢!!)

Function OpenForm(FormID As Integer)
On Error GoTo Err_OpenForm
Dim stLinkCriteria As String
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, acFormDS, , stLinkCriteria
    If FormName = ("每日输入") Then
    If FormName = ("权限管理") Then
        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



作者: wangf    时间: 2007-1-13 00:03
谁能帮我一下??

我写了好几次,总是提示不对。

我实在实在不行了???


作者: wangf    时间: 2007-1-13 16:21
没有人能帮我吗?


作者: wangf    时间: 2007-3-8 18:03
1
作者: hi-wzj    时间: 2007-3-8 23:16
条件语句是这样书写的:

if .....then ......

或者:

if ..... then

......

end if

或者:

if ..... then

......

else

......

end if

您仔细查看哪段是否缺少了end if 语句了?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3