Access - Aplicar código vba y/o sentencias por registro en una Forma Tabular

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 10 puestos en Access (en relación al último mes)
Gráfica de Access

Aplicar código vba y/o sentencias por registro en una Forma Tabular

Publicado por Luis (4 intervenciones) el 05/12/2018 22:59:02
Buenas tardes,

No soy muy experto en Access y quiero realizar una forma (tabular) de captura de productos al momento de realizar un inventario. La idea que tengo es que conforme se vaya capturando, se realice una búsqueda en una tabla ya predefinida con toda la lista de número de partes, a partir de ahí en un textbox me diga si es válido o no. Pero al momento de querer aplicar un cambio, se aplica en toda la columna y no sólo en el registro actual. Y lo que busco es que sea de forma individual.
El código sería el siguiente:

1
2
Sql = "SELECT  CASE WHEN Tabla_Maestra.Product_Number = '" & Me.Product_Number.Value & "' COLLATE SQL_Latin1_General_CP1_CS_AS THEN  '" & Me.Note.Value & "' = "Válido" ELSE  '" & Me.note.Value & "' = "No válido, favor de verificar producto capturado" END "
mySql = mySql & " FROM Tabla_Maestra'"

Espero y me puedan ayudar, Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pancho
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Aplicar código vba y/o sentencias por registro en una Forma Tabular

Publicado por Pancho (211 intervenciones) el 18/12/2018 21:52:15
Hola

Para ello es mejor usar la funcion de dominio dlookup(), en tu formulario tabular crear un campo de texto independiente y llamalo VALIDO

En la propiedad del campo Origen del control colocas

1
=ProductoValido([id])


Dentro del formulario creas la siguiente funcion

1
2
3
4
5
6
7
8
9
10
11
Function ProductoValido(ByVal producto_id As Variant)
    If IsNull(producto_id) Then
        ProductoValido = "Producto sin código"
    Else
        If IsNull(DLookup("Id", "mi_tabla", "Id='" & producto_id & "'")) Then
            ProductoValido = "No válido, favor de verificar producto capturado."
        Else
            ProductoValido = "Producto Válido"
        End If
    End If
End Function

Cuando abras el formulario se ejecutara la funcion ProductoValido() por cada registro y validara lo siguiente

1
2
3
1.- Si el valor de producto_id es NULL entonces es un "producto sin código"
2.- Si dlookup() devuelve NULL entonces significa que no se consiguio el producto indicado
3.- Sino entonces es un producto valido ya que devolvio el codigo solicitado en dlookup()


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar