我正在尝试使用If
和Case
的函数根据两个字符串字段更新某个字段值,函数如下:
Private Function checkDATI(tipotransazione As String, tipovendita As String) As String
Dim r As String
r = ""
If tipotransazione = "VENDITA" Then
Select Case tipovendita
Case "ARMI"
If Me.txtMatricola = "" Then r = "Matricola"
If Me.txtModello = "" Then r = "Modello"
If Me.txtCalibro = "" Then r = "Calibro"
If Me.txtTipoArma = "" Then r = "Tipo Arma"
If Me.txtFabrica = "" Then r = "Fabbrica"
Case "VENDITA ARMI/MUNIZIONI"
Case "MUNIZIONI"
End Select
End If
If tipotransazione = "ACQUISTO" Then
Select Case tipovendita
Case "ARMI"
If Me.txtMatricola = "" Then r = "Matricola"
If Me.txtModello = "" Then r = "Modello"
If Me.txtCalibro = "" Then r = "Calibro"
If Me.txtTipoArma = "" Then r = "Tipo Arma"
If Me.txtFabrica = "" Then r = "Fabbrica"
Case "VENDITA ARMI/MUNIZIONI"
Case "MUNIZIONI"
End Select
End If
checkDATI = r
End Function
然后当我在命令按钮事件中调用此函数时:
MsgBox (checkDATI(Me.CausaleMov, Me.txt_tipomov))
它没有更新该字段。有什么问题?
答案 0 :(得分:0)
当你说:
If Me.txtMatricola = "" Then r = "Matricola"
您正在做的是将值"Matricola"
分配给变量:r
。相反,我认为你想要的是:
If Me.txtMatricola = "" Then Me.txtMatricola = "Matricola"
这实际上将字段的值设置为txtMatricola
到"Matricola"
。这适用于Case
语句中的所有字段。