Visual Basic - COMO UTULIZAR UN SOLO RECORDSET

Life is soft - evento anual de software empresarial
 
Vista:

COMO UTULIZAR UN SOLO RECORDSET

Publicado por jc (1 intervención) el 11/06/2001 06:53:43
Soy un novato en VB. Y lo que quiero realizar al parecer es muy simple: Quiero establecer una conexión con una base de datos, definir un recordset y mantener ambas definiciones activas durante todo el procedimiento. El código es este...

1ero. Definí un modulo como sigue: (Mod 1)
Global cn As Connection
Global rs As Recordset

Public Sub Main()
ConectaBd
Form1.Show
End Sub

Public Sub ConectaBd()
Set cn = New ADODB.Connection
cn.ConnectionString = "DSN=Contable;uid=sa"
cn.Open

Set rs = New ADODB.Recordset
rs.LockType = adLockOptimistic
rs.CursorType = adOpenKeyset
RsContenidos

End Sub

Public Sub RsContenidos() àEste es el recordset que quiero mantener abierto siempre.
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Source = "select * from contenidos"
Set rs.ActiveConnection = cn
rs.Open
End Sub

Luego defini algunos procedimientos. (Form1), en los cuales quiero realizar acciones sin tener que definir Rs nuevamente y cada vez que abra un Sub
Private Sub Form_Load()
Call carga(rs)
End Sub
Private Sub Command1_Click()
rs.MoveNext
End Sub

Private Sub carga(rs As Recordset)
rs.MoveFirst

Text1.Text = rs.Fields("titulo").Value
Text2.Text = rs.Fields("subtitulo").Value

End Sub

En el fondo, deseo moverme por la tabla, con Movenext o movefirst, y cambiar sus valores libremente, sin nuevas definiciones. ¡Ayuda por favor!


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

RE:COMO UTULIZAR UN SOLO RECORDSET

Publicado por jan (34 intervenciones) el 11/06/2001 12:24:26
Cuando creas rs lo haces dentro de un procedure
Public Sub RsContenidos() àEste es el recordset que quiero mantener abierto siempre.
!!!!!Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Source = "select * from contenidos"
Set rs.ActiveConnection = cn
rs.Open
End Sub

Si quieres mantenerlo abierto y utilizarlo desde cualquier sitio del programa, el recordset rs tiene que ser una variable global. Colo lo tienes hecho ahora, cascará porpue al salir del procedure rs deja de existir. Quita esa línea de código y ya está (Dim rs as adodb.recordset en el procedure RsContenidos)

Espero te sirva
Jan
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