vba - 从 DLL 创建具有现有名称的类方法
问题描述
我来自这篇文章:使用已经存在的名称创建类方法,我在其中解释说我需要使代码与 MS Access 和 PostgreSQL 兼容。我的第一个想法是为 PostgreSQL 支持创建一个新类并重写以前使用的函数。带来的解决方案可以工作,但问题是 MS Access 数据库类是从 DLL ( Microsoft Shared\DAO\dao360.dll
, DAO.DBEngine
) 加载的。如何接口或覆盖那些 DLL 函数并摆脱这个“检测到模糊名称”错误?
解决方案
正如您在第一篇文章的回答中所说,您可以使用“工具”功能来执行此操作。如果没有更多详细信息和您的代码,就很难说出您的问题出在哪里。
IDatabase可能看起来像这样
Option Explicit
Sub OpenDB(fileName As String)
End Sub
Function ReadData(lngNr As Long) As String
End Function
像这样的clsAccess
Option Explicit
Implements IDatabase
Dim m_Dbs As DAO.Database
Dim m_Rcd As DAO.Recordset
Dim m_Filename As String
Sub IDatabase_OpenDB(fileName As String)
m_Filename = fileName
Set m_Filename = OpenDatabase(m_Filename, , True)
End Sub
Function IDatabase_ReadData(lngNr As Long) As String
Set m_Rcd = m_dbs.OpenRecordset("qryTable", dbOpenSnapshot)
m_Rcd.Move lngNr - 1
IDatabase_ReadData = m_Rcd.Fields("fldName").Value
m_Rcd.Close
End Function
您需要在工具/参考中添加参考。
推荐阅读
- sql - 计算 AWS Athena 表中每个组的中位数
- java - 在 Spring Boot RestController 中区分带有查询参数的端点与没有查询参数的端点
- python - 如何为某个用户打开一个窗口 discord.py
- python - 安装 EmoPY 要求的问题
- python - 如何替换和添加对象到列表python
- directx - DirectX 11 应用程序在非前台应用程序时显着减慢
- python - Matplotlib - 从 DataFrame 绘制不均匀的步骤
- assembly - LMC中未知数量的输入的最大值/最小值?
- java - 线程“main”中的异常 java.util.IllegalFormatPrecisionException: 2,试图修复格式但没有工作 jGRASP
- git - 当我在一个小组项目上工作时撤消未推送的提交的正确方法是什么 - SourceTree