vba - 在 VBA 中处理属性内数据输入错误的最佳方法是什么?
问题描述
在ModelClass的Property Let中,我想知道就每个数据输入错误向客户端类(ViewClass)提供建议的最佳方法是什么。
请找到ModelClass示例代码,如下:
Option Compare Database
Option Explicit
Private m_idCompra As String
Public Property Get codCompra() As String
codCompra = m_idCompra
End Property
Public Property Let codCompra(ByVal codigoCompra As String)
'Data entry roughly treated, just to illustrate.
If Len(codigoCompra) = 0 Then
'Advice ViewClass somehow
ElseIf Not IsNumeric(codigoCompra) Then
'Advice ViewClass somehow
'Elseif...
Else
m_idCompra = codigoCompra
'Advice ViewClass somehow
End If
End Property
m_idCompra必须是String类型,在这种情况下。
提前致谢。
解决方案
对于类似的情况,我添加了如下方法:
Public Function SetCompra(ByVal codigoCompra As String) As Boolean
Dim Valid As Boolean
Valid = IsValidCompra(codigoCompra)
If Valid Then
' Set property.
m_idCompra = codigoCompra
Else
' Raise error or pop message box.
End If
SetCompra = Valid
End Function
Public Function IsValidCompra(ByVal codigoCompra As String) As Boolean
Dim Valid As Boolean
If <your validation rules> = True Then
Valid = True
End If
IsValidCompra = Valid
End Function
推荐阅读
- javascript - 如何向 JavaScript Date 对象添加年、月、日、小时、分钟或秒?
- r - 用 R 中的 data.table 用前一列和特定条件填充 NA
- foreach - NetLogo:跳出嵌套的 foreach 循环
- vue.js - 是否可以更改 swipe.js svg 箭头图像?
- xaml - 无论方向如何,如何为我的签名板设置恒定高度?
- debugging - TYPO3 旧扩展更新使用“退出”:好还是不好?
- mysql - 生成时间序列报告
- apache-kafka - 卡夫卡服务器没有启动
- r - 是否有充分的理由使用 `sort` 和 `index.return = TRUE` 而不是 `order`?
- python - Python + 正则表达式:如何在 Python 中提取两个下划线之间的值?