Mu bueno triby me funciono tu respuesta y ademas mucho mas legible!!. Ahora tengo otro error que es cuando en el campo monto se ingresan valores decimales (con coma!! Ej 32.54 ) me dice asi "Error de sintaxis(coma) en la expresion de consulta " y me señala en la depuracion
Código:
ValorB = DLookup("[monto]", "factura", condicion)
supongo que debe ser que se estan evaluando la variable como de tipo texto y no como numerico o al reves, no?? Bueno como soluciono esto, vuelvo a poner el codigo por las dudas. Gracias
Código:
Private Sub monto_AfterUpdate()
Dim ValorA, ValorB, ValorC, ValorD As Variant
ValorA = monto.Value
ValorC = factura.Value
If IsNull(ValorA) Then Exit Sub
condicion = printf("[monto]={0} And [factura]='{1}'", ValorA, ValorC)
ValorB = DLookup("[monto]", "factura", condicion)
If ValorB = ValorA Then
MsgBox "El valor introducido ya existe, consulte por esta factura ", vbInformation, "AVISO"
Me.monto.SetFocus
Me.factura.SetFocus
End If
End Sub
Public Function printf(mask As String, ParamArray tokens()) As String
Dim i As Long
For i = 0 To UBound(tokens)
mask = Replace$(mask, "{" & i & "}", tokens(i))
Next
printf = mask
End Function