Ms access 使用VBA可以更改哪些Access启动属性
我有一个应用程序,它使用以下过程来更改一些当前的DB属性Ms access 使用VBA可以更改哪些Access启动属性,ms-access,ms-access-2007,vba,Ms Access,Ms Access 2007,Vba,我有一个应用程序,它使用以下过程来更改一些当前的DB属性 Public Sub SetStartupOptions(propname As String, propdb As Variant, prop As Variant) On Error GoTo Err_SetStartupOptions 'Set passed startup property. 'some of the startup properties you can use... ' "StartupShowD
Public Sub SetStartupOptions(propname As String, propdb As Variant, prop As Variant)
On Error GoTo Err_SetStartupOptions
'Set passed startup property.
'some of the startup properties you can use...
' "StartupShowDBWindow", DB_BOOLEAN, False
' "StartupShowStatusBar", DB_BOOLEAN, False
' "AllowBuiltinToolbars", DB_BOOLEAN, False
' "AllowFullMenus", DB_BOOLEAN, False
' "AllowBreakIntoCode", DB_BOOLEAN, False
' "AllowSpecialKeys", DB_BOOLEAN, False
' "AllowBypassKey", DB_BOOLEAN, False
Dim dbs As Object
Dim prp As Object
Set dbs = CurrentDb
If propname = "DBOpen" Then
dbs.Properties("AllowBreakIntoCode") = prop
dbs.Properties("AllowSpecialKeys") = prop
dbs.Properties("AllowBypassKey") = prop
dbs.Properties("AllowFullMenus") = prop
dbs.Properties("StartUpShowDBWindow") = prop
Else
dbs.Properties(propname) = prop
End If
Set dbs = Nothing
Set prp = Nothing
Exit_SetStartupOptions:
Exit Sub
Err_SetStartupOptions:
Select Case Err.Number
Case 3270
Set prp = dbs.CreateProperty(propname, propdb, prop)
Resume Next
Case Else
Dim ErrAns As Integer, ErrMsg As String
If ErrChoice = vbYesNoCancel Then
ErrMsg = Err.Description & ": " & Str(Err.Number) & vbNewLine & "Press 'Yes' to resume next;" & vbCrLf & _
"'No' to Exit Procedure." & vbCrLf & "or 'Cancel' to break into code"
Else
ErrMsg = Err.Description & ": " & Str(Err.Number) & vbNewLine & "Press 'Yes' to resume next;" & vbCrLf & _
"'No' to Exit Procedure."
End If
ErrAns = MsgBox(ErrMsg, _
vbCritical + vbQuestion + ErrChoice, "SetStartupOptions")
If ErrAns = vbYes Then
Resume Next
ElseIf ErrAns = vbCancel Then
On Error GoTo 0
Resume
Else
Resume Exit_SetStartupOptions
End If
End Select
End Sub
过程可用于添加和设置DB.properties的值,这些是在访问选项屏幕中设置的属性。我有一个有限的财产名称列表,但是,有人知道我在哪里可以找到被识别的财产的完整列表吗?(即启动窗体名称、启动功能区名称等)您可以使用非常简单的过程列出运行代码时存在的数据库的所有属性,如图所示
Public Sub ListDBProps()
Dim db As Database
Dim prp As Property
Set db = CurrentDb
For Each prp In db.Properties
Debug.Print prp.Name
Next prp
End Sub
这里面有两个陷阱。请注意,我说的是“在运行代码时存在”。也就是说,Access根据“需要”为数据库(以及其他对象)创建属性。例如,当您将数据库编译成以前称为MDE,现在称为ACCDE时,Access将添加一个名为“MDE”的“Text”[10]类型的新属性,其值为“T”。您提供的列表中有几个属性也属于这一类别,例如“AllowBypassKey”和“AllowBreakIntoCode”
下面是我在打开的一个简单数据库上运行此代码时得到的列表:名称
连接
交易记录
可更新的
排序顺序
查询超时
版本
记录受影响
复制ID
DesignMasterID
连接
ANSI查询模式
主题表单控件
访问版本
导航窗格类别
UseMDIMode
ShowDocumentTabs
构建
CheckTruncatedNumFields
项目
StartUpShowDBWindow
StartUpShowStatusBar
AllowShortcutMenus
全部菜单
AllowBuiltInToolbars
AllowToolbarChanges
允许特殊密钥
使用appiconformrpt
AllowDatasheetSchema
显示值限制
在索引中显示值
以非索引方式显示值
在远程模式下显示值
自动压缩
使用数据进行设计
图片属性存储格式
导航窗格已关闭
导航窗格宽度
导航窗格查看方式
导航窗格排序依据
曲目名称自动更正信息
执行名称自动更正
HasOfflineList
您可以很容易地将Type属性添加到输出中。它是与DataTypeEnum枚举相对应的整数值。属性的Value属性可能更复杂一些。通常,它是一个可以轻松转换为字符串值的值,但当您试图打印它们或将它们存储在字符串变量中时,有两个值会导致运行时错误。在一个小函数中进行一点错误处理就可以轻松地处理它 我的示例是在MicrosoftAccess2007中的ACCDB上运行的 享受。道格这里也有一些注释。