Ver Mensaje Individual
  #16 (permalink)  
Antiguo 17/11/2003, 03:22
Avatar de pabli
pabli
 
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0

Carlunchos, todavía no puedes tirar la toalla.

Visual Basic te ha ganado el primer round pero hay que seguir.

ERROR 91: La variable de objeto o la variable de bloque With no está establecida

No has declarado o no has reservado memoria correctamente. El error 91 es otro gran conocido.

Te voy a poner el código entero:

***Código para el formulario***
-----------------------------------------------
Option Explicit

Private Sub Combo1_Click()

'Me aseguro que está cerrado para cerrarlo
If Gado_rec.State <> adStateClosed Then
Gado_rec.Close
End If
'Defino la consulta
Gado_rec.Source = "SELECT * FROM " & Combo1.Text
'Abro el recordset
Gado_rec.Open

Set DataGrid1.DataSource = Gado_rec
'No debo cerrar el recordset mientras quiera los datos en el datagrid
End Sub

Private Sub Form_Load()

'Abro la base de datos
FUN_Abrir_BBDD

'Abro el recorset
Set Gado_rec_tmp = Gado_conn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE"))
While Not Gado_rec_tmp.EOF

Combo1.AddItem Gado_rec_tmp!TABLE_NAME

Gado_rec_tmp.MoveNext
Wend
Gado_rec_tmp.Close

End Sub

Private Sub Form_Unload(Cancel As Integer)

'Cierro la base de datos
FUN_Cerrar_BBDD
End Sub
-----------------------------------------------

***Código para el módulo***
-----------------------------------------------
Option Explicit
'********************
'Variables de la BBDD
Global Gado_conn As ADODB.Connection 'Abre una conexión
Global Gado_rec As ADODB.Recordset 'Para mandatos Select
Global Gado_rec_tmp As ADODB.Recordset 'Para mandatos Select

Public Function FUN_Abrir_BBDD() As Integer

Dim S_cad As String

On Error GoTo CONTROL_ERRORES

'Creo un objeto Connection para abrir la conexión mediante ADO
Set Gado_conn = New ADODB.Connection
Gado_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\TUBBDD.mdb;Persist Security Info=False"

'Creo un objeto Recordset para consultar
Set Gado_rec = New ADODB.Recordset
Gado_rec.ActiveConnection = Gado_conn
Gado_rec.CursorLocation = adUseClient
Gado_rec.CursorType = adOpenKeyset
Gado_rec.LockType = adLockOptimistic
'Creo un objeto Recordset para consultar
Set Gado_rec_tmp = New ADODB.Recordset
Gado_rec_tmp.ActiveConnection = Gado_conn
Gado_rec_tmp.CursorLocation = adUseClient
Gado_rec_tmp.CursorType = adOpenKeyset
Gado_rec_tmp.LockType = adLockOptimistic

FUN_Abrir_BBDD = 0

Exit Function
CONTROL_ERRORES:
FUN_Abrir_BBDD = 1
MsgBox "No es posible establecer la conexión con la BBDD", vbCritical
End
End Function

Public Function FUN_Cerrar_BBDD()

Gado_conn.Close
Set Gado_conn = Nothing
Set Gado_rec = Nothing
Set Gado_rec_tmp = Nothing
End Function
-----------------------------------------------

Esto tiene que funcionar, pues lo he copiado en un proyecto nuevo y sin problemas. No he configurado nada en diseño, solo añadir un combo(Combo1) y un datagrid(Datagrid1), asegúrate que tienen esos nombres y que cambias la BBDD en la cadena de conexión.

Saludos

Última edición por pabli; 17/11/2003 a las 03:24