Qué tal, estoy programando una aplicación usando WinFroms VS 2013 que se conecta a una BD de Access
El problema que tengo es a la hora de llenar un combo box a partir de la selección de un Item en otro combo box, abajo el código
Código:
Dim Tabla As String
Dim Tipo As Object
Dim cmb As Object
Dim Donde As String
Dim Columna As String
Dim val As Integer
Dim Id As Object
Dim Ordenar As String
Dim conn As New OleDbConnection
Dim sqlStr As String
Private Sub cmbTipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbTipo.SelectedIndexChanged
cmbInsumo.Items.Clear()
val = 1
LlamaCmb(val)
End Sub
Private Sub cmbInsumo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbInsumo.SelectedIndexChanged
cmbDesc.Items.Clear()
val = 0
LlamaCmb(val)
End Sub
Private Sub LlamaCmb(val)
Tabla = "Insumos"
If val = 1 Then
Tipo = cmbTipo.SelectedItem
cmb = cmbInsumo
Donde = "Tipo_Insumo"
Columna = "Insumo), Insumo_Id"
Ordenar = "Insumo"
ElseIf val = 0 Then
Tipo = cmbInsumo.SelectedItem
cmb = cmbDesc
Donde = "Insumo"
Columna = "Descripcion), Insumo_Id "
Id = "Insumo_Id"
Ordenar = "Descripcion"
End If
CargaCmb(Tabla, Tipo, cmb, Donde, Columna)
Tabla = ""
Tipo = ""
cmb = ""
Donde = ""
Columna = ""
End Sub
Private Sub CargaCmb(Tabla, Tipo, cmb, Donde, Columna)
Try
Dim com As New OleDbCommand
Dim lee As OleDbDataReader
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\proyecto.satpc240\Documents\DB_RecursosMateriales.accdb"
conn.Open()
com = New OleDbCommand
com.Connection = conn
sqlStr = "SELECT Distinct(" & Columna & " FROM " & Tabla & " Where " & Donde & " ='" &
Tipo & "' Order By " & Ordenar
com.CommandType = CommandType.Text
com.CommandText = sqlStr
lee = com.ExecuteReader()
Do While lee.Read()
cmb.Items.Add(lee(Columna))
cmb.ValueMember = lee(Id).ToString
Loop
conn.Close()
Catch ex As Exception
conn.Close()
MsgBox("Error: " & ex.Message)
End Try
End Sub
La excepción solamente despliega como mensaje de error el contenido de la variable Columna : "Insumo), Insumo_Id"
Francamente estoy perdido, ¿Alguien sabe qué podría hacer o leer para saber como darle solución a este problema