Ayuda con Error 3709 en Vb 6.0: ¿Cómo conectar mi base de datos access con mi programa en VB 6.0?
Hola a todos. Soy nuevo programando en vb 6.0 y estoy realizando un programa para el control de becas y cuando ejecuto el mismo sale el siguiente error 3709: "No se puede utilizar la conexión para realizar esta operación. Está cerrada o no es válida en este contexto."
En un módulo coloque el siguiente código para enlazar la bd al programa:
Public cn As New Connection
Public rsbecas As New Recordset
Public rsempleado As New Recordset
Public rsregistro As New Recordset
Public rsbeneficiario As New Recordset
Public rsmunicipio As New Recordset
Public rs As New Recordset
Public Rstemp As New Recordset
Public Sub Conectar()
cn.Provider = "Microsoft.Jet.Oledb.4.0"
cn.Open (App.Path + "\Sistema de Becas UNEFA.mdb")
End Sub
Public Sub llenarcombo(c As ComboBox, t As String, col As Integer)
If Rstemp.State = 1 Then Rstemp.Close
Dim sql$
sql = "select * from " + t
Rstemp.Open sql, cn, adOpenStatic, adLockOptimistic
Do While Not Rstemp.EOF
c.AddItem Rstemp(col)
Rstemp.MoveNext
Loop
Rstemp.Close
End Sub
Public Sub limpiar(f As Form)
Dim c As Control
For Each c In f
If (TypeOf c Is TextBox) Or (TypeOf c Is ComboBox) Then c.Text = ""
If TypeOf c Is OptionButton Then c.Value = False
Next
End Sub
Public Function BuscarDato(Tabla As String, Campo As String, Cond As String, Ncol As Integer) As String
Dim sql$, Rstemp As New Recordset
sql = "Select * From " + Tabla + " Where " + Campo + "='" & Cond & "'"
Set Rstemp = cn.Execute(sql)
If Not (Rstemp.EOF) Then
BuscarDato = Rstemp(Ncol)
Else
BuscarDato = ""
End If
Rstemp.Close
End Function
Public Sub main()
Call Conectar
frmlogo.Show
End Sub
Public Function BuscarDatoNum(Tabla As String, Campo As String, Cond As String, Ncol As Integer) As String
Dim sql$, Rstemp As New Recordset
sql = "Select * From " + Tabla + " Where " + Campo + "= " & Cond & " "
Set Rstemp = Cn.Execute(sql)
If Not (Rstemp.EOF) Then
BuscarDatoNum = Rstemp(Ncol)
Else
BuscarDatoNum = ""
End If
Rstemp.Close
End Function
Y cuando ejecuto el programa después de entrar en el sistema y trato de abrir un formulario (Beneficiario por ejemplo) me aparece el error.
Este es el código del formulario:
Private Sub Form_Load()
If rsregistro.State = 1 Then
rsregistro.Close
End If
sql = "select * from Registro"
rsregistro.Open sql, cn, adOpenStatic, adLockOptimistic (Aquí muestra el error en cada formulario que abro)
Call llenarcombo(cbomun, "municipio", 1)
Call habilitar(True)
Call mostrardatos
End Sub