Access - CONSULTA SELECCION DESDE VBA

   
Vista:

CONSULTA SELECCION DESDE VBA

Publicado por jaume cintero (3 intervenciones) el 28/07/2009 23:39:19
Me gustaria saber que debo hacer para hacer una consulta de seleccion y ver para editar / modificar/ anular registros desde el editor de VBA, sin crear una consulta desde el menu.

He probado con Dcmd.runsql, pero parece que esta instruccion solo funciona para consultas de acciones, no para una simple consulta de seleccion.

Agradecera ayuda.

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 Enrique Ramírez

RE:CONSULTA SELECCION DESDE VBA

Publicado por Enrique Ramírez (617 intervenciones) el 29/07/2009 16:06:26
Efectivamente la consulta se seleccion no utiliza el DoCmd, para manipular (editar, adicionar, eliminar) el contenido de una consulta de seleccion almacenala en una variable de memoria y utiliza el Record Set.
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

RE:CONSULTA SELECCION DESDE VBA

Publicado por jaume cintero (3 intervenciones) el 29/07/2009 19:44:02
Imaginaba que era algo asi, pero soy muy novato y no tengo ni idea de como hacerlo.Podrias echarme una manita??
lo que tengo que hacer, es una simple consulta de seleccion. Sé que si voy a la consulta y le pido sequencia SQL, es tan simple como copia y pegar, pero ¿Como hago esa variable para que me ejecute la consulta de seleccion??
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 Enrique Ramírez

RE:CONSULTA SELECCION DESDE VBA

Publicado por Enrique Ramírez (617 intervenciones) el 30/07/2009 16:29:02
Es como hacer la consulta en el generador y copiarla al código pero…no es tan fácil como piensas porque en ocasiones hay que seguir cierta sintaxis para que el Visual Basic reconozca la sentencia SQL que vas a meter sobre todo cuando igualas valores almacenados en cajas de texto, combos, listas etc.

Vamos a hacer un ejemplo muy sencillo:
tengo tabla1.Paterno, tabla1.Materno y tabla1.Nombre y todo esta en minúsculas, lo que voy a hacer es leer la tabla de manera secuencial (registro por registro) para convertirlas a mayúsculas con la función Ucase().

1) hacer consulta de selección en el generador de consultas.

SELECT Tabla1. Paterno, Tabla1.Materno, Tabla1.Nombre
FROM Tabla1
ORDER BY Tabla1.Paterno, Tabla1.Materno, Tabla1.Nombre;

2) en el formulario definimos la variable de memoria (Var) en la cual se va a almacenar la consulta SQL y definimos el RecordSet
Dim Var As String
Dim db As DAO.Database, rs As DAO.Recordset

3) creo un boton de proceso y en el evento clic del boton pongo lo siguiente:
Private Sub BotonProceso_Click()

‘aquí guardo la consulta en la variable de memoria
Var = "SELECT Tabla1. Paterno, Tabla1.Materno, Tabla1.Nombre FROM Tabla1 “ _
& “ORDER BY Tabla1.Paterno, Tabla1.Materno, Tabla1.Nombre ”

‘aquí abro la consulta almacenada en la variable con el RecordSet
Set db = CurrentDb()
Set rs = db.OpenRecordset(vSql)

‘pregunto si el RecordSet tiene registros
If rs.RecordCount > 0 Then

‘empieso a leer c/u de los registros de la consulta hasta que encuentre el fin de archivo.
Do While rs.EOF = False

‘edito el registro para poderlo modificar
rs.Edit

‘hago la conversion a mayusculas
rs!Paterno= Ucase(rs!Paterno)
rs!Materno= Ucase(rs!Materno)
rs!Nombre= Ucase(rs!Nombre)

‘acepto las modificaciones
rs.Update

‘leo el siguiente registro
rs.MoveNext

‘me regreso a continuar con el Do While
Loop
End If

‘cuando se llega al fin de archivo se sale del Do While y cierro el RecordSet
rs.Close
Set db = Nothing
End Sub

NOTA: para hacer referencia a los campos del recordSet lo hacemos rs!campo y para hacer referencia a las propiedades del RecordSet los hacemos con rs.propiedad (Edit, AddNew, Delete,Update,MoveFirst, MoveLast, MoveNext, Previus, etc)

Este ejemplo de convertir a mayusculas lo puedes hacer directamente en el generador de consultas pero te lo expongo de esta forma para que veas como se utiliza el RecordSet.

Espero te sea de utilidad y saludos.
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

RE:CONSULTA SELECCION DESDE VBA

Publicado por jaume cintero (3 intervenciones) el 30/07/2009 16:59:04
muchisimas gracias, me ha sido de mucha utilidad
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

RE:CONSULTA SELECCION DESDE VBA

Publicado por Edmund danubioazulado@yahoo.es (10 intervenciones) el 28/06/2014 19:26:24
Hola me podría echar una manito con una consulta de selección en VBA, que muestre en un informe el registro de un código que se solicite. Es decir que en un formulario se pida el CodCliente y el informe de todos los datos de este cliente por ejemplo Nombre, ApellidoPaterno, ApellidoMaterno.
Gracias de antemano por su ayuda!!!
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