Ms access MS访问属性
在哪里可以找到MS Access属性的本机列表,可通过以下方式获得:Ms access MS访问属性,ms-access,vba,Ms Access,Vba,在哪里可以找到MS Access属性的本机列表,可通过以下方式获得: CurrentDb.Properties("Property_Name_Here") 比如说,, 我知道 AppTitle可用于访问应用程序的标题 AppIcon可用于访问应用程序所用图标的路径 对于不同的版本,我确信有不同的属性。有按版本列出的列表吗?例如,MS Access 2003具有以下属性。。。虽然MS Access 2007具有这些属性。。。等等。我不相信任何地方都有这个列表。因此,Properties属性
CurrentDb.Properties("Property_Name_Here")
比如说,,
我知道
- AppTitle可用于访问应用程序的标题
- AppIcon可用于访问应用程序所用图标的路径
对于不同的版本,我确信有不同的属性。有按版本列出的列表吗?例如,MS Access 2003具有以下属性。。。虽然MS Access 2007具有这些属性。。。等等。我不相信任何地方都有这个列表。因此,Properties属性是一个集合。您可以对它们进行迭代,并获得所有相关的。您必须在所有感兴趣的MS Access版本中执行此操作。
为了进一步说明,几乎所有的内部对象,例如表、字段、查询等都有属性。字段属性特别有用,因为您可以为用户指定MS Access链接和显示字段的方式。很难找到此类信息
我确实找到了访问定义DAO属性的链接有一个属性集合:
Sub ListProps()
For i = 0 To CurrentDb.Properties.Count - 1
Debug.Print CurrentDb.Properties(i).Name
Next
End Sub
这样行吗?:)
选项比较数据库
选项显式
私有子btnShowDbProps_Click()
在出现错误时转到Err\u btnShowDbProps\u单击
Dim prp作为DAO.Property
dimdbs作为数据库
作为字符串的Dim strProps
设置dbs=CurrentDb
对于dbs.Properties中的每个prp
像弦一样暗的本体
propval=“”
出错时继续下一步
propval=CStr(prp.值)
如果propval=vbNullString,则propval=“”
strProps=strProps&prp.Name&“=”&propval&“(“&PropertyType(prp.Type)&”)”&vbNewLine
调试。打印strProps
下一个
MsgBox strProps
退出\u btnShowDbProps\u单击:
出口接头
错误\u btnShowDbProps\u单击:
MsgBox错误说明
继续退出\u btnShowDbProps\u单击
端接头
函数属性类型(intType为整数)为字符串
选择案例类型
Case-dbBoolean
PropertyType=“dbBoolean”
大小写字节
PropertyType=“dbByte”
Case dbInteger
PropertyType=“dbInteger”
案例dbLong
PropertyType=“dbLong”
Case dbCurrency
PropertyType=“dbCurrency”
单格格
PropertyType=“dbSingle”
案例dbDouble
PropertyType=“dbDouble”
案例日期
PropertyType=“dbDate”
案例dbText
PropertyType=“dbText”
案例dbLongBinary
PropertyType=“dbLongBinary”
案例dbMemo
PropertyType=“dbMemo”
案例dbGUID
PropertyType=“dbGUID”
其他情况
PropertyType=“未知:”&intType
结束选择
端函数
Wow,我几年前就可以使用这个列表了。为什么要使用计数器而不是属性变量,这样就可以使用FOR/EACH循环,这样代码更少,涉及的值查找也更少?是的,Remou:你没有显式地将Sub声明为Public,ListProps的名称也太模糊了。您没有使变量i变暗,所以您只是假设忽略了Option Explicit,这只会鼓励不良做法。与CurrentDb.Properties……和Debug.Print一起使用会更有效。打印不能很好地替代正确的日志记录。你只是没把这件事想清楚,是不是。。。?是的,我的舌头牢牢地插在了脸颊上:)为了补充这些答案,似乎有些属性类型作为DAO.DataTypeEnum返回,而另一些属性类型作为VBA.vbVarType返回,具体取决于父对象类型。例如,这与巴兰伯的答案有关。见:
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