Chamuanza Posted July 3, 2023 at 08:13 AM Report Share #631416 Posted July 3, 2023 at 08:13 AM Bom dia a todos, mais uma vez venho beber àgua ao pote (como diziam os antigos) Tenho uma aplicação executada por mim e para minha utilização de despesas e receitas, sucede que ao fazer uma busca entre datas não aparecem varios registos que se encontram na tabela. Sinceramente não sei o que sucedeu, mas consigo repor os registos um a um com a chamada do respectivo e salvar de novo o mesmo. Sucede que tenho centenas de registos nesta situação, como fazer para repor pelos menos 10 ou 20 de cada vez. Uso esta rotina para repor um de cada vez. Agradeço desde já uma orientação. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Contador As Integer For ContaLinhas As Integer = 0 To DadosActuaisDataGridView.RowCount - 1 For Colunas As Integer = 2 To 2 If DadosActuaisDataGridView.Item(2, ContaLinhas).Selected = True Then Contador = Contador + 1 DadosActuaisBindingNavigatorSaveItem.PerformClick() End If Next Colunas Next ContaLinhas End Sub Link to comment Share on other sites More sharing options...
Cerzedelo Posted July 4, 2023 at 01:40 PM Report Share #631422 Posted July 4, 2023 at 01:40 PM (edited) Em 03/07/2023 às 09:13, Chamuanza disse: Bom dia a todos, mais uma vez venho beber àgua ao pote (como diziam os antigos) Tenho uma aplicação executada por mim e para minha utilização de despesas e receitas, sucede que ao fazer uma busca entre datas não aparecem varios registos que se encontram na tabela. Sinceramente não sei o que sucedeu, mas consigo repor os registos um a um com a chamada do respectivo e salvar de novo o mesmo. Sucede que tenho centenas de registos nesta situação, como fazer para repor pelos menos 10 ou 20 de cada vez. Uso esta rotina para repor um de cada vez. Agradeço desde já uma orientação. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Contador As Integer For ContaLinhas As Integer = 0 To DadosActuaisDataGridView.RowCount - 1 For Colunas As Integer = 2 To 2 If DadosActuaisDataGridView.Item(2, ContaLinhas).Selected = True Then Contador = Contador + 1 DadosActuaisBindingNavigatorSaveItem.PerformClick() End If Next Colunas Next ContaLinhas End Sub Esta sua explanação está no mínimo muito confusa. Em 1º lugar refere que não consegue fazer busca de todos os registos que se encontram na BD, entre duas datas. Experimente o comando sql: SELECT Nomedacoluna(s) FROM Nomedatabela WHERE Nomedacoluna BETWEEN valor1 AND valor2 Neste caso o nome da coluna do WHERE seria a data e os valores do BETWEEN seria a primeira data e a segunda data. Agora atente ao formato da data, porque se na instrução sql passar como string e na base de dados estiver como date, é provável que não funcione, pelo que terá de fazer a conversão. A segunda parte não percebo o que pretende, é gravar novamente o mesmo registo? Mas olhando na transversal para o código há dois pontos a considerar: 1- tem uma variável contador que não inicializa; condator=0 2- tem o contador a incrementar o valor 1 dentro do for que teoricamente lê uma só coluna. O correcto não seria o contador estar a incrementar as linhas da tabela, se assim é, neste caso tem de colocar o contador fora do for da coluna e dentro do for da linha. Edited July 4, 2023 at 01:41 PM by Cerzedelo Link to comment Share on other sites More sharing options...
Chamuanza Posted July 4, 2023 at 03:08 PM Author Report Share #631423 Posted July 4, 2023 at 03:08 PM Boa Tarde Cerzedelo, um obrigado pela atenção desde já. Já tinha constatado que o contador não estava fazer nada nessa posição. Cheguei a conclusão que para repor os registos tenho que os regravar de novo um a um. Abro a aplicação, selecciono o registo pretendido na coluna 2, do form1, salta uma mensagem a perguntar se pretendo alterar, respondo "sim", a celula correspondente fica sellecionada, e regravo com o comando "DadosActuaisBindingNavigatorSaveItem.PerformClick()" A quetão é como proceder para selecionar vários registos e gravar. Se puderes dar umas dicas agradecia Link to comment Share on other sites More sharing options...
Cerzedelo Posted July 4, 2023 at 06:34 PM Report Share #631424 Posted July 4, 2023 at 06:34 PM Em 04/07/2023 às 16:08, Chamuanza disse: Boa Tarde Cerzedelo, um obrigado pela atenção desde já. Já tinha constatado que o contador não estava fazer nada nessa posição. Cheguei a conclusão que para repor os registos tenho que os regravar de novo um a um.que Abro a aplicação, selecciono o registo pretendido na coluna 2, do form1, salta uma mensagem a perguntar se pretendo alterar, respondo "sim", a celula correspondente fica sellecionada, e regravo com o comando "DadosActuaisBindingNavigatorSaveItem.PerformClick()" A quetão é como proceder para selecionar vários registos e gravar. Se puderes dar umas dicas agradecia Ainda não entendi o porquê de querer regravar os dados, os mesmos não estão presentes na tabela? Ou pretende alterar os dados que estão na tabela por novos valores? Se pretende alterar os dados e utiliza o BidingNavigator, pode criar um evento click e dentro desse evento colocar a instrução: TableAdapterName.Update(DataSetName.TableName) Claro que terá de alterar os parâmetros DatasetName e TableName para os dados da sua aplicação. Ver: https://learn.microsoft.com/en-us/dotnet/desktop/winforms/controls/load-save-and-cancel-bindingnavigator?view=netframeworkdesktop-4.8 Pode também em alternativa fazer essas alterações via programática com sql e aí pode utilizar o ciclo for como tem anteriormente para ler as linhas da tabela e depois com uma instrução Update ir alterando com os valores que pretende alterar. Ver o video: https://www.youtube.com/watch?v=CBwVbNeF3VY Link to comment Share on other sites More sharing options...
Chamuanza Posted July 4, 2023 at 09:36 PM Author Report Share #631425 Posted July 4, 2023 at 09:36 PM Bem eu acho que tive um problema quando alterei o Office para uma versão mais recente, e que depois retornei para a versão que tinha, deve ter mudado alguns parametros em relaç ao ao Visual Studio, e que provocou esta situação. Quanto a sua proposta (TableAdapterName.Update(DataSetName.TableName) quando faço" DadosActuaisBindingNavigatorSaveItem.PerformClick()" vai fazer o Update como propõe. A minha ideia era conseguir criar um array com as linhas selecionadas e proceder a regravação, será possivel e executavel? Aproveitando a deixa de ajuda, não consigo ver a barra de eventos, quando estou no código por exemplo de qualquer objeto (button, etc) tem a ver com configuração mas nãoa certo Obrigado pela atenção Link to comment Share on other sites More sharing options...
Solution Chamuanza Posted July 5, 2023 at 08:14 AM Author Solution Report Share #631427 Posted July 5, 2023 at 08:14 AM Já funciona, mudei o tipo de data na BD para Data/hora. Obrigado pela atenção, bem Aja Link to comment Share on other sites More sharing options...
Cerzedelo Posted July 5, 2023 at 12:46 PM Report Share #631441 Posted July 5, 2023 at 12:46 PM Em 04/07/2023 às 22:36, Chamuanza disse: Bem eu acho que tive um problema quando alterei o Office para uma versão mais recente, e que depois retornei para a versão que tinha, deve ter mudado alguns parametros em relaç ao ao Visual Studio, e que provocou esta situação. Quanto a sua proposta (TableAdapterName.Update(DataSetName.TableName) quando faço" DadosActuaisBindingNavigatorSaveItem.PerformClick()" vai fazer o Update como propõe. A minha ideia era conseguir criar um array com as linhas selecionadas e proceder a regravação, será possivel e executavel? Aproveitando a deixa de ajuda, não consigo ver a barra de eventos, quando estou no código por exemplo de qualquer objeto (button, etc) tem a ver com configuração mas nãoa certo Obrigado pela atenção Para regravar os dados, pode fazer programaticamente com sql conforme o vídeo que lhe indiquei especifica. Com o BindingNavigator não sei se será possível fazê-lo directamente a não ser utilizar o Update. Quando está no editor de código dum objecto não vê os eventos. Normalmente em cima tem dois dropdown list menus um como o nome do objecto e um outro com os eventos, tais como click, etc.., se pretender mudar o evento é percorrer esse dropdown list menu e escolher o evento que pretende. Para alterar, adicionar alguma barra de ferramentas, tem de ir ao menu Ferramentas>Personalizar Link to comment Share on other sites More sharing options...
Chamuanza Posted July 9, 2023 at 08:53 AM Author Report Share #631467 Posted July 9, 2023 at 08:53 AM Já funciona, mudei o tipo de data na BD para Data/hora. Obrigado pela atenção, bem Aja Link to comment Share on other sites More sharing options...
Arcael Posted April 11, 2024 at 11:17 PM Report Share #632998 Posted April 11, 2024 at 11:17 PM Em 04/07/2023 às 16:08, Chamuanza disse: Boa Tarde Cerzedelo, um obrigado pela atenção desde já. Já tinha constatado que o contador não estava fazer nada nessa posição. Cheguei a conclusão que para repor os registos tenho que os regravar de novo um a um. Abro a aplicação, selecciono o registo pretendido na coluna 2, do form1, salta uma mensagem a perguntar se pretendo alterar, respondo "sim", a celula correspondente fica sellecionada, e regravo com o comando "DadosActuaisBindingNavigatorSaveItem.PerformClick()" A quetão é como proceder para selecionar vários registos e gravar. Se puderes dar umas dicas agradecia FOR EACH? Arcael 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