Tengo un problema, para mi muy grande, porque llevo horas intentando encontrar que pasa y no consigo verlo.
Uso una macro al abrir el formulario, parte de ella rellena un Combobox. Y lo hace sin problemas.
El problema viene en el evento Change de un boton que he puesto.
Copio el código que tengo al abrir el formulario...
Private Sub UserForm_Initialize()
'
'cargamos los datos seleccionados del listbox del Userform3
id1 = UserForm3.ListBox2.List(it2, 0) 'cogemos el ID del registro del Listbox Checklist seleccionado
'cargamos los datos en los Combobox y Textbox haciendo una consulta Sql y tomando como dato de referencia el ID
Conexión
Sql = "Select * From Tb_Checklist Where [Id]=" & id1 '& "'"
Rst.Open Sql, Conn, 3, 3, 1
ComboBox1 = Rst.Fields(1).Value
ComboBox2 = Rst.Fields(4).Value
ComboBox3 = Rst.Fields(2).Value
ComboBox4 = Rst.Fields(3).Value
TextBox1 = Rst.Fields(5).Value
TextBox2 = Rst.Fields(6).Value
TextBox3 = Rst.Fields(7).Value
TextBox4 = Format(Rst.Fields(8).Value, "Currency")
TextBox5 = Rst.Fields(9).Value * 100
TextBox6 = Format(Rst.Fields(10).Value, "Currency")
TextBox7 = Format(Rst.Fields(11).Value, "Currency")
TextBox8 = Format(Rst.Fields(13).Value, "Currency")
TextBox9 = Rst.Fields(0).Value
Rst.Close
'macro para llenar el combobox OT
Conexión
Sql = "Select distinct [OT] From Tab_OT ORDER BY [OT] DESC"
'Sql = "Select [OT] From Tab_OT GROUP BY [OT] ORDER BY [OT] DESC, [FECHA_Inicio] DESC"
Rst.Open Sql, Conn, 3, 3, 1
ComboBox1.Column = Rst.GetRows
Rst.Close
'macro para llenar el combobox AGRUPACION
Conexión
Sql = "Select distinct [AGRUPACION] From Grupos ORDER BY [AGRUPACION] ASC"
Rst.Open Sql, Conn, 3, 3, 1
ComboBox3.Column = Rst.GetRows
Rst.Close
'macro para llenar el listbox GRUPOS
Conexión
Sql = "Select distinct [GRUPO] From Grupos WHERE [AGRUPACION]= '" & ComboBox3.Value & "'" & " ORDER BY [GRUPO] ASC"
Rst.Open Sql, Conn, 3, 3, 1
ComboBox4.Column = Rst.GetRows
Rst.MoveFirst
If ComboBox4 = "" Then ComboBox4 = Rst.Fields(0).Value
Rst.Close
Conn.Close
Set Rst = Nothing: Set Conn = Nothing
End Sub
El problema viene cuando ejecuto la macro del botón que rellena el Combobox GRUPOS. Cuando cambio el dato que hay en el Combobox AGRUPACION quiero volver a cargar el Combobox GRUPOS puesto que los datos deben cambiar. Pero me da error.
Este es el código.
Private Sub ComboBox3_Change()
''macro para llenar el combobox GRUPOS
Conexión
Sql = "Select distinct [GRUPO] From Grupos WHERE [AGRUPACION]= '" & ComboBox3.Value & "'" & " ORDER BY [GRUPO] ASC"
Rst.Open Sql, Conn, 3, 3, 1
ComboBox4.Column = Rst.GetRows
Rst.MoveFirst
If ComboBox4 = "" Then ComboBox4 = Rst.Fields(0).Value
Rst.Close
Conn.Close
Set Rst = Nothing: Set Conn = Nothing
End Sub
Y el error que me da es este.
No le veo la salida, si no me echéis una mano estoy atascado aquí.
Os lo agradezco de antemano.
Moisés.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola de nuevo.
Tengo un problema, para mi muy grande, porque llevo horas intentando encontrar que pasa y no consigo verlo.
Uso una macro al abrir el formulario, parte de ella rellena un Combobox. Y lo hace sin problemas.
El problema viene en el evento Change de un boton que he puesto.
Copio el código que tengo al abrir el formulario...
Private Sub UserForm_Initialize() ' 'cargamos los datos seleccionados del listbox del Userform3 id1 = UserForm3.ListBox2.List(it2, 0) 'cogemos el ID del registro del Listbox Checklist seleccionado 'cargamos los datos en los Combobox y Textbox haciendo una consulta Sql y tomando como dato de referencia el ID Conexión Sql = "Select * From Tb_Checklist Where [Id]=" & id1 '& "'" Rst.Open Sql, Conn, 3, 3, 1 ComboBox1 = Rst.Fields(1).Value ComboBox2 = Rst.Fields(4).Value ComboBox3 = Rst.Fields(2).Value ComboBox4 = Rst.Fields(3).Value TextBox1 = Rst.Fields(5).Value TextBox2 = Rst.Fields(6).Value TextBox3 = Rst.Fields(7).Value TextBox4 = Format(Rst.Fields(8).Value, "Currency") TextBox5 = Rst.Fields(9).Value * 100 TextBox6 = Format(Rst.Fields(10).Value, "Currency") TextBox7 = Format(Rst.Fields(11).Value, "Currency") TextBox8 = Format(Rst.Fields(13).Value, "Currency") TextBox9 = Rst.Fields(0).Value Rst.Close 'macro para llenar el combobox OT Conexión Sql = "Select distinct [OT] From Tab_OT ORDER BY [OT] DESC" 'Sql = "Select [OT] From Tab_OT GROUP BY [OT] ORDER BY [OT] DESC, [FECHA_Inicio] DESC" Rst.Open Sql, Conn, 3, 3, 1 ComboBox1.Column = Rst.GetRows Rst.Close 'macro para llenar el combobox AGRUPACION Conexión Sql = "Select distinct [AGRUPACION] From Grupos ORDER BY [AGRUPACION] ASC" Rst.Open Sql, Conn, 3, 3, 1 ComboBox3.Column = Rst.GetRows Rst.Close 'macro para llenar el listbox GRUPOS Conexión Sql = "Select distinct [GRUPO] From Grupos WHERE [AGRUPACION]= '" & ComboBox3.Value & "'" & " ORDER BY [GRUPO] ASC" Rst.Open Sql, Conn, 3, 3, 1 ComboBox4.Column = Rst.GetRows Rst.MoveFirst If ComboBox4 = "" Then ComboBox4 = Rst.Fields(0).Value Rst.Close Conn.Close Set Rst = Nothing: Set Conn = Nothing End Sub
El problema viene cuando ejecuto la macro del botón que rellena el Combobox GRUPOS. Cuando cambio el dato que hay en el Combobox AGRUPACION quiero volver a cargar el Combobox GRUPOS puesto que los datos deben cambiar. Pero me da error.
Este es el código.
Private Sub ComboBox3_Change() ''macro para llenar el combobox GRUPOS Conexión Sql = "Select distinct [GRUPO] From Grupos WHERE [AGRUPACION]= '" & ComboBox3.Value & "'" & " ORDER BY [GRUPO] ASC" Rst.Open Sql, Conn, 3, 3, 1 ComboBox4.Column = Rst.GetRows Rst.MoveFirst If ComboBox4 = "" Then ComboBox4 = Rst.Fields(0).Value Rst.Close Conn.Close Set Rst = Nothing: Set Conn = Nothing End Sub
Y el error que me da es este.
No le veo la salida, si no me echéis una mano estoy atascado aquí.
Os lo agradezco de antemano.
Moisés.