Access - URGENTE , modificar subformulario con var obj

 
Vista:

URGENTE , modificar subformulario con var obj

Publicado por vlg (30 intervenciones) el 09/01/2004 09:49:50
Tengo un grave problema deseo modificar un subformulario con un nuevo contenido recuperado mediante una variable objeto , el codigo es el siguiente :
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

'Use the ADO connection that Access uses
Set cn = CurrentProject.AccessConnection
'Create an instance of the ADO Recordset class,
'and set its properties
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cn
.Source = "SELECT * FROM CARAT"
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
'Set the form's Recordset property to the ADO recordset
Set Me.Secundario9.Form.RecordSource = rs
'Set Me.Recordset = rs
Set rs = Nothing
Set cn = Nothing

Este procedimiento me da error , alguien me puede guiar ya que ando un poco perdido , MUCHAS 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

URGENTE , modificar subformulario con var obj

Publicado por Alejandro (4142 intervenciones) el 04/05/2023 16:21:58
El error que estás experimentando puede deberse a que estás intentando establecer la propiedad RecordSource del subformulario utilizando un objeto Recordset de ADO en lugar de un nombre de tabla o consulta. Para establecer la propiedad RecordSource con un objeto Recordset de ADO, necesitas utilizar un objeto DAO.Recordset en su lugar. Aquí hay un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim db As DAO.Database
Dim rs As DAO.Recordset
 
'Obtener una referencia a la base de datos actual
Set db = CurrentDb()
 
'Crear un objeto Recordset de DAO y establecer su propiedad Name
Set rs = db.OpenRecordset("CARAT", dbOpenDynaset)
 
'Establecer el Recordset del subformulario a la referencia del objeto Recordset de DAO
Set Me.Secundario9.Form.Recordset = rs
 
'Cerrar el objeto Recordset y la base de datos
rs.Close
db.Close

En este ejemplo, estamos abriendo una referencia a la base de datos actual y luego abriendo un objeto Recordset de DAO en modo Dynaset. Luego, establecemos la propiedad Recordset del subformulario en el objeto Recordset de DAO y cerramos tanto el objeto Recordset como la base de datos.

Espero que esto te ayude a solucionar el problema.
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