Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用VBA可以更改哪些Access启动属性_Ms Access_Ms Access 2007_Vba - Fatal编程技术网

Ms access 使用VBA可以更改哪些Access启动属性

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

我有一个应用程序,它使用以下过程来更改一些当前的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...
  ' "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上运行的

享受。道格

这里也有一些注释。