• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bioshock

VB 2008 Access (Modo Details)

17 mensagens neste tópico

Boas, cá estou eu novamente para mais uma dúvida.

Bem é o seguinte, eu exporto uma tabela para o VB em modo Detalhe (Details).

Depois, mudifico por exemplo a Textbox Parentesco para ComboBox.

Nessa ComboBox vou querer que apareça (Tio, Mae, Avo) - Que já está definido na BD.

O problema é que, apareçe-me sempre o número em vez do texto.

Do género, em vez de "Tio" apareçe-me "1", em vez de "Mãe" apareçe "2"...

No DataBound Items tenho o seguinte:

Data Source: ParentescoBindingSource

Display Member: Descrição

Value Member: CodigoParentesco

Selected Value: PessoasBindingSource - Parentesco

Já dei mil voltas a isto, já troquei, voltei a trocar, troquei novamente..etc. Mas não consegui nada.

Caso não dê, e alguém saiba fazer via código, agradecia que me dissessem.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de mais obrigado, eis o que não percebo / Não sei o que fazer

          ' Select Statement que irá mostrar todos os vendedores activos, 
          ' excepto o vendedor que será definido no parâmetro
           Dim SQL As String = "SELECT * FROM Vendedores WHERE activo = ? AND vendedor <> ?"

                da.SelectCommand.Parameters.Add("activo", OleDbType.Boolean).Value = True
                da.SelectCommand.Parameters.Add("vendedor", OleDbType.VarChar).Value = "Jorge Paulino"

Vendedores?

Activo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que percebi tens os dados numa tabela correcto?

Qual o campo da tabela que vai aparecer na ComboBox?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Correctissimo.

O Campo é o "Descrição" porque lá depois tem 3 opções (Tio,Avo e Mae).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Correctissimo.

O Campo é o "Descrição" porque lá depois tem 3 opções (Tio,Avo e Mae).

Usando o exemplo do JPaulino  ...

Como vi que tinhas numeros vou partir do principio que cada uma das opcoes

tem um código e que o campo chama-se ID e que a tabela não tem mais campos

A ConnectString é para uma base de dados em Access 2003

        Try
            dim CnnString as String = "Dim CnnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\BaseDados.mdb;User Id=admin;Password=;""
            Using connection As New OleDbConnection(CnnString)

                Dim SQL As String = " SELECT * FROM nomedatabela"
                Dim DA As New OleDbDataAdapter(SQL, connection)
                Dim DS As New DataSet

                DA.Fill(DS)

                With cbo_MOB_Brand
                    .DisplayMember = "Descrição"
                    .ValueMember = "ID"
                    .DataSource = DS.Tables(0).DefaultView

                    .DropDownStyle = ComboBoxStyle.DropDown
                    .AutoCompleteMode = AutoCompleteMode.Suggest
                    .AutoCompleteSource = AutoCompleteSource.ListItems
                End With

	' Seleciona o primeiro registo
                NomedaComboBox.SelectedIndex = 0

            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

Assim já percebes ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que já tentei isso..mas vou experimentar.

Uma coisa, basta apenas inserir esse código? Ou ainda tem mais?

Obrigado pela ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que já tentei isso..mas vou experimentar.

Uma coisa, basta apenas inserir esse código? Ou ainda tem mais?

Obrigado pela ajuda.

Basta isto e podes colocar dentro de uma função e chama-la no OpenForm por exemplo

Se precisares do valor do campo ID é: NomedaComboBox.SelectedValue.ToString

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, fiz como tu disseste e até apareceram lá os dados na Combobox.

O problema é que ela não interage com a DataGrid/Details.

Ou seja, só está preenchida, não faz nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, fiz como tu disseste e até apareceram lá os dados na Combobox.

O problema é que ela não interage com a DataGrid/Details.

Ou seja, só está preenchida, não faz nada.

Só agora falas numa datagrid  B)

O exemplo é para uma simples ComboBox...

Vê este artigo do JPaulino: http://vbtuga.blogspot.com/2008/06/vbnet-dicas-de-programao-5.html

Tens muita informação do Blog do JPaulino é melhor dares uma vista de olhos por lá ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, já consegui resolver , não foi preciso programar, nem nada do género. Era apenas um detalhe.

Se alguém tiver interesse em saber o que tem que se fazer, que poste aqui.

PauloR, obrigado pela tua disponibilidade em ajudar-me.

Cumprimentos.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu estou interessado... B)

CUMPS

Ok, antes de mais, tens de ter uma BD com relações, eu apenas vou fazer de exemplo uma relação, para que seja mais simples te explicar.

Tabela Clientes e Tabela Código de Postal.

Fazes a relação, vais ao VB fazes todo o procedimento, via SQL, para por a funcionar no VB as tabelas.

Irá te aparecer duas Tabelas no "DATA SOURCES" (junto do Solution Explorer) - Tabela Clientes e Tabela Código Postal.

Presumo que tenhas todos os campos correctos, portanto, na Tabela Código Postal, terás estes campos:

CodPostal (Por exemplo)

Descrição (Por exemplo)  * Digo "Por exemplo" porque isto é à escolha da pessoa.

E terás também, outra tabela (Por dentro da Código Postal), chamada Clientes.

Resumindo, terás duas Tabelas Clientes.

Para por a interagir o Código Postal com a Tabela Clientes, terás de fazer o seguinte:

Copias a 1ª Tabela dos Clientes (Sem ser aquela q está dentro do Código Postal), para o Form (Em modo Detalhe)

Depois expandes o Código Postal e clicas no Campo " Descrição ", escolhes " ComboBox " e copias para o Form.

Feito isto, vais à ComboBox que puseste no Form, clicas na setinha da mesma, e seleccionas a opção:

" Use Data Bound Items "

Feito isto, é bastante simples, vamos supor que tu queres ver o Código Postal de cada Cliente em ComboBox.

Data Source: CodigoPostalBindingSource

Display Member: Descrição

Value Member: CodPostal

Selected Value: ClientesBindingSource » Codigo Postal

É só isto, corres o programa e está a funcionar :)

* Este procedimento apenas é feito em Modo Details (Detalhes), caso desejes fazer isto com uma DataGrid, adicionas a DataGrid, Editas as Colunas, poems o Código Postal como ComboBox, e metes os mesmos termos que te disse anteriormente:

Data Source: CodigoPostalBindingSource

Display Member: Descrição

Value Member: CodPostal

Selected Value: ClientesBindingSource » Codigo Postal

Espero ter ajudado, cumprimentos.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e com um datagridview????

:S 

é que o meu programa esta feito só com datagridview ( a parte da consulta)  e não da para por os dados numa imputbox?

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

* Este procedimento apenas é feito em Modo Details (Detalhes), caso desejes fazer isto com uma DataGrid, adicionas a DataGrid, Editas as Colunas, poems o Código Postal como ComboBox, e metes os mesmos termos que te disse anteriormente:

Data Source: CodigoPostalBindingSource

Display Member: Descrição

Value Member: CodPostal

Selected Value: ClientesBindingSource » Codigo Postal

Espero ter ajudado, cumprimentos.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ai para o datagrid é o mesmo que datagridview?

lool

obrigado então...B)

so me falta arranjar modo de fazer com imputbox

0

Partilhar esta mensagem


Link 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