¿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.

Respuesta
2

José Ignacio: Tal como te comentaba en mi respuesta a la anterior pregunta, en ésta tengo alguna duda.

Primero hablas de un Campo de 8 dígitos >> Numérico y me surge la duda

Es de hasta 8 dígitos o es siempre de 8.

Después hablas de otro Campo REFER, que supongo es un Control Independiente en el Formulario y no un Campo de la Tabla.

Quizá sea correo el código que usas pero no lo acabo de encajar en esa búsqueda. Y por último sin entrar en más detalle, lo que parece que buscas es que "No está". Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas