Actualizar un objeto CONSULTA en un SUBFORMULARIO

21/09/2010 - 08:32 por Wally | Informe spam
Buen día a Todos, tengo la siguiente duda, creé una consulta con un
objeto CONSULTA y la siguiente sentencia:

SELECT <campos> FROM <tabla > WHERE <condicion_inicial>

luego lo pegue en un SUBFORMULARIO dentro de mi FORM principal, hasta
aqui todo correcto.

Para actualizar la sentencia SQL de mi objeto CONSULTA utilizo la
siguiente instruccion dentro de la propiedad ON_CLICK de un botón:

Dim strSQL As String

strSQL = SELECT <campos>
strSQL = strSQL + FROM <tabla>
strSQL = strSQL + WHERE <condicion_modificada> 'ESTO ES LO QUE
MODIFICO

For Each Consulta In CurrentDb.QueryDefs
If Consulta.Name = "Consulta TODOS 0" Then
Consulta.SQL = strSQL
Exit For
End If
Next Consulta

Consulta.Close
Set Consulta = Nothing

si modifica la consulta SQL, EL PROBLEMA ES QUE solo me refresca el
contenido en el FORM hasta que lo cierro y lo vuelvo a abrir. Ya
intenté con los metodos REFRESH, REQUERY y RECALC tanto para el FORM
como para el SUBFORM y no me funciona.

¿Tiene solicuón mi problema?, ¿cuál sería?, gracias de antemano por su
atención!!!

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
21/09/2010 - 12:54 | Informe spam
Hola Wally
Sí quieres modificar el SQL de un querydef, y quieres que los cambios
sean permanentes, tendrás que borrar la consulta y volverla a crear

CurrentDb.Querydefs("Consulta").Delete
CurrentDb.Querydefs.Refresh
CurrentDb.CreateQueryDef("Consulta",SQL)

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 Wally
23/09/2010 - 13:26 | Informe spam
On 21 sep, 05:54, José Mª Fueyo wrote:
Hola Wally
Sí quieres modificar el SQL de un querydef, y quieres que los cambios
sean permanentes, tendrás que borrar la consulta y volverla a crear

CurrentDb.Querydefs("Consulta").Delete
CurrentDb.Querydefs.Refresh
CurrentDb.CreateQueryDef("Consulta",SQL)

Salu2
José Mª Fueyo
[MS MVP Access]



De hecho la modificación la hace, lo que pretendo es que se actualize
al momento, porque como está actualmente tengo que cerrar el módulo y
volverlo a abrir.

¿alguna sugerencia?, gracias de antemano...
Respuesta Responder a este mensaje
#3 José Mª Fueyo
24/09/2010 - 10:43 | Informe spam
Hola
Prueba a actualizar la propiedad RecordSource del formulario con el
nombre de la consulta subyacente.

Me.RecordSource = "NombreDeLaConsultaOrigenDeDatos"

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#4 Wally
24/09/2010 - 14:42 | Informe spam
On 24 sep, 03:43, José Mª Fueyo wrote:
Hola
Prueba a actualizar la propiedad RecordSource del formulario con el
nombre de la consulta subyacente.

Me.RecordSource = "NombreDeLaConsultaOrigenDeDatos"

Salu2
José Mª Fueyo
[MS MVP Access]



GRACIAS POR EL TIP, tuve que cambiar el diseño de mi consulta, me
percate que no es necesario el modificar el OBJETO CONSULTA y como
mencionas con modificar el Me.RecordSource fue suficiente...

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida