Visual Basic - Problema con cnx a BD

Life is soft - evento anual de software empresarial
 
Vista:

Problema con cnx a BD

Publicado por Javier (2 intervenciones) el 12/02/2007 20:11:26
Keo nda estoy haciendo una aplicacioncita de base de datos:

Y cree un modulo para la conexion de la sig manera:
Public conexion As ADODB.Connection
Public Sub conecta()
Set conexion = New ADODB.Connection
Set rs = New ADODB.Recordset

With conexion
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Persist Security Info=False;" & _
"Data Source= C:\Documents and Settings\Yuske\Mis documentos\Mis archivos recibidos\PROYECTOEMILIACASTILLO\EmiliaCastillo97.mdb;" & _
"Integrated Security= SSPI"
.Open
End With
End Sub
... y en una form kiero llenar un combo con unos datos ke jalo del recordset... paa esto cree una funcion..
Dim rs2 as ADODB.Recordset
Public Function llenaCombo()

Set rs2 = New ADODB.Recordset

rs2.Open "SELECT DISTINCT Coleccion FROM Productos", conexion, adOpenDynamic, adLockOptimistic
rs2.MoveFirst

Do Until rs2.EOF
Combo1.AddItem rs2("Coleccion")
rs2.MoveNext
Loop

End Function
y... la mando llamar en el Form....cuando se carga...

Bueno el problema es ke kuando intento hacer esto y lo compilo me dice ke la conexion esta cerrada o no se puede usar en este contexto... no se cual sea el problema...soy un poco nuevo en esto de vb.... y ps ya me ha kitado un tiempo... si alguien me puede ayuda r se lo agradeceria
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
sin imagen de perfil

RE:Problema con cnx a BD

Publicado por kdlc (226 intervenciones) el 13/02/2007 06:18:31
Javier,
Lo que puedes hacer es que en tu modulo en vez de llamarle "conecta" cambialo por SUB MAIN y en las propiedades del projecto selecciona como Objeto de inicio la rutina sub main, en esta rutina pones el codigo de tu conneccion, entonces con esto le dices a tu app que ejecute la connecion y luego pase al form.

Entonces en resumen deberias tener 2 archivos en tu projecto:
FORM1.FRM
Modulo.bas

En Modulo.bas es donde creas a sgte SUB:

Public Sub main()
Set conexion = New ADODB.Connection
Set rs = New ADODB.Recordset
With conexion
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Persist Security Info=False;Data Source= C:\NWIND.mdb;Integrated Security= SSPI"
.Open
End With
Form1.Show <- para regresar al FORM1 y puedas cargar tu combobox
End Sub

Asegurate de que el projecto se inicia cargando el SUB MAIN de este modulo. al final del sub he puesto un Form1.show para mostrar el form1. En el evento FORM_LOAD() del FORM1 haces la llamada para popular el combo box.

esa es una forma, la sgte es que en tu formulario haces directamente la llamada a la SUB conecta algo como esto:

Private sub Form_load()
Call Conecta() '<- para iniciar la connecion a la BD esta rutina en tu modulo.bas
'Codigo para popular el combo box ...
CALL LLenacombo()
End Sub

y listo eso seria todo, el error que tienes es que quieres ejecutar el recordset con una conneccion cerrada.

Saludos,

Kdlc
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:Problema con cnx a BD

Publicado por Javier (2 intervenciones) el 14/02/2007 03:27:35
Gracias, muchas gracias, funciono.... estamos en contacto jaja... pero por el momento gracias... tengo unas dudads de excel pero mejor luego...jaja...nos vemos
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