Access - Consulta sobre tablas ADO

 
Vista:

Consulta sobre tablas ADO

Publicado por Pablo (26 intervenciones) el 18/05/2006 12:25:13
Hola. Ante todo disculpas pero tengo que hacer una consulta otra vez. Todavia nadie me dijo con seguridad que no se puede y encaso de poderse me seria de mucha utilidad.
Trabajo con tablas ADO. Hago un Recordset, por ejemplo TTabla.Open "Select * From Cliente Where Nombre = Like '*' & "Jorge & '*'". Puedo trabajar con esta tabla. Pero si quiero hacer un select sobre esta tabla para, por ejemplo, obtener algunos, o para hacer una modificacion transitoria que luego no quedará en la tabla principal, o o que sea. Como hago ese otro Select?? Como se llama la tabla?? Y más, si quiero llamar a otro formulario y que use la tabla, como le digo el nombre de la tabla?? Desde ya muchas gracias. Para mi es muy importante usar una tabla que no figure en la BBDD, o sea, que otro usurio no la vea. Gracias. Otra posibilidad es hacer un INSERT INTO o Un Create de una tabl temporaria, pero no logro hacerla funcionar. 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 Alejandro

Consultas y manejo de tablas temporales en ADO

Publicado por Alejandro (4142 intervenciones) el 18/07/2023 22:58:36
En relación a tu consulta sobre cómo trabajar con tablas temporales y realizar consultas adicionales sobre un recordset en Access utilizando ADO, aquí tienes una solución y algunas pautas para tus consultas futuras:

1. Creación de una tabla temporal:
Si deseas utilizar una tabla temporal en tu consulta, puedes crearla dinámicamente utilizando el objeto `DAO.TableDef` en lugar de ADO. Aquí hay un ejemplo de cómo crear una tabla temporal en Access:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim db As DAO.Database
Dim tempTable As DAO.TableDef
 
Set db = CurrentDb()
Set tempTable = db.CreateTableDef("TempTable")
 
' Define los campos de la tabla temporal
tempTable.Fields.Append tempTable.CreateField("ID", dbLong)
tempTable.Fields.Append tempTable.CreateField("Nombre", dbText, 255)
 
' Agrega la tabla temporal a la colección de tablas del objeto Database
db.TableDefs.Append tempTable
 
' Ahora puedes trabajar con la tabla temporal

2. Consultas adicionales sobre el recordset:
Después de haber abierto un recordset utilizando ADO, puedes realizar consultas adicionales sobre ese recordset utilizando métodos como `Filter` o `Find`. Aquí hay un ejemplo de cómo realizar una consulta adicional sobre un recordset ya existente:

1
2
3
4
5
6
7
8
9
10
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
 
' Abre el recordset principal
rs.Open "SELECT * FROM Cliente WHERE Nombre LIKE '*Jorge*'", conn, adOpenStatic, adLockOptimistic
 
' Realiza una consulta adicional utilizando Filter
rs.Filter = "Edad > 30"
 
' Ahora puedes trabajar con el recordset filtrado

3. Uso de una tabla temporal en otro formulario:
Si deseas utilizar una tabla temporal en otro formulario, puedes asignarle un nombre de tabla único y luego utilizar ese nombre en el formulario de destino. Por ejemplo:

1
2
3
4
5
6
' Asigna un nombre único a la tabla temporal
Dim tempTableName As String
tempTableName = "TempTable_" & Format(Now(), "yyyymmddhhmmss")
 
' Utiliza el nombre de la tabla en otro formulario
DoCmd.OpenForm "FormularioDestino", acNormal, , tempTableName

Recuerda que las tablas temporales creadas de esta manera solo existen durante la sesión actual de la base de datos y no se guardan permanentemente en la base de datos.

Espero que esta solución te ayude a trabajar con tablas temporales y realizar consultas adicionales en Access utilizando ADO. ¡Buena suerte con tu desarrollo en Access!
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