关于使用case的函数进行字段更新

时间:2015-06-10 16:42:06

标签: ms-access access-vba ms-access-2013

我正在尝试使用IfCase的函数根据两个字符串字段更新某个字段值,函数如下:

 
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))

它没有更新该字段。有什么问题?

1 个答案:

答案 0 :(得分:0)

当你说:

 
If Me.txtMatricola = "" Then r = "Matricola"

您正在做的是将值"Matricola"分配给变量:r。相反,我认为你想要的是:

If Me.txtMatricola = "" Then Me.txtMatricola  = "Matricola" 

这实际上将字段的值设置为txtMatricola"Matricola"。这适用于Case语句中的所有字段。