Tengo dos combobox cb_materia, cb_grado
Lo que necesito hacer es que cuando despiege cb_grado me aparezca el nombre de los grados(sexto, septimo, etc.) y al seleccionar sexto en el combobox cb_materia me aparezca los nombres de las materias(ingles, español, etc) registradas para ese grado(sexto) cuando selecciono la materia(ingles) debe aparcerme en un columnview una lista con los logros de esa materia(ingles) para ese grado(sexto)
la tabla de los logros es la siguiente (logro(id_logro, nombre_logro, valor_logro, id_registro_materia))
en un modulo tengo la conexion a la base de datos y aqui mismo lleno los combobox
Asi lleno el combobox cb_grado (el primer hresul me muestra la materia pero por codigo no por nombre, el segundo hresul(comentado) me muestra el nombre pero no se como ligarlo con las materias, el primer clave4 va con el primer hresul y el segundo clave4(comentado) va con el segundo hresul)
Public Sub listado_gra(lista_gra As ComboBox)
Dim Clave4 As String
hConn = ConectarBase()
lista_gra.Add("Seleccionar")
hresul = hConn.Exec("select DISTINCT id_grado from tb_registro_materia")
' hresul = hConn.Exec("Select * from tb_grado")
Do While hresul.Available
Clave4 = hresul["id_grado"]
' Clave4 = hresul["nombre_grado"]
lista_gra.Add(Clave4)
hresul.MoveNext()
Loop
End
Dim Clave4 As String
hConn = ConectarBase()
lista_gra.Add("Seleccionar")
hresul = hConn.Exec("select DISTINCT id_grado from tb_registro_materia")
' hresul = hConn.Exec("Select * from tb_grado")
Do While hresul.Available
Clave4 = hresul["id_grado"]
' Clave4 = hresul["nombre_grado"]
lista_gra.Add(Clave4)
hresul.MoveNext()
Loop
End
No tengo muy claro como llenar el segundo combobox cb_materia hasta el momento tengo esto:
Public Sub listado_mat(lista_mat As ComboBox)
Dim filtro As String
Dim Clave1 As String
filtro = Ver_Logros.cb_grado.Text
hConn = ConectarBase()
lista_mat.Add("Selecionar")
hresul = hConn.Exec("select id_materia from tb_registro_materia")
filtro = hresul!id_grado
' hresul = hConn.Exec("Select * from tb_materia")
Do While hresul.Available
Clave1 = hresul["id_materia"]
' Clave1 = hresul["name_materia"]
lista_mat.Add(Clave1)
hresul.MoveNext()
Loop
End
Dim filtro As String
Dim Clave1 As String
filtro = Ver_Logros.cb_grado.Text
hConn = ConectarBase()
lista_mat.Add("Selecionar")
hresul = hConn.Exec("select id_materia from tb_registro_materia")
filtro = hresul!id_grado
' hresul = hConn.Exec("Select * from tb_materia")
Do While hresul.Available
Clave1 = hresul["id_materia"]
' Clave1 = hresul["name_materia"]
lista_mat.Add(Clave1)
hresul.MoveNext()
Loop
End
En el formulario principal tengo esto:
Private hConn As Connection
Private hresul As Result
Public Sub Form_Open()
Me.Center
If Not Exist(User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes/db_rn")
Try Mkdir User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes"
Copy "db_rn" To User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes/db_rn"
Endif
tabla.Clear
hConn = general.ConectarBase()
general.listado_gra(cb_grado)
End
Public Sub cb_grado_Change()
If cb_grado.Text = "Seleccionar" Then
cb_mat.Clear()
Else
cb_mat.Clear()
general.listado_mat(cb_mat)
Endif
End
Public Sub cb_mat_Change()
Dim x As String
If cb_mat.Text = "seleccionar" Then
tabla.Clear()
Else
tabla.Clear
hConn = general.ConectarBase()
tabla.Columns.Count = 4
tabla.Columns[0].text = "Id logro"
tabla.Columns[0].Width = 50
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = "Logro"
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 120
tabla.Columns[2].text = "Id Registro de materia"
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[2].Width = 50
tabla.Columns[3].text = "Valor del logro"
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 20
hresul = hconn.Exec("Select * from tb_logro")
Do While hresul.Available
x = hresul["id_logro"]
tabla.Add(x, x)
tabla[x][1] = hresul["nombre_logro"]
tabla[x][2] = hresul["id_registro_materia"]
tabla[x][3] = hresul["valor_logro"]
hresul.MoveNext()
Loop
Endif
End
Private hresul As Result
Public Sub Form_Open()
Me.Center
If Not Exist(User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes/db_rn")
Try Mkdir User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes"
Copy "db_rn" To User.Home &/ "Documents/Arshal/prog_gambas_pro/draft_notes/db_rn"
Endif
tabla.Clear
hConn = general.ConectarBase()
general.listado_gra(cb_grado)
End
Public Sub cb_grado_Change()
If cb_grado.Text = "Seleccionar" Then
cb_mat.Clear()
Else
cb_mat.Clear()
general.listado_mat(cb_mat)
Endif
End
Public Sub cb_mat_Change()
Dim x As String
If cb_mat.Text = "seleccionar" Then
tabla.Clear()
Else
tabla.Clear
hConn = general.ConectarBase()
tabla.Columns.Count = 4
tabla.Columns[0].text = "Id logro"
tabla.Columns[0].Width = 50
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = "Logro"
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 120
tabla.Columns[2].text = "Id Registro de materia"
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[2].Width = 50
tabla.Columns[3].text = "Valor del logro"
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 20
hresul = hconn.Exec("Select * from tb_logro")
Do While hresul.Available
x = hresul["id_logro"]
tabla.Add(x, x)
tabla[x][1] = hresul["nombre_logro"]
tabla[x][2] = hresul["id_registro_materia"]
tabla[x][3] = hresul["valor_logro"]
hresul.MoveNext()
Loop
Endif
End
De antemano muchas gracias por su ayuda