¿Como buscar un número 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. Intento que al introducir 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
NREF = (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 otras bases.