ADOX的GetPermissions方法为什么对于具有打开/运行权限设置的Access表单返回0?
创始人
2024-07-28 18:31:09
0

这个问题可能是由于ADOX不是用作访问控制的最佳工具所致。此外,某些权限对Access表单没有什么意义。您可以尝试使用DAO来获取表单权限,例如以下示例代码:

Dim db As DAO.Database
Dim frm As DAO.Form
Set db = CurrentDb()
Set frm = db.Containers("Forms").Documents("MyForm")
Debug.Print frm.Properties("AllowAdditions").Value

该代码将输出“-1”(True)或“0”(False),这取决于表单是否允许添加。您可以根据表单的属性(例如,AllowDeletions、AllowEdits等)检查其他权限。

如果您仍然希望使用ADOX,可以尝试使用权限枚举的方式,如下面的示例代码所示:

Dim cn As ADODB.Connection
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim rs As ADODB.Recordset
Set cn = CurrentProject.Connection
Set cat = New ADOX.Catalog
cat.ActiveConnection = cn
Set tbl = cat.Tables("MyForm")
Set rs = tbl.GetPermissions
Debug.Print rs.Fields("Permission").Value

该代码将输出该表单的权限标志(例如,0x00000001表示SELECT权限)。

综上所述,使用DAO可以更可靠地获取Access表单的权限。

相关内容

热门资讯

Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...
Aksnginxdomainb... 在AKS集群中,可以使用Nginx代理服务器实现根据域名进行路由。以下是具体步骤:部署Nginx i...
AddSingleton在.N... 在C#中创建Singleton对象通常是通过私有构造函数和静态属性来实现,例如:public cla...
Alertmanager中的基... Alertmanager中可以使用repeat_interval选项指定在一个告警重复发送前必须等待...