Rellenar un formulario a partir de un ComboBox
Publicado por Aldarius (2 intervenciones) el 25/12/2008 20:04:43
Llevo varíos días peleándome con un formulario en Access. Resulta que seleccionas un Laboratorio de un control ComboBox y a partir de allí rellena el resto. De momento únicamente voy para que me muestre la actividad (campo CLASIFICACION de una tabla llamada BaseGeneral). Aquí está el código completo:
Option Compare Database
Private cnn As ADODB.Connection
Private rsTBase As ADODB.Recordset
Private strSQL As String
Private Sub cmbNomLab_Click()
strSQL = "SELECT * FROM BaseGeneral WHERE BaseGeneral.[NOMBRE] LIKE '" & cmbNomLab.Text & "'"
rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
txtActividad.SetFocus
txtActividad.Text = rsTBase![CLASIFICACION]
rsTBase.Close
End Sub
Private Sub Form_Load()
Set cnn = New ADODB.Connection
Set rsTBase = New ADODB.Recordset
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.ConnectionString = CurrentDb.Name
cnn.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnn.Close
End Sub
En esta sentencia me da "Se ha producido el error '91' en tiempo de ejecución: Variable de objeto o bloque With no establecido":
rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
Sé que es algo que tiene que ver con la variable "cnn" porque el strSQL te situas encima de la linea amarilla y la sentencia es correcta y hasta te ha cambiado el cmbNomLab.Text por el texto que pone en el combobox, así que lo pilla bien, pero ya no sé a qué coño recurrir.
Hasta había pensado declararlo con motor OLESQL pero parecía algo más engorroso..
Option Compare Database
Private cnn As ADODB.Connection
Private rsTBase As ADODB.Recordset
Private strSQL As String
Private Sub cmbNomLab_Click()
strSQL = "SELECT * FROM BaseGeneral WHERE BaseGeneral.[NOMBRE] LIKE '" & cmbNomLab.Text & "'"
rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
txtActividad.SetFocus
txtActividad.Text = rsTBase![CLASIFICACION]
rsTBase.Close
End Sub
Private Sub Form_Load()
Set cnn = New ADODB.Connection
Set rsTBase = New ADODB.Recordset
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.ConnectionString = CurrentDb.Name
cnn.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnn.Close
End Sub
En esta sentencia me da "Se ha producido el error '91' en tiempo de ejecución: Variable de objeto o bloque With no establecido":
rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
Sé que es algo que tiene que ver con la variable "cnn" porque el strSQL te situas encima de la linea amarilla y la sentencia es correcta y hasta te ha cambiado el cmbNomLab.Text por el texto que pone en el combobox, así que lo pilla bien, pero ya no sé a qué coño recurrir.
Hasta había pensado declararlo con motor OLESQL pero parecía algo más engorroso..
Valora esta pregunta


0