Hola experto... Mira, normalmente se suele declarar en el Load del Formulario los objetos Connection y Recordset para poder trabajar con los datos de la aplicación... Pero me recomendaron utilizar un modulo en el cual declare de forma publica estos objetos, de manera tal que puedan ser usados en cualquier form del programa...¿De qué manera se utiliza esta forma de trabajo?, digo, me gustaría me orientaras un poco, sobre si es conveniente y de que forma se declararía... Gracias
Lo que yo normalmente hago es: Creo un modulo vas y pongo Option explicit Global conn as connection Global rs as adodb. Recordset Luego hago un splash screen donde abro la conexión, y la mantengo abierta mientras dure la aplicación (muchas personas dicen que esto puede dar problemas, pero a mi nunca me fallo nada) Luego los recordsets los abro y los cierro cuando los tenga que usar Ventajas: No tienes que andar declarando y abriendo en cada form la conexión y el recordset, o sea más comodidad Al tener una sola variable, tienes un solo puntero a memoria, o sea ahorras ram Te ahorras el tiempo que tarda en abrirse la conexión En fin, es mucho más cómodo
- Anónimoahora mismo
Respuesta de kieleze
1
1
kieleze, Estudio ingenieria en sistemas, estoy en 3º año
A ver son procedimientos públicos Por ejemplo public bd as database set bd opendatabase (mibase.mdb) Listo si tienes esto en el modulo de inicio Desde cualquier formulario Puedes hacer dim rs as recordset set rs openrecordset(bd,"tabla") o que se yo También podes hacer una función Ahora no la tengo a mano... Pero yo había hecho una función en la que yo le asignaba la consulta y me devolvía un adodb. Recorset conectado a esa base dim ado as adodc.recordset set ado = crearADO("select * FROM tabla) Era algo así... el procedimiento crear ado... solamente con la consulta me devolvía todo el recordset armado... Acá encontré todo el ejemplo hay cosas que no son de esto que me pedís... pero otras que si Public BDPath As String Public BD As Database Public rsBD As Recordset Public BDado As New ADODB.Connection Public rsADO As New ADODB.Recordset Sub Main() BDPath = App.Path & "\Access\FichasPacientes.mdb" frmPrincipal.Show 'MsgBox App.Path & "\Access\FichasPacientes.mdb" End Sub Public Sub AbrirBD() Set BD = OpenDatabase(App.Path & "\Access\FichasPacientes.mdb") End Sub Public Sub CerrarBD() BD.Close End Sub Public Sub ConectarBD(source As String, tipo As CursorTypeEnum) 'source especifica el origen de los registros para el nuevo 'objeto. El valor del origen es el valor del objeto DAO. 'Cuando se crea un nuevo objeto desde un objeto Database el 'argumento source es un TableDef o QueryDef en la base de datos 'o un retorno válido de una consulta SQL o sentencia. Cuando 'se crea un objeto de este tipo el mismo provee el origen de 'datos para el nuevo objeto. Set rsBD = BD.OpenRecordset(source, tipo) End Sub Public Sub AbrirAdo() If BDado.State = adStateclose Then With BDado .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Access\FichasPacientes.mdb" .CursorLocation = adUseClient End With Else MsgBox "ya esta abierto" End If End Sub Public Sub CerrarAdo() BDado.Close End Sub Public Sub ConectarAdo(mSQL As String, adoType As CursorTypeEnum) MsgBox "rsADO.State = adStateClosed - " & adStateClosed rsADO.CursorLocation = adUseClient rsADO.Open mSQL, BDado, adoType, adLockOptimistic 'para ver los adotype reescribe la coma adelante del adotype en la sentencia open End Sub Public Sub DesconectarAdo() rsADO.Close End Sub ESTA DE ABAJO SI ES Function crearRsado(mSQL As String, adoType As CursorTypeEnum) As ADODB.Recordset Dim temp As New ADODB.Recordset AbrirAdo temp.CursorLocation = adUseClient temp.Open mSQL, BDado, adoType, adLockOptimistic Set crearRsado = temp End Function
- Anónimoahora mismo
Añade tu respuesta
Haz clic para
o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.