Access - Problema Access 2007 con BD Access 2003

   
Vista:

Problema Access 2007 con BD Access 2003

Publicado por mig77angel (4 intervenciones) el 12/03/2015 11:18:47
Buenas, a ver si alguien puede darme una orientacion... hace muchos años (unos 10) hice una base de datos para la empresa donde trabajaba en access 2003, tarde mucho en terminarla, con varios controles, listas, desplegables y tal, es una base de datos de clientes.

El problema es de hace tiempo al abrirla en los access modernos 2007, 2010... que muchos controles no funcionan, supongo que no sera muy dificil de solucionar, pero no consigo dar con el problema.

Por ejemplo, esto es una lista que te dejaba seleccionar encima y la seleccion se mostraba como registro activo, esto ahora no funciona con el access 2007.

1
2
3
4
5
6
7
8
Private Sub Lista683_AfterUpdate()
    ' Buscar el registro que coincida con el control.
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[id] = " & Str(Nz(Me![Lista683], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Y este otro es un cuadro combinado que tampoco funciona:

1
2
3
4
5
6
7
8
Private Sub Cuadro_combinado680_AfterUpdate()
    ' Buscar el registro que coincida con el control.
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[id] = " & Str(Nz(Me![Cuadro combinado680], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub


Alguna ayuda?
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 Neckkito

Problema Access 2007 con BD Access 2003

Publicado por Neckkito (1104 intervenciones) el 12/03/2015 13:15:57
Hola!

Intenta declarar los recordsets como dao's.

Es decir:

Dim rs As DAO.Recordset

y los clonados de los recordset hazlos así:

Set rs = me.recordsetclone

A ver si con eso se arregla.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
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

Problema Access 2007 con BD Access 2003

Publicado por mig77angel (4 intervenciones) el 13/03/2015 13:04:37
Gracias pero da error:

1
2
3
4
5
6
7
8
Private Sub Cuadro_combinado680_AfterUpdate()
    ' Buscar el registro que coincida con el control.
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[id] = " & Str(Nz(Me![Cuadro combinado680], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Te resalta el STR y remarca la linea Private Sub...
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
Imágen de perfil de Neckkito

Problema Access 2007 con BD Access 2003

Publicado por Neckkito (1104 intervenciones) el 13/03/2015 13:21:13
¿Y para qué necesitas esa función? ¿No puedes eliminarla y dejar sólo el nz(........)

Lo he comprobado y Str() funciona en cualquier versión de Access (http://www.techonthenet.com/access/functions/string/str.php).

He probado tu código en un mdb que he hecho a lo rápido y no me da ningún error, por lo que desconozco por qué te marca ese error.

Créate una BD en blanco en una versión de Access 2007 o superior y, en el editor de VBA, mira qué referencias tienes registradas, y compáralas con las de tu BD, a ver si por casualidad te faltara alguna (ojo, las referencias, no las versiones de las referencias) y el problema te viniera de ahí.

Saludos,

Neckkito
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

Problema Access 2007 con BD Access 2003

Publicado por mig77angel (4 intervenciones) el 13/03/2015 13:46:58
Gracias por la ayuda, la verdad no se donde puede estar el error, ahora al quitar el str sale en rojo esta linea en vb y no hace nada.

1
2
3
4
5
6
7
8
Private Sub Cuadro_combinado680_AfterUpdate()
    ' Buscar el registro que coincida con el control.
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[id] = "(Nz(Me![Cuadro combinado680], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

De que otra forma podría hacer esto??? esta base la hice hace muchos años con ayuda que fui consiguiendo por internet, y esto mismo funciona perfectament en access 2003, es una base de datos sencilla en la que todo lo que se ve en pantalla es el registro activo, y tengo un contro desplegable para seleccionar otro cliente y al hacer eso se cambia a ese como registro activo y lo muestra en pantalla, al igual que una lista, esto ahora no funciona en los acces nuevos desde 2007.

Muchas gracias de nuevo.
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
Imágen de perfil de Neckkito

Problema Access 2007 con BD Access 2003

Publicado por Neckkito (1104 intervenciones) el 13/03/2015 13:48:42
rs.FindFirst "[id] = " & Nz(Me![Cuadro combinado680], 0)

Olvidaste el ampersand para la concatenación, y te sobran algunos paréntesis.

A ver si ahora sale.

Neckkito
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

Problema Access 2007 con BD Access 2003

Publicado por mig77angel (4 intervenciones) el 13/03/2015 13:54:28
Guauuuuuuuuuuuuuuuu ahora si funciona!!! ademas tambien me funciona la lista, muchas gracias de verdad, seguro que tengo mas dudas.

Mil gracias de nuevo, asi da gusto preguntar en un foro.
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