Jump to content
Bessa

Atualizar TextBox a partir de Base de Dados (Access) & Erro ao Sair da Form

Recommended Posts

Bessa

Olá colegas!  :)

Já desenvolvi mais uma coisas no meu programa, mas estou agora com dois problemas:

- 1º -> Mediante o artigo que escolho, tenho um programa diferente (Tenho o atalho do TXT guardado na BD). E queria que, cada vez que mudava de artigo, aparecesse na TextBox que marquei, o atalho guardado na Base de dados.

prob0a1.JPG

Mas não estou a conseguir! :wallbash: Já estive a procurar na Net só que não encontrei nada. :S

Alguém me pode ajudar? :)

O Código que utilizei para filtrar as Operações, GFH e Fases, mediante o Artigo que escolhia, é este:

Dim cn As New System.Data.OleDb.OleDbConnection
        Dim cm As New System.Data.OleDb.OleDbCommand

        cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\bdfelino.accdb"

        cm.Connection = cn

        cm.CommandText = "Select * From associar_ferramentas Where artigo_escolhido Like '" & Artigo_escolhidoComboBox.Text & "%'"

        Dim Adp As New OleDbDataAdapter(cm)
        Dim Dt As New DataTable

        Adp.Fill(Dt)

        Operacao_artigoListBox.DataSource = Dt
        Operacao_artigoListBox.DisplayMember = "operacao_artigo"
        Operacao_artigoListBox.Refresh()

        ListBox2.DataSource = Dt
        ListBox2.DisplayMember = "gfh"
        ListBox2.Refresh()

        ListBox3.DataSource = Dt
        ListBox3.DisplayMember = "ferramenta_corte_selec"
        ListBox3.Refresh()

        ListBox4.DataSource = Dt
        ListBox4.DisplayMember = "ferramenta_posic_selec"
        ListBox4.Refresh()

- 1º -> Ao sair desta Form, dá-me este erro:

probb8f.JPG

Já estive a procurar e encontrei o problema num tópico cá do Fórum, mas não houve resposta conclusiva e a solução dada parece que não resultou. -> LINK

PROBLEMAS RESOLVIDOS! VER SOLUÇÕES ABAIXO!

Entretanto, continuo a pesquisar, para ver se os consigo resolver... :D

Obrigado.

Share this post


Link to post
Share on other sites
bioshock

Podes fazer isso por duas vias alternativas: Datasets ou Databindings. Pessoalmente, uso os Datasets.

Dim conn As New OleDbConnection("...")
Dim query As String = "SELECT atalho FROM Associar_Ferramentas WHERE Artigo_Escolhido = @ArtigoEscolhido"
Dim command As New OleDbCommand(query, conn)
command.Parameters.Add("@ArtigoEscolhido", OleDbType.Text).Value = Artigo_escolhidoComboBox.Text
Dim DAdapter As New OleDbDataAdapter(command)
Dim DSet As New DataSet
DAdapter.Fill(Dset, "Associar_Ferramentas")

aMinhaTextbox.Text = DSet.Tables(0).Rows(0).Item(0).ToString()

http://www.portugal-a-programar.pt/index.php?showtopic=42412

Share this post


Link to post
Share on other sites
Bessa

Problema resolvido!

Muito Obrigado! :)

Mudei apenas 2 ou 3 coisas porque dava erro e por isso tiver a ver como as corrigir. :)

Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\bdfelino.accdb")
        Dim query As String = "SELECT programa FROM Associar_Ferramentas WHERE Artigo_Escolhido Like '" & Artigo_escolhidoComboBox.Text & "%'"
        Dim command As New OleDbCommand(query, conn)

        command.Parameters.Add("@artigo_escolhido", OleDbType.VarChar).Value = Artigo_escolhidoComboBox.Text

        Dim DAdapter As New OleDbDataAdapter(command)
        Dim DSet As New DataSet

        DAdapter.Fill(DSet, "Associar_Ferramentas")

        TextBox1.Text = DSet.Tables("associar_ferramentas").Rows(0).Item("programa") 

A TextBox está  mudar bem e tal. A Funcionar bem! :)

Fica é um pouco marado quando mudo algumas vezes de artigoo (Só tenho 2 para testar)...(Assume outro artigo com aquele atalho e tal...Mas quando tiver isto mais preenchido, deve ficar resolvido ou eu tento resolver. Se não conseguir eu aviso).

Resta o 2º Problema... :D

Já estive a inventar, ao dizer, antes de sair, que o DisplayMember Combo (que está ligada à BD) era igual a ""...Mas mesmo assim não deu! :) (Tentei... lol)

Alguém pode dar uma ajuda?

Entretanto, goooglando...

Share this post


Link to post
Share on other sites
Bessa

Não percebi bem o que poderia fazer, mas tentei colocar isto:

        With Artigo_escolhidoComboBox
            .Name = ""
            .Text = ""
            .DataSource = ""
            .DisplayMember = ""
        End With

Mas no DataSource dava este erro:

A DataBinding complexa aceita como origem de dados uma IList ou uma IListSource.

E se o tirava, dava outra vez o erro do 1º Post.

No entanto, RESOLVI O PROBLEMA:) :)

Aqui fica a solução:

     Artigo_escolhidoComboBox.DataSource = Nothing
        Artigo_escolhidoComboBox.DisplayMember = Nothing

Experimentei assim e deu. :) Não era ""... :) É por estar habituado a fazer isso às textBox!  :D:)

Share this post


Link to post
Share on other sites
Bessa

No problem. :thumbsup:

O que interessa é que me tentaste ajudar...Pela milésima vez! :D :D

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.