Office中国论坛/Access中国论坛
标题: 在主窗体中,打开第二个和第三个窗体时,可以是数据表模式的吗 [打印本页]
作者: wangf 时间: 2007-1-10 23:06
标题: 在主窗体中,打开第二个和第三个窗体时,可以是数据表模式的吗
在主窗体中,打开第二个和第三个窗体时,可以是数据表模式的吗??
怎么修改??
请大家帮个忙!谢谢谢谢!!!!
[attach]22563[/attach]
作者: wangf 时间: 2007-1-10 23:08
大家帮帮忙吧,我做好久都不行,原先的窗体都是数据表模式的,怎么一用按键就不行了???
作者: 一点通 时间: 2007-1-10 23:49
增加红色部份代码
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "窗体名称"
DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria
作者: wangf 时间: 2007-1-11 00:21
SORRY!,好像不行,是不是我加错地方了,
对不起,我是比较笨的那种,能不能帮我改一下,如果有时间再告诉我,哪里错的,原因何在??
谢谢!!!
作者: 一点通 时间: 2007-1-11 00:37
将示例简化,只保留问题部份,重传!
作者: wangf 时间: 2007-1-11 16:26
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编辑过]
作者: wangf 时间: 2007-1-11 19:52
一点通版主,我把acFormDS,加入了红色部份是吧,可是提示不对啊
作者: 一点通 时间: 2007-1-11 20:06
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
作者: wangf 时间: 2007-1-12 00:05
提示编绎错误,
变量未定义!
作者: wangf 时间: 2007-1-12 00:09
顺道问一句:“Dim stLinkCriteria As String”
作用是什么??可以解释一下吗?
改是改了,可是,每个打开的窗体都是数据模式了,
我大部分窗体都不是数据模式呀!
[此贴子已经被作者于2007-1-11 16:21:42编辑过]
作者: wangf 时间: 2007-1-12 00:14
顺道问一句:“Dim stLinkCriteria As String”
作用是什么??可以解释一下吗?
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |