代码之家  ›  专栏  ›  技术社区  ›  jcrizk

对象模块需要为接口“~”实现“~”

  •  2
  • jcrizk  · 技术社区  · 6 年前

    所以我试着按照这些问题作为指导:

    每当我单击窗体上的控件时,都会出现以下错误:

    这是我的界面:

    iTransactionRecord

    选项比较数据库
    选项显式
    
    公共属性get transaction_date()as date
    端部特性
    < /代码> 
    
    

    这是我的课:

    ledgerrecord

    选项比较数据库
    选项显式
    
    实现ITransactionRecord
    
    从接口
    私人交易日期
    
    私有属性get itransactionrecord_transaction_date()as date
    itransactionrecord_transaction_date=交易日期
    端部特性
    
    公共属性get transaction_date()as date
    交易日期=交易日期
    端部特性
    
    公共财产出租交易日期(ByVal NewTransaction日期为日期)
    tttransaction_date=cdate(格式((newtransaction_date),“m/d/yyyy”))
    端部特性
    < /代码> 
    
    

    transferrecord

    选项比较数据库
    选项显式
    
    实现ITransactionRecord
    
    从接口
    私人交易日期
    
    私有属性get itransactionrecord_transaction_date()as date
    itransactionrecord_transaction_date=交易日期
    端部特性
    
    
    
    
  • How to use comparison methods between class object modules in VBA in a similar manner as VB.NET?
  • error_msg

    Option Compare Database
    Option Explicit
    
    Public Property Get TRANSACTION_DATE() As Date
    End Property
    

    Option Compare Database
    Option Explicit
    
    Implements ITransactionRecord
    
    'from interface
    Private tTRANSACTION_DATE As Date
    
    Private Property Get ITransactionRecord_TRANSACTION_DATE() As Date
        ITransactionRecord_TRANSACTION_DATE = TRANSACTION_DATE
    End Property
    
    Public Property Get TRANSACTION_DATE() As Date
        TRANSACTION_DATE = tTRANSACTION_DATE
    End Property
    
    Public Property Let TRANSACTION_DATE(ByVal newTRANSACTION_DATE As Date)
        tTRANSACTION_DATE = CDate(Format((newTRANSACTION_DATE), "m / d / yyyy"))
    End Property
    

    
    
    
    
    
    

    1 回复  |  直到 6 年前
        1
  •  3
  •   Mathieu Guindon    6 年前
    Public Property Get TRANSACTION_DATE() As Date
    End Property
    

    在VBA中,公共接口成员名称中不能有下划线,因为这样会得到:

    Private Property Get ITransactionRecord_TRANSACTION_DATE() As Date
    

    而vba与这两个下划线混淆,它只需要一个下划线;在vba中,实现接口成员(或处理事件源的事件)的成员将是名为 [Source]_[MemberName] : _ 下划线字符在接口成员的签名中具有语法意义,至少在任何表示要由其他人实现的类中,都应该小心使用它。

    将属性重命名为 帕斯卡命名法 TransactionDate 然后问题就消失了:

    Public Property Get TransactionDate() As Date
    End Property
    
    Private Property Get ITransactionRecord_TransactionDate() As Date