在ModelClass中的Property Let中,我想知道什么是最好的方式來通知客戶類(ViewClass)關于每個資料輸入錯誤。
請找到ModelClass示例代碼,如下:
Option Compare Database
選項 顯式
Private m_idCompra As String
Public Property Get codCompra() As String
codCompra = m_idCompra
End Property[/span
Public Property Let codCompra(ByVal codigoCompra As String)
'資料輸入大致處理,只是為了說明問題。
如果Len(codigoCompra) = 0 Then
'Advice ViewClass somehow[/span]。
ElseIf Not IsNumeric(codigoCompra) 然后
'Advice ViewClass somehow[/span]。
'Elseif...'。
Else
m_idCompra = codigoCompra
'Advice ViewClass somehow'。
End If
End Property
m_idCompra必須是String型別,在這種情況下。
預先感謝。
uj5u.com熱心網友回復:
對于類似的情況,我添加了methods如:
Public Function SetCompra(ByVal codigoCompra As String) As Boolean As Boolean
Dim Valid As Boolean
Valid = IsValidCompra(codigoCompra)
If Valid Then
' 設定屬性。
m_idCompra = codigoCompra
Else
' 引發錯誤或彈出訊息框。
End If
SetCompra = Valid
End Function[/span
Public Function IsValidCompra(ByVal codigoCompra As String) As Boolean As Boolean
Dim Valid AsBoolean
If <your validation rules> = True Then
有效 = True
End If
IsValidCompra = Valid
End Function[/span
uj5u.com熱心網友回復:
另一種方法是繼續使用Property Let,但在你的類中添加一個錯誤代碼的列舉,讓用戶決定在出現錯誤時采取什么行動:
eg 我的朋友們,你們好!
我的朋友們,你們好
eg MySimpleClass模塊:
Option Explicit>
Private m_strId As String
Public Enum MSC_Errors
'MS使用這個偏移量來避免內置的自動化錯誤代碼AFAIK。
MSC_ID_EMPTY = vbObjectError 513[/span
MSC_ID_notnumber
結束 Enum
Public Property Get Id() As String
Id = m_strId
結束 屬性
Public Property Let Id(ByVal sNewVal As String)
IfLen(sNewVal) = 0 Then
Err.Raise MSC_Errors.MSC_ID_EMPTY, Description:="Id不能是空字串"。
ElseIf Not IsNumeric(sNewVal) Then
Err.Raise MSC_Errors.MSC_ID_NOTNUMBER, Description:="Id must be a number"/span>。
End If
m_strId = sNewVal
End Property
然后作為客戶端代碼的例子:
Sub TestId()
Dim myobj As New MySimpleClass
On Error GoTo IdError
myobj.Id = InputBox("輸入數字Id", "Id Entry")
MsgBox "Good Id=" & myobj.Id
Exit Sub
IdError:
MsgBox Err.Description
測驗名稱
結束 sub
客戶可以進一步查詢你提供的錯誤代碼,例如:
客戶可以進一步查詢你提供的錯誤代碼。
If Err.Number = MSC_Errors.MSC_ID_EMPTY Then
'指定一個默認的id
myobj.Id=42。
End If
當然,這是個有點矯揉造作的例子,但它給出了一種向客戶代碼傳達錯誤原因的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314463.html
標籤:
上一篇:Orcale-缺少右括號
