Access - Recorset a informe con ADO

   
Vista:

Recorset a informe con ADO

Publicado por kikoski (2 intervenciones) el 22/10/2013 20:14:00
Hola a todos los del foro, les cuento un poco mi historia

Tengo una aplicacion en access donde uso formularios y tabalas vinculas tambien en access, ambos en access 2010, para acceder a los datos uso DAO pero lo que quiero hacer es desvincular las tablas y acceder a ellas utilizando ADO, algunas de estas tablas tiene alrededor de 100 mil registros.

Tons mi pregunta es conveniente hacer estos cambios? en realidad da algun beneficio usar ADO en lugar de DAO?? y si es asi como hago para que mis reportes (informes) no dependan de una tabla/query y poder asignarle los datos yo?


Gracias totales...!!!
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

Recorset a informe con ADO

Publicado por deneg_nhj (349 intervenciones) el 23/10/2013 17:28:56
Access es muy eficiente con DAO y las funcionalidades que tiene, para accesar a los datos y relizar tus consultas, formularios e informes.

El hecho de pasarlo a ADO, implicaría que la funcionalidad que tienes la perderías y haría más trabajo en el desarrollo y validación.

Si ya tienes muchos datos, te sugiero migrar mejor a SQL SERVER. y Ahí si te seria más conveniente hacer varias cosas mediante ADO.

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

Recorset a informe con ADO

Publicado por kikoski (1 intervención) el 23/10/2013 17:37:04
Hola gracias por responder,

La verdad nada me encantaria mas que migrar a SQLServer, pero la verdad es que por lo pronto no se puede.

Sabes no me importaria trabajar mas en el desarrollo de la aplicacion y en validaciones al cambiar a ADO, lo que me importa mas ahorita es la eficiancia de la aplicacion cuando el usuario final la esta usando, lo que pasa es que e leido algunos comentarios donde mencionan que a pesar de que se supone que ADO es mas veloz que DAO algunas personas no lo notan o al contrario baja su eficiencia, es por eso mi duda,

Respecto a los informes sabes de alguna manera para setearle el origen de datos digamos con algun recordset, para que no dependan de un query/tabla, ya que no quiero tener las tblas binculadas al archivo de las formas,

que opinas???
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

Recorset a informe con ADO

Publicado por deneg_nhj (349 intervenciones) el 24/10/2013 17:16:52
Yo utilizo tablas temporales para mis procesos; a menos que el reporte sea muy sencillo utilizo una consulta directamente a los datos.

Pero si hay que agrupar, calcular columnas, etc.. Entonces obtengo una copia de los datos y en DAO hago el resto de los agrupados. Usualmente utilizo consultas de paso.


Para el caso de hacer el link de ADO con reportes, no lo he hecho, pero puedes intentar hacerlo.

Te dejo un ejemplo de como hacer el link de ADO con un formulario, prueba hacerlo con un reporte.

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
Private Sub Form_Open(Cancel As Integer)
   Dim cn As ADODB.Connection
   Dim rs As ADODB.Recordset
 
   'Crear un nuevo objeto Conexión ADO
   Set cn = New ADODB.Connection
 
   With cn
      .Provider = "Microsoft.Access.OLEDB.10.0"
      .Properties("Data Provider").Value = "Microsoft.Jet.OLEDB.4.0"
      .Properties("Data Source").Value = _
          "C:\Archivos de programa\Microsoft Office\Office10" & _
          "\samples\Neptuno.mdb"
      .Open
   End With
 
   'Crear una instancia de la clase Recordset de ADO y
   'establecer sus propiedades
   Set rs = New ADODB.Recordset
   With rs
      Set .ActiveConnection = cn
      .Source = "SELECT * FROM Clientes"
      .LockType = adLockOptimistic
      .CursorType = adOpenKeyset
      .Open
   End With
 
   'Establecer la propiedad Recordset del formulario como el objeto Recordset de ADO
   Set Me.Recordset = rs
   Set rs = Nothing
   Set cn = Nothing
End Sub


y al descargar el formulario.

1
2
3
4
5
6
7
Private Sub Form_Unload(Cancel As Integer)
   'Cerrar la conexión ADO abierta
   Dim cn As ADODB.Connection
   Set cn = Me.Recordset.ActiveConnection
   cn.Close
   Set cn = Nothing
End Sub




Saludos
deneg_nhj
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

Recorset a informe con ADO

Publicado por kikoski (2 intervenciones) el 24/10/2013 17:47:00
Hola gracias por tus respuestas,

La parte de asignarle el recordset al formulario ya lo abia resuelto presisamete asi como lo explicas en tu, el problema es que al tratar de hacer lo mismo con un informe me manda un error donde me dice que eso solo es permitido en un ADP hice algunas pruebas creando un ADP, pero me tope con otras dificultades y opte por dejarlo, es por eso mi pregunta de si habra alguna otra form de asignarle el origen de datos a un informe, gracias.

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