我有一个 Access 2007 应用程序,我正在更新它以便能够在 2007 和 2010 上运行。在 2007 年,我使用表单功能区属性,但在 2010 年,我需要创建一个关闭后台的默认功能区。我已经这样做了,但是当应用程序检测到它在 2010 年而不是 2007 年运行时,它也需要将其设置为默认值。加载自定义 UI 不起作用。它会加载它,但不会将功能区设置为默认值。我知道我可以使用 database.properties 函数设置默认启动表单和其他属性。但我需要知道应用程序默认功能区的属性名称。有谁知道房产名称?
问问题
1582 次
2 回答
2
我认为您要查找的数据库属性的名称是:CustomRibbonId
这是一些将数据库属性列表输出到调试窗口的代码。
Private Sub EnumerateDatabaseProperties()
On Error Resume Next
Dim p1 As DAO.Property, s1 As String
For Each p1 In CurrentDb.Properties
s1 = p1.Name
s1 = s1 & "=" & p1.value
Debug.Print s1
Next p1
End Sub
请注意,如果数据库属性不存在,它可能不会出现在输出中,而不是仅仅出现在没有值的输出中。
于 2012-08-13T14:47:08.467 回答
0
首先,我们需要一种强大的方法来设置数据库属性。
Public Sub SetCurrentDBProperty(ByVal propertyName As String, ByVal newValue As Variant, Optional ByVal prpType As Long = dbText)
Dim thisDBs As Database
Set thisDBs = CurrentDb
Dim wasFound As Boolean
' Look for property in collection
Dim thisProperty As Object ' DAO.Property
For Each thisProperty In thisDBs.Properties
If thisProperty.Name = propertyName Then
' Check for matching type
If thisProperty.Type <> prpType Then
' Remove so we can add it back in with the correct type.
thisDBs.Properties.Delete propertyName
Exit For
End If
wasFound = True
' Skip when no change is required
If thisProperty.Value = newValue Then
Exit For
Else
' Update value
thisProperty.Value = newValue
End If
End If
Next thisProperty
If Not wasFound Then
' Add new property
Set thisProperty = thisDBs.CreateProperty(propertyName, prpType, newValue)
thisDBs.Properties.Append thisProperty
End If
End Sub
然后给定一个示例功能区名称,Runtime
您可以像这样调用属性设置器:
Public Sub SetRuntimeRibbon()
SetCurrentDBProperty "CustomRibbonID", "Runtime"
End Sub
于 2021-08-02T16:55:34.473 回答