【问题标题】:MS Access PropertiesMS 访问属性
【发布时间】:2009-03-30 19:09:44
【问题描述】:

在哪里可以找到可用的 MS Access 属性的本地列表:

 CurrentDb.Properties("Property_Name_Here")

例如, 我知道;

  • AppTitle 可用于访问应用程序的标题
  • AppIcon 可用于访问应用程序所用图标的路径

对于不同的版本,我确信有不同的属性。有按版本列出的吗?例如,MS Access 2003 具有这些属性...而 MS Access 2007 具有这些属性...等等。

【问题讨论】:

  • 为了补充这些答案,根据父对象类型,似乎某些属性类型以 DAO.DataTypeEnum 形式返回,而另一些则以 VBA.vbVarType 形式返回。例如,这与 Ballamber 的回答有关。见:stackoverflow.com/questions/27682177/…

标签: ms-access vba


【解决方案1】:

我不相信任何地方都有清单。寿,Properties 属性是一个集合。您可以遍历它们并获取所有关联的。您必须对您感兴趣的所有 MS Access 版本执行此操作。 进一步阐述,几乎所有的内部对象,例如表、字段、查询等具有属性。字段属性特别有用,因为您可以指定 MS Access 如何链接和向用户显示字段。

【讨论】:

    【解决方案2】:

    有一个属性集合:

    Sub ListProps()
        For i = 0 To CurrentDb.Properties.Count - 1
            Debug.Print CurrentDb.Properties(i).Name
        Next
    End Sub
    

    【讨论】:

    • 为什么要使用计数器而不是属性变量,这样您就可以使用 FOR/EACH 循环,这样代码更少并且涉及的值查找更少?
    • 是的,Remou:您没有明确将 Sub 声明为 Public,ListProps 的名称太模糊。您没有将变量 i 调暗,因此您只是假设省略了 Option Explicit,这只是在鼓励不良做法。使用 With CurrentDb.Properties 会更有效...
    • ...而 Debug.Print 不能很好地替代正确的日志记录。你只是没有想到这一点,是吗……?是的,我的舌头牢牢地嵌入脸颊:)
    【解决方案3】:

    很难找到这样的信息。

    我确实找到了访问定义的 DAO 属性的链接 here

    【讨论】:

    • 哇,我几年前就可以使用该列表了。
    【解决方案4】:

    这样可以吗? :)

    Option Compare Database
    Option Explicit
    
    Private Sub btnShowDbProps_Click()
    On Error GoTo Err_btnShowDbProps_Click
    
      Dim prp As DAO.Property
      Dim dbs As Database
      Dim strProps As String
    
      Set dbs = CurrentDb
    
      For Each prp In dbs.Properties
        Dim propval As String
        propval = "<not defined>"
    
        On Error Resume Next
        propval = CStr(prp.value)
    
        If propval = vbNullString Then propval = "<empty>"
    
        strProps = strProps & prp.Name & "=" & propval & " (" & PropertyType(prp.Type) & ")" & vbNewLine
        Debug.Print strProps
      Next
    
      MsgBox strProps
    
    Exit_btnShowDbProps_Click:
        Exit Sub
    
    Err_btnShowDbProps_Click:
        MsgBox Err.Description
        Resume Exit_btnShowDbProps_Click
    
    End Sub
    
    Function PropertyType(intType As Integer) As String
    
       Select Case intType
          Case dbBoolean
             PropertyType = "dbBoolean"
          Case dbByte
             PropertyType = "dbByte"
          Case dbInteger
             PropertyType = "dbInteger"
          Case dbLong
             PropertyType = "dbLong"
          Case dbCurrency
             PropertyType = "dbCurrency"
          Case dbSingle
             PropertyType = "dbSingle"
          Case dbDouble
             PropertyType = "dbDouble"
          Case dbDate
             PropertyType = "dbDate"
          Case dbText
             PropertyType = "dbText"
          Case dbLongBinary
             PropertyType = "dbLongBinary"
          Case dbMemo
             PropertyType = "dbMemo"
          Case dbGUID
             PropertyType = "dbGUID"
          Case Else
             PropertyType = "Unknown:" & intType
       End Select
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 2019-02-18
      • 2017-03-16
      • 2013-12-23
      • 2013-07-11
      相关资源
      最近更新 更多