Visual Basic para Aplicaciones - Rellenar un formulario a partir de un ComboBox

Life is soft - evento anual de software empresarial
 
Vista:

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..
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:Rellenar un formulario a partir de un ComboBox

Publicado por cmgcharli (51 intervenciones) el 04/01/2009 11:10:58
Prueba puede que te falte decir si es una consulta la conexión o es una conexion a una tabla ????????

rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdText

Nota: adCmdText, para una consulta
Nota: adCmdTable para conectar con una tabla de la base de datos
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:Rellenar un formulario a partir de un ComboBox

Publicado por Víctor (2 intervenciones) el 04/01/2009 16:14:26
Todo consistía en la propiedad Fields del objeto que representa la tabla rsTBase. No sé porque saltaría allí pero sea como sea ya funciona :)

strSQL = "SELECT CLASIFICACION FROM BaseGeneral WHERE BaseGeneral.[NOMBRE] LIKE '" & cmbNomLab.Text & "'"
rsTBase.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
txtActividad.SetFocus
txtActividad = rsTBase.Fields(0)
rsTBase.Close
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