
Combobox dependientes
Publicado por Carlos (11 intervenciones) el 15/05/2014 10:05:48
Hola, uso una base de datos mysql, son 5 tablas, una para almacenar todos los datos de los vehiculos que en este caso aqui no interviene y luego las siguientes, una tabla marcas, con idmarca y nombre, una tabla modelos,con idmodelo idmarca y nombre,una tabla version con idversion id modelo y nombre y una ultima variante con idvariante id version y nombre, y quiero eso que al grabar el idmarcar de la tabla marcas sea el mismo que el idmarcas de la tabla modelos y eso mismo con las otras para enlazar 4 combobox. Aquí os copio lo que hice ...
FORMULARIO 1 , boton guardar
ese seria el boton guardar de un formulario
FORMULARIO 2 (el de los combobox)
si alguien me pudiese ayudar, muchas gracias y un saludo
FORMULARIO 1 , boton guardar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Dim cmda As New MySqlCommand
Dim s As Integer
Try
_conexion.Open()
cmda = New MySqlCommand("insert INTO marcas (nombre)value('" & ComboBox1.Text & "')", _conexion)
s = cmda.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
con.Close()
_conexion.Close()
Dim cmdb As New MySqlCommand
Dim q As Integer
Try
_conexion.Open()
cmdb = New MySqlCommand("insert INTO modelos (nombre)value('" & TextBox2.Text & "')", _conexion)
q = cmdb.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
_conexion.Close()
Dim idmodelo As New MySqlCommand
Dim cmdc As New MySqlCommand
Dim t As Integer
Try
_conexion.Open()
cmdc = New MySqlCommand("insert INTO variantes (nombre)value('" & textbox2b.Text & "')", _conexion) ' "','" & idmodelo.modelos & "')", _conexion)
t = cmdc.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
_conexion.Close()
Dim cmdd As New MySqlCommand
Dim u As Integer
Try
_conexion.Open()
cmdd = New MySqlCommand("insert INTO versiones (nombre)value('" & TextBox2c.Text & "')", _conexion)
u = cmdd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try
_conexion.Close()
FORMULARIO 2 (el de los combobox)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'Sub para llenar combo1 sencillo sin parámetros
Public Sub DATOSCOMBO(ByVal QUERYCOMBO As String, ByVal COMBO As ComboBox)
CONECTARBD()
If CONECTADA = 1 Then
mycommand = New MySqlCommand(QUERYCOMBO, conexionbd)
myadapter = New MySqlDataAdapter(mycommand)
mydatatable = New DataTable
myadapter.Fill(mydatatable)
COMBO.DataSource = mydatatable
COMBO.ValueMember = "CODIGOC"
COMBO.DisplayMember = "ETIQUETAC"
Else
Exit Sub
End If
End Sub
Private Sub COMBO1()
QUERYCOMBO = "SELECT DISTINCT nombre AS ETIQUETAC, idmarca AS CODIGOC FROM marcas WHERE activo != 0 ORDER BY idmarca"
DATOSCOMBO(QUERYCOMBO, ComboBox1)
End Sub
Private Sub prueba_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call COMBO1()
End Sub
Private Sub ComboBox1_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectionChangeCommitted
VCOMBO1 = ComboBox1.SelectedValue
QUERYCOMBODEP = "SELECT DISTINCT nombre AS ETIQUETAC,idmodelo AS CODIGOC FROM modelos WHERE activo != 0 AND idmarca = " & VCOMBO1 & " ORDER BY nombre"
DATOSCOMBO(QUERYCOMBODEP, ComboBox2)
End Sub
Private Sub ComboBox2_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectionChangeCommitted
VCOMBO2 = ComboBox2.SelectedValue
QUERYCOMBODEP = "SELECT DISTINCT idvariante AS CODIGOC, nombre AS ETIQUETAC FROM variantes WHERE activo != 0 AND idmodelo = " & VCOMBO2 & " ORDER BY nombre"
DATOSCOMBO(QUERYCOMBODEP, ComboBox3)
End Sub
Private Sub ComboBox3_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectionChangeCommitted
VCOMBO3 = ComboBox3.SelectedValue
QUERYCOMBODEP = "SELECT idversion AS CODIGOC, nombre AS ETIQUETAC FROM versiones WHERE activo != 0 AND idvariante = " & VCOMBO3 & " ORDER BY nombre"
DATOSCOMBO(QUERYCOMBODEP, ComboBox4)
End Sub
si alguien me pudiese ayudar, muchas gracias y un saludo
Valora esta pregunta


0