aprendiz93 Posted August 2, 2012 at 02:47 PM Report Share #471298 Posted August 2, 2012 at 02:47 PM Olá, Bom dia amigos. Tenho um Datagriedview que é preenchido com dados do BD access. criei uma coluna com Checkboxes para o usário marcar quais registros ele deseja excluir. como eu faço para excluir todos os registro marcados do Checkboxes? Agradeço desde já pela atenção. Até mais. Link to comment Share on other sites More sharing options...
NunoDinis Posted August 2, 2012 at 08:29 PM Report Share #471320 Posted August 2, 2012 at 08:29 PM Numa primeira fase tens que percorrer o datagrid. De seguida verificas se a checkbox na posicao esta "CHECKED". Se sim eliminas. A logica e esta, qualquer duvida no codigo dispoe. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 2, 2012 at 10:24 PM Author Report Share #471331 Posted August 2, 2012 at 10:24 PM Desculpa mais n entendi essa sua Lógica. Vou explicar novamente o que eu preciso. Tenho um Datagriedview que é preenchido com dados do BD access. Criei uma coluna no Datagriedview com Checkboxs para o usário marcar quais registros ele deseja excluir. Após o usuário marca os registros que ele quer excluir gostaria q ele clica-se no botão remover e exclui-se o registro q ele selecionou. Qual seria o código necessário para esse algoritimo? Agradeço pela atenção. Link to comment Share on other sites More sharing options...
NunoDinis Posted August 2, 2012 at 11:33 PM Report Share #471336 Posted August 2, 2012 at 11:33 PM (edited) Acho que fui bem claro, mas volto a explicar, não tem problema 🙂 Tens que percorrer as posiçoes da dataGrid, e se a checkBox estiver checkada vais eliminar, então: For i = 0 To dg.Rows.Count - 1 If dg.Item(0, i).Value = "Sim" Then ''CODIGO PARA ELIMINAR End If Next Percebeste ? NOTA: Nunca utilizei a opção de eliminar com checkbox em dataGrid, portanto não será " .Value = "SIM" ". Edited August 3, 2012 at 08:01 AM by Caça GeSHi Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 3, 2012 at 01:27 PM Author Report Share #471384 Posted August 3, 2012 at 01:27 PM Agradeço pela atenção. Vou fazer o teste e depois posto se deu certo ou não. Link to comment Share on other sites More sharing options...
ricasss Posted August 3, 2012 at 04:52 PM Report Share #471405 Posted August 3, 2012 at 04:52 PM Acho que fui bem claro, mas volto a explicar, não tem problema 🙂 Tens que percorrer as posiçoes da dataGrid, e se a checkBox estiver checkada vais eliminar, então: For i = 0 To dg.Rows.Count - 1 If dg.Item(0, i).Value = "Sim" Then ''CODIGO PARA ELIMINAR End If Next Percebeste ? NOTA: Nunca utilizei a opção de eliminar com checkbox em dataGrid, portanto não será " .Value = "SIM" ". Penso que seja 1 ou 0 😉 Link to comment Share on other sites More sharing options...
Caça Posted August 3, 2012 at 05:00 PM Report Share #471411 Posted August 3, 2012 at 05:00 PM O correcto é If Convert.ToBoolean(dg.Item(0, i).Value) = True Then 1 Report Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 4, 2012 at 01:17 AM Author Report Share #471443 Posted August 4, 2012 at 01:17 AM Para min eliminar todos os registros do bd utilizo o código Dim sintaxe As String = "Delete from BDUSUA" agora neste caso, qual seria o código para eliminar do banco de dados o registro selecionado do checkbox no datagriedview? Link to comment Share on other sites More sharing options...
NunoDinis Posted August 5, 2012 at 03:03 PM Report Share #471534 Posted August 5, 2012 at 03:03 PM Dim query as string = "Delete from TABELA where cod = " & dg.Item(0, i).Value & "" isto dentro da tua condição IF. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 9, 2012 at 06:58 PM Author Report Share #471900 Posted August 9, 2012 at 06:58 PM (edited) Boa Tarde!! Implementei esse código mais n deu em nd. segue o meu código. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Projects\Controle de Despesas\Usuário.accdb;Persist Security Info=False;" For i = 0 To DataGridView1.Rows.Count - 1 If Convert.ToBoolean(DataGridView1.Item(0, i).Value) = True Then 'CODIGO PARA ELIMINAR Dim query As String = "Delete from BDUSUA where codigo = " & DataGridView1.Item(0, i).Value & "" End If Next End Sub Agradeço desde já pela força. Edited August 10, 2012 at 08:01 AM by Caça Link to comment Share on other sites More sharing options...
FreiNando Posted August 9, 2012 at 08:00 PM Report Share #471902 Posted August 9, 2012 at 08:00 PM Nem podia dar. Ou estariamos perante um milagre. O 0(zero) de Item(0,i) indica a coluna. Por isso tens de colocar o numero da coluna que tens a checkbox na primeira expressão, e na outra (código para eliminar) indicas a coluna onde está o codigo (coluna com indice unico ou chave primária da tabela DBUSA). O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 9, 2012 at 08:27 PM Author Report Share #471905 Posted August 9, 2012 at 08:27 PM hm entendi. vou fazer o teste e depois posto se deu certo ou não. Obg pela atenção. Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 10, 2012 at 02:56 PM Author Report Share #471956 Posted August 10, 2012 at 02:56 PM Bom dia!! Ainda continuo com problemas. Mesmo colocando as colunas corretas no código não faz função nenhuma e nem da erro. Segue o código. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Projects\Controle de Despesas\Usuário.accdb;Persist Security Info=False;" For i = 0 To DataGridView1.Rows.Count - 1 If Convert.ToBoolean(DataGridView1.Item(1, i).Value) = True Then 'CODIGO PARA ELIMINAR Dim query As String = "Delete from BDUSUA where Código = " & DataGridView1.Item(2, i).Value & "" End If Next End Sub Link to comment Share on other sites More sharing options...
acao Posted August 10, 2012 at 06:38 PM Report Share #471983 Posted August 10, 2012 at 06:38 PM boas tardes, presumo que faltem comandos para poder deletar os registos. veja este toturial da wiki. http://wiki.portugal-a-programar.pt/dev_net:vb.net:access cumps acao Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 10, 2012 at 06:59 PM Author Report Share #471985 Posted August 10, 2012 at 06:59 PM Boass!! Fiz mais umas implementações no meu código mais agora esta dando error. "Nenhum valor foi fornecido para um ou mais parâmetros necessários." Segue o código. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Projects\Controle de Despesas\Usuário.accdb;Persist Security Info=False;" Dim conecção As New OleDbConnection(ligação) For i = 0 To DataGridView1.Rows.Count - 1 If Convert.ToBoolean(DataGridView1.Item(1, i).Value) = True Then 'CODIGO PARA ELIMINAR Dim sintaxe As String = "Delete from BDUSUA where Código = " & DataGridView1.Item(2, i).Value & "" Dim command As New OleDbCommand(sintaxe, conecção) conecção.Open() Dim insere As Integer = command.ExecuteNonQuery() If insere < 1 Then MsgBox("Usuário não foi exluido!! Tente novamente!!") Else MsgBox("Usuário Excluido com sucesso!!") End If conecção.Close() Dim da As New OleDb.OleDbDataAdapter Dim ds As DataSet Dim sintaxe2 = "Select * From BDUSUA" command.CommandText = sintaxe2 command.Parameters.Clear() da.SelectCommand = command ' Cria um DataSet, ou seja, uma representação em memória da informação ds = New DataSet ' Coloca a informação da tabela definida no DataSet da.Fill(ds, "BDUSUA") ' Define que a fonte de dados da DataGridView é a nossa DataSet ' criando automáticamente as colunas e linhas de dados Me.DataGridView1.DataSource = ds.Tables("BDUSUA") sintaxe = Nothing conecção = Nothing End If Next End Sub Link to comment Share on other sites More sharing options...
FreiNando Posted August 10, 2012 at 08:15 PM Report Share #471986 Posted August 10, 2012 at 08:15 PM Mais uma vez eu digo: usem apenas códigos que saibam o que faz. Algum dia ainda terão dissabores serios. Quanto ao teu problema, 1- Tu pediste ajuda num código para eliminar registos de um tabela, que estão carregados numa datagrid, mas não indicaste como eles foram carregados. 2- O objecto Command deve ser usado depois da conecção ser aberta e antes de a fechar, e não deves dentro de um ciclo estar a abrir e fechar constantemente essa conecção. 3- Também só é suposto recarregares os registos restantes depois de todas as eliminações. 4- A coluna com checkbox está ligada a um campo da tabela BDUSUA? Se não então os valores perdem-se a cada recarregamento. O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 10, 2012 at 08:38 PM Author Report Share #471990 Posted August 10, 2012 at 08:38 PM (edited) Boas! Eu esclareci muito bem o que eu preciso, mais cada um fala para min fazer uma coisa, ai sai essas cacas. Mais vamos lá, vou explicar novamente o que eu preciso. Tenho um Datagriedview ligado a uma tabela do BD access que tem apenas 3 campos, codigo,nome, senha. Criei uma coluna no Datagriedview com Checkboxs chamada Selecionar, para o usário marcar quais registros ele deseja excluir. Após o usuário marca os registros que ele quer excluir gostaria q ele clica-se no botão remover que fica fora do Datagriedview "Óbvio"e exclui-se os registros q ele selecionou. Edited August 10, 2012 at 08:40 PM by aprendiz93 Link to comment Share on other sites More sharing options...
FreiNando Posted August 11, 2012 at 10:21 AM Report Share #472010 Posted August 11, 2012 at 10:21 AM (edited) As cacas que sairam foram apenas porque você não desenvolveu um código seguindo as dicas aqui apresentadas. Você ficou sempre à espera de um código completo e pronto a usar. Revisando: Existe um procedimento, que você não mostrou, para carregar a tabela na datagrid. Essa datagrid tem como primeira coluna uma checkbox, será a coluna 0 O código do usuário será coluna 1 (segunda coluna). A coluna seguinte (2) deve ter o Nome. Então: Para apagar os usuários selecionados na checkbox (coluna 0) deve percorrer todas as linhas da checkbox, e onde o valor for 'True' (Valor Lógico) apagar o respecivo usuário da tabela pelo código (coluna 1). No final carregar a tabela novamente na datagrid, para visualizar os usuários que ficaram. Penso não ser difícil, se você está realmente interessado em aprender a programar. Se não for o caso disso, deixo-lhe uma papinha feita por min: Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Projects\Controle de Despesas\Usuário.accdb;Persist Security Info=False;" Dim conecção As New OleDbConnection(ligação) conecção.Open() Dim command As New OleDbCommand command.Connection = conecção Dim r As Long = 0 For i = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Item(0, i).Value = True Then command.CommandText = "DELETE FROM BDUSUA WHERE Código = " & DataGridView1.Item(1, i).Value r = r + command.ExecuteNonQuery() End If Next conecção.Close() If r Then MsgBox(r & " Usuários Excluidos com sucesso!!") Else MsgBox("Nenhum Usuário não foi exluido!! Tente novamente!!") End If 'Carregar novamente a tabela BDUSUA na DataGridView1 End Sub A escolha é sua. Edited August 11, 2012 at 10:27 AM by FreiNando O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
aprendiz93 Posted August 11, 2012 at 05:17 PM Author Report Share #472030 Posted August 11, 2012 at 05:17 PM Blzs. Obg pela ajuda. Link to comment Share on other sites More sharing options...
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