Access - Formulario busqueda acces, con tabla relacionada.

   
Vista:

Formulario busqueda acces, con tabla relacionada.

Publicado por Arioco (2 intervenciones) el 14/11/2012 22:12:26
Hola,

Intento crear un programa de stock para prensa en acces.

He creado dos tablas (Revistas y CodigosBarras) y las he relacionado. Luego he creado un formulario y le he añadido dos campos de texto (txtCB y txtNum) tal como se muestra la imagen (sin colocar aun el campo nombre).



Al escribir un codigo de barras y un numero de revista en esos dos campos de texto aplica un filtro para encontrar las revistas utilizando este codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub txtCB_AfterUpdate()
    Me.Filter = ""
    Me.FilterOn = False
 
    If Me.txtCB.Value = "" Or IsNull(txtCB.Value) Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = "R_CodigoBarras = " & Me.txtCB.Value & ""
        Me.FilterOn = True
    End If
 
    Me.txtNum.SetFocus
End Sub
 
Private Sub txtNum_AfterUpdate()
    Me.Filter = ""
    Me.FilterOn = False
 
    If Me.txtCB.Value = "" Or IsNull(txtCB.Value) Then
        If Me.txtNum.Value = "" Or IsNull(txtNum.Value) Then
            Me.Filter = ""
            Me.FilterOn = False
        Else
            Me.Filter = "NumeroRevista = " & Me.txtNum.Value & ""
            Me.FilterOn = True
        End If
    Else
        If Me.txtNum.Value = "" Or IsNull(txtNum.Value) Then
            Me.Filter = "R_CodigoBarras = " & Me.txtCB.Value & ""
            Me.FilterOn = True
        Else
            Me.Filter = "(R_CodigoBarras = " & Me.txtCB.Value & ") AND (NumeroRevista = " & Me.txtNum.Value & ")"
            Me.FilterOn = True
        End If
 
    End If
 
    Me.R_CodigoBarras.SetFocus
End Sub



Hasta ahi todo bien, si existe lo encuentra y si no existe me deja colocar una nuevo y guardarlo.

Lo que intento és que me ponga solo el nombre de la revista segun el codigo de barras si este ya esiste, y si no existe que me lo deje poner, por eso añado el campo nombre de revista al formulario, pero me salta el siguiente error:




Pongo las imagenes porque suelo explicarme muy mal
La verdad que he buscado y probado pero se me han acabado los recursos.

Teneis alguna idea de lo que estoy haciendo mal y como resolverlo??
Me gustaria que tengan que entrar los menos datos posibles y no ir metiendo para cada revista el nombre de esta una y otra vez.

Saludos y Mil 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

Formulario busqueda acces, con tabla relacionada.

Publicado por Jefferson (381 intervenciones) el 16/11/2012 16:26:58
Hola Arioco

El problema te lo da, seguro porque estas trabajando sobre un formulario dependiente de una tabla, la cual es "Revistas" y el campo NombreRevista lo usas en la tabla "CodigoBarras".
y aunque las relaciones Access desconoce de la existencia de este campo...!


Aparte tengo varias dudas..?

1) porque buscar o filtrar por dos campos, si se supone que el codigo de barras es unico e irrepetible.!

2) no hay necesidad de crear relacion entre las tablas, pues el unico identificador es el codigo de barras y esta asociacion la podemos hacer por sql

3) para anexar los datos nuevos, podemos usar sql en vez, de una tabla y de esta forma cargamos ambas tablas (Revistas y CodigoBarras) claro esta, trabajariamos sobre un formulario independiente..

En fin te he realizado un ejemplo sencillo de lo que pretendes, chequealo y comentas alguna duda http://goo.gl/QkZ8t


Suerte

Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario busqueda acces, con tabla relacionada.

Publicado por Arioco (2 intervenciones) el 18/11/2012 00:59:44
Hola Jefferson,

Gracias por tu rapida respuesta y por el ejemplo, he aprendido mucho de el.

En realidad el codigo de barras si se repite ya que todos los numeros/fasciculos de una misma revista tienen el mismo codigo de barras, por ejemplo:

1
2
3
4
5
6
7
REVISTA               NUMERO              CODIGODEBARRAS
- Vanidades             1(enero)                      10001
- Vanidades             2(febrero)                    10001
- Vanidades             3(marzo)                      10001
- Lecturas              1(enero)                      10002
- Lecturas              2(febrero)                    10002
- Lecturas              3(marzo)                      10002



Esto es lo que me obliga a usar dos campos para buscar un producto determinado.

De todas formas tu codigo me ha dado una vision muy distinta de como enfocar el problema, y creo que gracias a el conseguire un "workaround" al problema.

Un saludo para Venezuela! ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar