Ir para o conteúdo
CACO8

Combo boxes em cascata usando código

Mensagens Recomendadas

CACO8

Boa noite pessoal. É a primeira vez que escrevo neste fórum e tenho uma dúvida que não ainda não consegui resolver. Estou a desenvolver uma aplicação no Visual Basic 2010 Express que consiste em manipular dados provenientes de ficheiros access. Criei um ficheiro access que contém informação sobre diferentes equipamentos e é constituído por 6 colunas (TIPO EQUIPAMENTO, COD EQUIPAMENTO, REF EQUIPAMENTO, MARCA, MODELO, SN). O que pretendo é que a informação seja apresentada em comboboxes de forma a poder ser filtrada, visto que o mesmo tipo de equipamento pode ter diferentes códigos, e o mesmo código pode ter referências diferentes, etc. Juntamente envio o código que tenho feito no VB.

Imports System.Data.OleDb

Public Class Form8

Private bstipoequip As New BindingSource

Private bscodequip As New BindingSource

Private bsrefequip As New BindingSource

Private bsmarca As New BindingSource

Private bsmodelo As New BindingSource

Private bssn As New BindingSource

Private Sub Form8_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim con As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\PC\Documents\IST\Tese\Bases de dados Access\2ªtentativa\" & Form1.TextBox1.Text & "EQ01.accdb")

Dim com1 As New OleDbCommand("SELECT DISTINCT [TIPO EQUIPAMENTO] FROM BDPROJ1", con)

Dim dt1 As New DataTable

Dim com2 As New OleDbCommand("SELECT DISTINCT [COD EQUIPAMENTO], [iD] FROM BDPROJ1 WHERE [TIPO EQUIPAMENTO] = '" & Me.TIPO.SelectedText & "'", con)

Dim dt2 As New DataTable

Dim com3 As New OleDbCommand("SELECT DISTINCT [REF EQUIPAMENTO], [iD] FROM BDPROJ1", con)

Dim dt3 As New DataTable

Dim com4 As New OleDbCommand("SELECT DISTINCT [MARCA], [iD] FROM BDPROJ1", con)

Dim dt4 As New DataTable

Dim com5 As New OleDbCommand("SELECT DISTINCT [MODELO], [iD] FROM BDPROJ1", con)

Dim dt5 As New DataTable

Dim com6 As New OleDbCommand("SELECT DISTINCT [sN], [iD] FROM BDPROJ1", con)

Dim dt6 As New DataTable

Dim ad As OleDbDataAdapter

'1 ComboBoxNumeroFuncionarioad = New SqlDataAdapter(com1)

ad = New OleDbDataAdapter(com1)

ad.Fill(dt1)

bstipoequip.DataSource = dt1

TIPO.DataSource = bstipoequip

TIPO.DisplayMember = "TIPO EQUIPAMENTO"

TIPO.ValueMember = "ID"

TIPO.SelectedIndex = -1

'2 ComboBoxNomeFuncionarioad = New SqlDataAdapter(com2)

ad = New OleDbDataAdapter(com2)

ad.Fill(dt2)

bscodequip.DataSource = dt2

Comb1.DataSource = bscodequip

Comb1.DisplayMember = "COD EQUIPAMENTO"

Comb1.ValueMember = "ID"

Comb1.SelectedIndex = -1

'3 ComboBoxMatriculaad = New SqlDataAdapter(com3)

ad = New OleDbDataAdapter(com3)

ad.Fill(dt3)

bsrefequip.DataSource = dt3

Comb2.DataSource = bsrefequip

Comb2.DisplayMember = "REF EQUIPAMENTO"

Comb2.ValueMember = "ID"

Comb2.SelectedIndex = -1

'4 ComboBoxMatriculaad = New SqlDataAdapter(com4)

ad = New OleDbDataAdapter(com4)

ad.Fill(dt4)

bsmarca.DataSource = dt4

Comb3.DataSource = bsmarca

Comb3.DisplayMember = "MARCA"

Comb3.ValueMember = "ID"

Comb3.SelectedIndex = -1

'5 ComboBoxMatriculaad = New SqlDataAdapter(com5)

ad = New OleDbDataAdapter(com5)

ad.Fill(dt5)

bsmodelo.DataSource = dt5

Comb4.DataSource = bsmodelo

Comb4.DisplayMember = "MODELO"

Comb4.ValueMember = "ID"

Comb4.SelectedIndex = -1

'6 ComboBoxMatriculaad = New SqlDataAdapter(com6)

ad = New OleDbDataAdapter(com6)

ad.Fill(dt6)

bssn.DataSource = dt6

Comb5.DataSource = bssn

Comb5.DisplayMember = "SN"

Comb5.ValueMember = "ID"

Comb5.SelectedIndex = -1

End Sub

Private Sub TIPO_SelectionchangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles TIPO.SelectionchangeCommitted

Dim cb As ComboBox = CType(sender, ComboBox)

Select Case cb.Name

Case "TIPO"

bstipoequip.Filter = String.Empty

bsrefequip.Filter = String.Concat("ID=", cb.SelectedValue)

bscodequip.Filter = String.Concat("ID=", cb.SelectedValue)

bsmarca.Filter = String.Concat("ID=", cb.SelectedValue)

bsmodelo.Filter = String.Concat("ID=", cb.SelectedValue)

bssn.Filter = String.Concat("ID=", cb.SelectedValue)

End Select

End Sub

Private Sub SAIR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SAIR.Click

Me.Close()

End Sub

End Class

Ah e agradeço desde já toda a ajuda que me prestarem.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.