overcloked Posted July 10, 2006 at 09:39 PM Report #37431 Posted July 10, 2006 at 09:39 PM Ppl fiz um procedimento para ir buscar dados a uma BD em Access o problema e que tenho um modulo só para guardar as queries e assim não consigo inserir dados na listview só consigo se correr o procedimento dentro da form code, tenho de dar permissões de alguma maneira para poder "escrever" dados atravez do modulo? O codigo é o seguinte: Public Sub ClientsSearch() 'DB Connection Variables/Objects Dim Query = "SELECT * FROM CG_Clientes" Dim Connection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DdPath & ";User Id=admin;Password=;") Dim Command As OleDbCommand Dim Reader As OleDbDataReader 'Listview Variables/Objects Dim cnt As Short Dim ItemsList As ListViewItem Dim strTeste As String Try Connection.Open() Command = New OleDbCommand(Query, Connection) Reader = Command.ExecuteReader(CommandBehavior.CloseConnection) ChildRemAltClient.ListView.Items.Clear() Do While Reader.Read ItemsList = New ListViewItem strTeste = IIf(Reader.IsDBNull(0), "", Reader.GetValue(0)) ItemsList.Text = strTeste For cnt = 1 To Reader.FieldCount() - 1 If Reader.IsDBNull(cnt) Then ItemsList.SubItems.Add("") Else ItemsList.SubItems.Add(Reader.GetValue(cnt)) End If Next cnt ChildRemAltClient.ListView.Items.Add(ItemsList) Loop Catch ex As Exception WritteDebug(ex.ToString) MsgBox(Erro, MsgBoxStyle.Critical) Finally Reader.Close() Connection.Close() End Try End Sub E tou a chamar este procedimento na form ChildRemAltClient Private Sub BtoClientSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtoClientSearch.Click Call ClientsSearch() End Sub Se alguem tiver alguma pista do porquê isto não dar desta forma, let me know... TKs
Guest id194 Posted July 10, 2006 at 11:54 PM Report #37445 Posted July 10, 2006 at 11:54 PM pelo que eu estou a ver no codigo tu tas a criar a listview programaticamente, tas adicionar items a essa listview mas depois não adicionas a listview ao form, não queres que ela por magia apareça no form pois n? ou então tou a perceber mal o que tens... mas se percebi bem, tens duas hipoteses, ou adicionas a listview ao form programaticamente ou crias a listview visualmente no form que pretendes e depois passas como argumento para esse procedimento o handler do form em questão para puderes adicionares os items a essa listview.
vbmaster Posted July 11, 2006 at 12:33 AM Report #37447 Posted July 11, 2006 at 12:33 AM Ele já deve ter a listview na form, claro....
Guest id194 Posted July 11, 2006 at 02:06 AM Report #37454 Posted July 11, 2006 at 02:06 AM deve, mas não está adicionar os items a ela, está criar uma nova programaticamente mas depois não faz nada com ela...
overcloked Posted July 11, 2006 at 09:44 PM Author Report #37653 Posted July 11, 2006 at 09:44 PM Já tenho a ListView crada a partir do Designer: E sim faço alguma coisa com ela, nesta linha: ChildRemAltClient.ListView.Items.Add(ItemsList) onde ChildRemAltClient é a Form, ListView é o nome da ListView !! O mais estranho é que se puser dentro do codigo da Form e claro substituir o ChildRemAltClient. por Me. ele funciona. De acrescentar que estou a usar Child forms e uso o codigo para as gerrar: Dim NewMDIChild As New ChildRemAltClient NewMDIChild.MdiParent = Me NewMDIChild.Show()
overcloked Posted July 13, 2006 at 09:26 AM Author Report #37980 Posted July 13, 2006 at 09:26 AM Nenhuma ideia? 😄
overcloked Posted July 13, 2006 at 01:35 PM Author Report #38040 Posted July 13, 2006 at 01:35 PM Bem... depois de andar as voltas com isto pus o codigo dentro da form e ficou a funcionar como deve ser. Para meu espanto (ou não) pus um procedimento para limpar as caixas de texto de uma form dentro de um modulo e tabém não consigo fazer com que elas funcionem 😄 o Codigo é este.... Public Sub CleanAddClient() 'Clean all text in texboxes at addClient Form ChildAddClient.TxtName.Text = "" ChildAddClient.TxtMorada.Text = "" ChildAddClient.TxtCodigoPostal.Text = "" ChildAddClient.TxtLocalidade.Text = "" ChildAddClient.TxtTelefone1.Text = "" ChildAddClient.TxtTelefone2.Text = "" ChildAddClient.TxtEmail.Text = "" ChildAddClient.TxtNrContribuinte.Text = "" End Sub onde a ChildAddClient é o nome da Form, n consigo perceber pq que n limpa...! Tenho a certeza que ja fiz isto, será por tar a usar Child Forms?
SoulOnFire Posted July 13, 2006 at 02:26 PM Report #38046 Posted July 13, 2006 at 02:26 PM Bem... depois de andar as voltas com isto pus o codigo dentro da form e ficou a funcionar como deve ser. Para meu espanto (ou não) pus um procedimento para limpar as caixas de texto de uma form dentro de um modulo e tabém não consigo fazer com que elas funcionem 😄 o Codigo é este.... Public Sub CleanAddClient() 'Clean all text in texboxes at addClient Form ChildAddClient.TxtName.Text = "" ChildAddClient.TxtMorada.Text = "" ChildAddClient.TxtCodigoPostal.Text = "" ChildAddClient.TxtLocalidade.Text = "" ChildAddClient.TxtTelefone1.Text = "" ChildAddClient.TxtTelefone2.Text = "" ChildAddClient.TxtEmail.Text = "" ChildAddClient.TxtNrContribuinte.Text = "" End Sub onde a ChildAddClient é o nome da Form, n consigo perceber pq que n limpa...! Tenho a certeza que ja fiz isto, será por tar a usar Child Forms? Experimenta o seguinte mete como parametro uma varivel do tipo System.Windows.Forms.Form (ex. Fr as System.Windows.Forms.Form) depois em vez de meteres ChildAddClient.xxxxx metes Fr.xxxx No final ao chamares a função da ChildAddClient metes CleanAddClient(Me) deve funcionar!! depois diz kk coisa!! Fika bem!! Miguel Duarte!! Fikem Bem!!!Miguel Duarte - (SoulOnFire)O meu BLOG - XAML E WPF - http://wpfpt.wordpress.com/
overcloked Posted July 13, 2006 at 02:43 PM Author Report #38052 Posted July 13, 2006 at 02:43 PM ora.... FOSSSSGGGGGGAAAAA-SSSEEEEE depois de gritar posso passar a explicar o porquê do grito, para já, já consegui... SoulOnFire apesar de ter visto a tua resposta tarde era mesmo isso que faltava, encontrei este link http://www.devcity.net/Articles.aspx?a=ViewArticle&ArticleID=117 onde explica isso tudo. Tive de declarar variaveis assignadas às forms e depois em cada form onload dizer que a variavel correspondente à form era variavel = me. Tecnicamente: 'No modulo Friend Form_AddClient As ChildAddClient 'Na form Private Sub ChildAddClient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Form_AddClient = Me End Sub depois para mudar os atriutos dos objectos da form é só fazer: Form_AddClient.TxtName.Text = "" e é isto mais um dia mais uma coisa nova aprendida 🙂 Apesar das dores de cabeça cada vez gosto mais de dot net a sua maneira peculiar de construção das coisas é exelente depois de aprendida 😄 Aconselho... 😄
overcloked Posted July 13, 2006 at 02:46 PM Author Report #38053 Posted July 13, 2006 at 02:46 PM Mudei o titulo do post acrescentando o [RESOLVIDO] era para mudar mesmo o titulo mas n sei o que hei-de por para ajudar outras pessoas que procurem por um erro tipo este. Alguma ideia do que poderei por no titulo?
vbmaster Posted July 15, 2006 at 01:10 AM Report #38323 Posted July 15, 2006 at 01:10 AM Não precisas de pôr nada, todos os topics com dúvidas já resolvidas são movidos para a Hot topic's sendo esta o local ideial para um user que proventura tenha a mesma dúvida poder procurar somente lá. No entanto agradeço por assinalares aos mod's que a tua dúvida já foi resolvida estando o thread pronto para ser movido.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now