Visual Basic - HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Life is soft - evento anual de software empresarial
 
Vista:

HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por DESESPER_ADO (47 intervenciones) el 05/02/2005 20:28:28
HE DESARROLLADO UN SISTEMA QUE UTILIZA VARIOS FORMULARIOS Y EN CADA UNO DE ELLOS HAGO UNA CONEXIÓN A LA BASE DE DATOS PUR MEDIO DE UN ADODC , LO QUE QUIERO SABER ES QUE SI SE PUEDE HACER UNA SOLA CONEXIÓN A LA BASE DE DATOS, YA QUE EN CADA FORMAULARIO LA CONEXIÓN ES LA MISMA CON LOS MISMOS ADODC's. LO REQUIERO PARA OPTIMIZAR UN POCO MI CÓDIGO, YA QUE CON ESTO ME PARECE QUE ES UN POCO REDUNDANTE.

AGRADECERÉ MUCHO A QUIEN ME DIGA CÓMO HACERLE.-

SALUDOS
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:HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por miguel (1042 intervenciones) el 07/02/2005 17:02:52
Si utilizas el control ADODC no puedes realizar lo que deseas, debido a que esta ligado por tabla seguramente en cada formulario tienes una tabla diferente conectada al control adodc asi que lo mas recomendable es que no utilizes el control sino que lo hagas con variables de conexion para asi realizar tus grabados,borrados y actualizaciones y así poder realizar uno sola conexion a la vez, si te decides te hecho la mano 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

RE:HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por Benjo (679 intervenciones) el 07/02/2005 18:24:50
Ciertamente como expone Miguel te va a ser mucho más sencillo implementar tu conexión directamente por código desde un Modulo bas, ya que de esa manera tendrías acceso global al recordset. No obstante ello, ya como he mencionado en la respuesta que te di en el Foro Visual Basic Avanzado, es posible manejar cuanquier control contenido en un formulario siempre y cuando referencies primeramente el nombre del Formulario que contiene el Control. Por ejemplo si el control ADODC1 está en Form1 y vos querés cambiar su RecordSource desde Form2, pues entonces lo que debés ahcer es referenciarlo a través de su formulario
Form1.ADODC1.RecordSource=" Select ......."

Igual te repito, que concuerdo con Miguel en cuanto a que es mucho más eficiente utilizar código en lugar de ADODC, si es que tienes tiempo y oportunidad para implementarlo. No es ningún misterio y a la larga te evita cientos de inconvenientes que no puede ser salvado con un CONTROL ADODC.
Obviamente es tu decisión.
Mucha suerte con tu Proyecto.
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

RE:HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por DESESPER_ADO (47 intervenciones) el 08/02/2005 05:52:31
AGRADEZCO SU AYUDA. Y EFECTIVAMENTE TENÍA ALGO DE IDEA ACERCA DE ESO PORQUE LO INTENTÉ HACER CON EL CONTROL ADODC Y ME DECÍA EN CADA FORMULARIO QUE NO SE HABÍA ESTABLECIDO UNA CONEXIÓN O ALGO ASÍ, Y NO LES MENCIONÉ QUE TAMBIÉN UTILIZO CONEXIONES DEL TIPO;

Set DB = New Connection
DB.CursorLocation = adUseClient
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MiBase.mdb;Persist Security Info=False"
(Para el caso de access)

Y ESA CONEXIÓN LA UTILIZO DE LA SIGUIENTE MANERA:

Set MiConexion = New Recordset
MiConexion.Open "SELECT campo1,campo2,...,campoN FROM MiTabla ", DB, adOpenStatic, adLockOptimistic

esto estaría bien como para utilizarla en un módulo para no hacer tantas conexiones?, y cómo?

GRACIAS.
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

RE:HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por chicogb (4 intervenciones) el 08/02/2005 14:54:18
disculap se olvidaba
en el evento load del formulario debes llamar a la funcion que conecta a la BD
en este caso debes escribirlo asi:

Private Sub Form_Load()
CargarBaseDatos
End Sub
de esta manera ya puedes utilizar la Conexion cnBaseDatos
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

RE:HACER UNA SOLA CONEXIÓN A BD DE VARIOS FORMS

Publicado por chicogb (4 intervenciones) el 08/02/2005 14:50:55
mira yo trabajo de la siguiente forma atraves del objeto recorset, creo que tu lo manejas , bueno
1- creo un modulo por ejemplo llamandolo ModPrincipal
2- Escribo el siguiente codigo en el

Option Explicit
Public cnBaseDato As Connection ' con esta voy a conectarme a la BD
Public Function CargarBaseDatos()
Set cnBaseDato = New ADODB.Connection
With cnBaseDato
.Provider = "Microsoft.Jet.OLEDB.4.0" 'motor BD acces
.ConnectionString = App.Path + "\BASEDATOS.mdb"
.Open
End With
End Function

3- luego para establecer una consulata en cualquier formulario escribes lo siguientes:
Public RsConsulatX As Recordset
Set RsConsulatX = New Recordset
With RsConsultaX
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.Open "Select * from TablaX", cnBaseDato
'siendo cnBaseDato la conexion a la BD para utilizarla en cualquier consulta
End With
4 - luego manejas el recorset contiene todos los datos de la tabla para mostrarlos debes hacer lo sgte
txtnombre.text = RsConsultaX!NombreCampo ' respeta el signo !
' y haci para todos los demas campos

espero que te sirva o que lo entientas vale
cualquier consulta al mail
chao
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

RE:faltaba codigo

Publicado por chicogb (4 intervenciones) el 08/02/2005 14:56:44
disculap se olvidaba
en el evento load del formulario debes llamar a la funcion que conecta a la BD
en este caso debes escribirlo asi:

Private Sub Form_Load()
CargarBaseDatos
End Sub
de esta manera ya puedes utilizar la Conexion cnBaseDatos
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