Jump to content
zei

Procurar um valor num registo com ACCESS

Recommended Posts

zei

Boas antes +

Tenho um problema que gostaria de resolver. Tenho determinados valores que é chave primaria de uma tabela numa listbox em que gostaria de procura-los na base de dados, e tenho outra tabela que a mesma e chave externa e tenho de pegar nesses valores para adiciona-los a outra listbox,deixo aqui o codigo que tenho

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim introws As Integer
        Dim blnfound As Boolean
        blnfound = False
        Dim strtext As String
        Dim strname As String
        Dim inttotrec As Integer
        inttotrec = RestauranteDataSet.Tables("Categoria").Rows.Count
        introws = 0
        strname = UCase(RestauranteDataSet.Tables("Categoria").Rows(introws).Item("id_categoria"))
        [b][b]]TextBox1.Text = ListBox1.Items.Add(ListBox1.SelectedItems)[/b][/b]
        strtext = UCase(TextBox1.Text)
        If (strtext = strname) Then
            blnfound = True
            ListBox2.Text = RestauranteDataSet.Tables("Produto").Rows(introws).Item("id_produto")
        End If
        While (strtext <> strname) And (introws < inttotrec - 1)
            introws = introws + 1
            strname = UCase(RestauranteDataSet.Tables("Produto").Rows(introws).Item("id_produto"))
            If (strtext = strname) Then
                blnfound = True
                ListBox2.Items.Add(RestauranteDataSet.Tables("Produto").Rows(introws).Item("descrição"))
            End If
        End While
        If blnfound = False Then
            MsgBox("Record not found", MsgBoxStyle.Information, "Search a Record")
        End If
    End Sub

Encontrei este código algures na Internet mas que supostamente era para usar com textbox e estou a tentar executa-lo com listbox mas não está a funcionar. Dá erro no que está a negrito, nao consigo corrigilo. Não é possível modificar a colecção de itens quando a propriedade DataSource está definida.

Obrigado

Share this post


Link to post
Share on other sites
Caça

Bem Vindo

Antes de executares este código não definiste um datasource para a tua ListBox1, tipo isto

ListBox1.DataSource = RestauranteDataSet.Tables("Nome de uma tabela")


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

Coloquei esse comando antes dos outros todos e dá o mesmo.

eu na listbox estou a usar Data bound items.

Share this post


Link to post
Share on other sites
Caça

Se quiseres ir adicionando mais itens, não podes definir um datasource para a listbox, a menos que sempre que queiras adicionar um item a listbox adiciones um registo ao dataset em vez de adicionares directamente na listbox.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

Se calhar nao me fiz entender vou postar aqui uma imagem para verificares mesmo que quero.

[th.544624c299.jpg

Sem usar data bounds a procura nao funciona certo?

Entao tenho de listar a listbox1 da tabela Categoria para poder ver os produtos na listbox2 pertencentes a cada categoria

Share this post


Link to post
Share on other sites
Caça

ListBox1.Items.Add(ListBox1.SelectedItems)

O teu problema está aqui, para contornares podes fazer de várias maneiras.

Podes adicionar os registos da mesma maneira que estás a adicionar na listbox2 ou então continuas com databound e em vez de fazeres como o acima indicado fazes assim

RestauranteDataSet.Tables("Nome de uma tabela").Rows.Add("Item a adicionar")

O novo item é automaticamente inserido na listbox


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

não estou é a perceber onde tenho de por o que me deste.

Sou um pouco inexperiente nisto, o meu objectivo com este código é comparar o id_categoria seleccionado na listbox1 e ir procurar na base de dados os produto com esse tal id e adiciona-los a listbox2

Share this post


Link to post
Share on other sites
Caça

Será que a tua intenção, em vez de esta

TextBox1.Text = ListBox1.Items.Add(ListBox1.SelectedItems)

é esta?

TextBox1.Text = ListBox1.SelectedItems(0)


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

Será que a tua intenção, em vez de esta

TextBox1.Text = ListBox1.Items.Add(ListBox1.SelectedItems)

é esta?

TextBox1.Text = ListBox1.SelectedItems(0)

mas assim nao adiciono aquele k estou a seleccionar mas o que esta na posição 0

dá erro: A conversão do tipo 'DataRowView' para o tipo 'String' não é válida.

Share this post


Link to post
Share on other sites
Caça

Não, assim adicionas o primeiro dos selecionados


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

hmmm... mas da erro na mesma :P

        TextBox1.Text = ListBox1.SelectedItems(0)

A conversão do tipo 'DataRowView' para o tipo 'String' não é válida.

Share this post


Link to post
Share on other sites
Caça

Substitui

TextBox1.Text = ListBox1.SelectedItems(0)

por

TextBox1.Text = ListBox1.SelectedItems(0).ToString


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

hmmm sim ja deu alguma coisa, mas em vez de adicionar o id, ele esta a escrever isto na textbox System.Data.DataRowView

Share this post


Link to post
Share on other sites
Caça

Desculpa lá, coloca antes assim

TextBox1.Text = ListBox1.SelectedItems(0)(0).ToString


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
zei

ja deu! =D

Obrigado

Mas tipo, eu tenho mais que uma bebida na base de dados e só aparece 1a sabes o pk?

Talvez o meu ciclo n esteja a funcionar bem

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.