Error al abrir formulario filtrado por id access

Trasteando" en access me he querido realizar un id Alphanumerico basándome en un ejemplo de la web de neckkito http://siliconproject.com.ar/neckkito/

El campo Id de la tabla esta definido como Texto.

Pongo un Ej simple:

Tabla1: Id(texto), Nombre(Texto), Importe(moneda).

Tabla2: id(autonumerico), idTabla1(Texto), Fecha(Fecha), Concepto(texto).

1º me hice sobre tabla2 el subFrmTabla2.

2º hice el FTabla2 "Sobre Tabla1" y a le añadi el subFrmTabla2 vinculandolos por el id.

3º me cree el FTabla1 sobre Tabla1. En este formuario añadi un cmd para abrir filtrado el FTabla 2 con el siguiente código:

    Dim nPrueba As Variant
    vPrueba = Nz(Me.Id.Value)
    If vPrueba = "" Then Exit Sub
    DoCmd.OpenForm "FTabla2", , , "[Id]=" & vPrueba
    Forms! FTabla2. SubFrmTabla2.Form. Fecha. SetFocus

y me abre un imputbox que me dice :

"Introduce el valor del parametro"

Pueba0001 Que es el alfanumerico

Y la caja del imputbox.

Si le doy a cancelar me falla la apertura del form, y si le doy valor tampoco me funciona.

¿Qué hice mal?

1 respuesta

Respuesta
2

El fallo lo vuelves a tener en las comillas... porque el campo ID es de texto ...

DoCmd.OpenForm "FTabla2", , , "[Id]='" & vPrueba & "'"

¡Gracias! Pues le di mil vuletas y lo había puesto pero tenia declarada la variable como long y el fallo me lo daba en esta línea:

Y me decía que no coincidían los tipos error 13.

¿Por lo demás estaría bien así? Me refiero ha realizado el código o hay una forma más correcta de hacerlo.

vPrueba = Nz(Me.Id.Value)

Yo lo haría así:

Dim vPrueba As String

vPrueba=Nz(Me.Id,"")

...

Si declaras vPrueba como variant, puedes hacerlo de esta otra forma:

vPrueba =Me.Id

If Isnull(vPrueba) Then exit sub

...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas