设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1547|回复: 10
打印 上一主题 下一主题

[窗体] 在主窗体中,打开第二个和第三个窗体时,可以是数据表模式的吗

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-10 23:06:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


在主窗体中,打开第二个和第三个窗体时,可以是数据表模式的吗??

怎么修改??

请大家帮个忙!谢谢谢谢!!!!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2007-1-10 23:08:00 | 只看该作者
大家帮帮忙吧,我做好久都不行,原先的窗体都是数据表模式的,怎么一用按键就不行了???
3#
发表于 2007-1-10 23:49:00 | 只看该作者
增加红色部份代码

   Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "窗体名称"
    DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria
4#
 楼主| 发表于 2007-1-11 00:21:00 | 只看该作者
SORRY!,好像不行,是不是我加错地方了,

对不起,我是比较笨的那种,能不能帮我改一下,如果有时间再告诉我,哪里错的,原因何在??

谢谢!!!

5#
发表于 2007-1-11 00:37:00 | 只看该作者
将示例简化,只保留问题部份,重传!
6#
 楼主| 发表于 2007-1-11 16:26:00 | 只看该作者
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


要求打开窗体可以是数据表模式,


[此贴子已经被作者于2007-1-11 8:30:36编辑过]

7#
 楼主| 发表于 2007-1-11 19:52:00 | 只看该作者
一点通版主,我把acFormDS,加入了红色部份是吧,可是提示不对啊
8#
发表于 2007-1-11 20:06:00 | 只看该作者
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
    End If
    '释放记录集空间
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    Exit Function
Err_OpenForm:
    '释放记录集空间
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    '弹出“窗体打开错误”信息窗口
    MsgBox Err.Description, vbOKOnly, "窗体打开错误"
End Function
9#
 楼主| 发表于 2007-1-12 00:05:00 | 只看该作者
提示编绎错误,

变量未定义!
10#
 楼主| 发表于 2007-1-12 00:09:00 | 只看该作者
顺道问一句:“Dim stLinkCriteria As String”



作用是什么??可以解释一下吗?

改是改了,可是,每个打开的窗体都是数据模式了,

我大部分窗体都不是数据模式呀!

[此贴子已经被作者于2007-1-11 16:21:42编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-9 12:23 , Processed in 0.139873 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表