似乎无法在VBA中使用具有属性的接口,我无法解决原因

时间:2015-02-11 10:45:29

标签: vba ms-access access-vba

免责声明:我对PHP,Java和VBA有一些经验,但我主要是一名前端开发人员,所以Javascript更属于我。

我正在尝试创建一些在MS Access数据库中实现接口的类,我甚至无法使该概念起作用。

我有什么:

IFeed Class(接口)

Option Explicit
Public Name As String

Public Property Get Name() As String
End Property

Public Property Let Name(ByVal vNewValue As String)
End Property

CFeed Class

Option Explicit

Implements IFeed

Private Name As String

Private Property Let IFeed_Name(ByVal newName As String)
    Name = newName
End Property

Private Property Get IFeed_Name() As String
    IFeed_Name = Name
End Property

测试模块

Public Sub testFeedClass()
    Dim test As CFeed
    Set test = New CFeed
    test.Name = "New Feed" ' Doesn't work
    Debug.Print test.Name
End Sub

我花了将近一天的时间将私人公共场所改为公共场所,公共场所改为私人场所以及大量其他事情,但我无法让它发挥作用。有人可以指出我哪里出错了吗?我确信这很简单。

1 个答案:

答案 0 :(得分:3)

在VBA中,已实现接口的成员不会将其置于类对象本身中,例如他们用C#的implicit interface implementation

要使用已实现的接口,您需要将对象强制转换为该接口:

Dim test As IFeed
Set test = New CFeed
test.Name = "New Feed"