首页 > 解决方案 > 从 DLL 创建具有现有名称的类方法

问题描述

我来自这篇文章:使用已经存在的名称创建类方法,我在其中解释说我需要使代码与 MS Access 和 PostgreSQL 兼容。我的第一个想法是为 PostgreSQL 支持创建一个新类并重写以前使用的函数。带来的解决方案可以工作,但问题是 MS Access 数据库类是从 DLL ( Microsoft Shared\DAO\dao360.dll, DAO.DBEngine) 加载的。如何接口或覆盖那些 DLL 函数并摆脱这个“检测到模糊名称”错误?

标签: vbams-access

解决方案


正如您在第一篇文章的回答中所说,您可以使用“工具”功能来执行此操作。如果没有更多详细信息和您的代码,就很难说出您的问题出在哪里。

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

您需要在工具/参考中添加参考。


推荐阅读