问一个Access的简单问题

Javaxhb 2004-11-20 11:10:28
我建了一个数据库和一些窗体,我已经设定了一个启动窗体,我如何才能实现用户只看到启动窗体,并可以对窗体进行操作,我如何实现客户不能看到里面的数据,表,和查询等,是不是生成.MDE就可以实现?
...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复
我以前用过Access的安装程序,很不爽,所以一般需要你在那台机子上装Access,然后把你屏蔽掉Shift键后生成的MDE直接拷过去就行了。
另外,若mde名字为mydb,且同目录下存在一个同名的mydb.bmp文件,必须是bmp格式,其他格式不管用,会以此图片替换Access的默认启动图片!
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复
上面代码是从一个程序中拷出来的,可能有些问题,请使用如下代码:
为了防止锁定一个MDB后,无法解锁,可以做一个第三方程序,用来加锁、解锁MDB,
其中Set dbs = CurrentDb
要换成Set dbs = DBEngine(0).OpenDatabase(Me.txtPath)

Public Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer

Dim dbs As DAO.Database, prp As Variant
Const conPropNotFoundError = 3270
On Error GoTo myHandle

Set dbs = CurrentDb

On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Property not found.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
myHandle:
If Err.Number = 3024 Then
MsgBox "·¾¶ÊäÈë²»ÕýÈ·£¡", vbInformation, "°²È«¹ÜÀí"
Else
MsgBox Err.Number & Err.Description
End If

End Function


'加锁
Public Sub Lock_MDB()
Const DB_Boolean As Long = 1

ChangeProperty "StartupShowDBWindow", DB_Boolean, False
ChangeProperty "StartupShowStatusBar", DB_Boolean, True
ChangeProperty "AllowShortcutMenus", DB_Boolean, False
ChangeProperty "AllowToolbarChanges", DB_Boolean, False
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, False
ChangeProperty "AllowFullMenus", DB_Boolean, False
ChangeProperty "AllowBreakIntoCode", DB_Boolean, False
ChangeProperty "AllowSpecialKeys", DB_Boolean, False
ChangeProperty "AllowBypassKey", DB_Boolean, False
MsgBox "Locked"
End Sub

'解锁
Public Sub Un_lock_MDB()

Const DB_Boolean As Long = 1

ChangeProperty "StartupShowDBWindow", DB_Boolean, True
ChangeProperty "StartupShowStatusBar", DB_Boolean, True
ChangeProperty "AllowShortcutMenus", DB_Boolean, True
ChangeProperty "AllowToolbarChanges", DB_Boolean, True
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, True
ChangeProperty "AllowFullMenus", DB_Boolean, True
ChangeProperty "AllowBreakIntoCode", DB_Boolean, True
ChangeProperty "AllowSpecialKeys", DB_Boolean, True
ChangeProperty "AllowBypassKey", DB_Boolean, True
MsgBox "Unlocked"
End Sub

Javaxhb 2004-11-21
  • 打赏
  • 举报
回复
问最后一个问题,马上结帖,这样的.MDE能不能象VB一样做一个安装程序,安装一下就可以在别的机子上运行?还是直接把.MDE文件拷贝到别的机子上就可以运行?
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复
这是在MDB中用的,ADP的与此有些差别!
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复
注意:加锁前先备份,以免加锁后,无解锁入口!
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复



Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer

Dim dbs As DAO.Database, prp As Variant
Const conPropNotFoundError = 3270
On Error GoTo myHandle
Set dbs = DBEngine(0).OpenDatabase(Me.txtPath)

'Set dbs = CurrentDb

On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Property not found.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
myHandle:
If Err.Number = 3024 Then
MsgBox "路径输入不正确!", vbInformation, "安全管理"
Else
MsgBox Err.Number & Err.Description
End If

End Function


'加锁:
public sub Lock()
Const DB_Boolean As Long = 1

ChangeProperty "StartupShowDBWindow", DB_Boolean, False
ChangeProperty "StartupShowStatusBar", DB_Boolean, True
ChangeProperty "AllowShortcutMenus", DB_Boolean, False
ChangeProperty "AllowToolbarChanges", DB_Boolean, False
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, False
ChangeProperty "AllowFullMenus", DB_Boolean, False
ChangeProperty "AllowBreakIntoCode", DB_Boolean, False
ChangeProperty "AllowSpecialKeys", DB_Boolean, False
ChangeProperty "AllowBypassKey", DB_Boolean, False
msgbox "Locked"
end

'解锁:
public sub UnLock()
Const DB_Boolean As Long = 1

ChangeProperty "StartupShowDBWindow", DB_Boolean, True
ChangeProperty "StartupShowStatusBar", DB_Boolean, True
ChangeProperty "AllowShortcutMenus", DB_Boolean, True
ChangeProperty "AllowToolbarChanges", DB_Boolean, True
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, True
ChangeProperty "AllowFullMenus", DB_Boolean, True
ChangeProperty "AllowBreakIntoCode", DB_Boolean, True
ChangeProperty "AllowSpecialKeys", DB_Boolean, True
ChangeProperty "AllowBypassKey", DB_Boolean, True
msgbox "Unlocked"
end sub
Javaxhb 2004-11-21
  • 打赏
  • 举报
回复
怎么屏蔽掉Shift键?在线等!
OracleRoob 2004-11-21
  • 打赏
  • 举报
回复
可以屏蔽掉Shift键!
swank_tc 2004-11-21
  • 打赏
  • 举报
回复
生成Mde后,用户在打开时按住Shift一样可以看到里面的数据表、报表、查询等内容,只是用户不能对窗体和表结构进行更改而以!

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧