¿Como comprobar numero de 8 dígitos introduciendo menos dígitos?
En una tabla, ARTIC, existe un campo denominado PRVEREF, número de 8 cifras, compuesto por tres dígitos del proveedor y cinco para la referencia. La referencia puede ser de 1 a cinco dígitos, rellena a ceros por la izquierda las referencias menores a cinco dígitos. Intento que al introducir -tres dígitos coma referencia- (ej. Xxx, xx), en campo REFER formulario, compruebe si existe. Hice la comprobación que describo pero cuando el ultimo digito introducido es cero falla (150,150) porque actúa como (150,15).
Dim BCAR As String, MPOS As Integer, LTEX As Integer, NREF
BCAR = ","
MPOS = InStr(1, REFER, BCAR, vbTextCompare)
LTEX = Len(REFER)
Select Case MPOS
Case 0 To 1
If LTEX = 8 Then
NREF = REFER
Else
If LTEX > 0 Then
NREF = (Left(REFER, LTEX) * (1 & String(8 - LTEX, "0")))
Else
NREF = 0
End If
End If
Case 2 To 8
NCTA = (Left(REFER, MPOS - 1) * (1 & String(8 - MPOS + 1, "0"))) + Right(REFER, LTEX - MPOS)
End Select
'----Comprobar que existe -------------------------------------------
'If (Eval("DLookUp(""[PRVEREF]"",""[ARTIC]"",""[PRVEREF] = Form.[REFER] "") Is Null")) Then
Dim FILTRO As String, TREF
FILTRO = "PRVEREF=" & NREF
TREF = DLookup("PRVEREF", "ARTIC", FILTRO)
If IsNull(TREF) Then
Beep
MsgBox "La REFERENCIA introducida NO existe."
DoCmd.CancelEvent
REFER.Undo
End If
End If
No puedo cambiar el campo de número a texto porque es una base heredada y tiene enlace con otras tablas y bases de Access y desconozco a cuantos procesos afecta.