NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | ![]() |
Δ Página principal | ![]() |
¤ Capítulos | ![]() |
Próxima lição » |
SQL Server 2005 - CURSO COMPLETO Autor: Júlio Battisti |
||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lição 162 - Capítulo 10 - A Estrutura While...Continue | ||||||||||||||||||||||||||||||||||||||||
Esta estrutura faz com que um conjunto de comandos continue sendo executado, enquanto uma determinada condição for verdadeira. A sintaxe para este comando é a seguinte: WHILE Teste BEGIN Comando1 Comando2 ... Comandon END Enquanto o teste for verdadeiro, os comandos dentro do bloco BEGIN...END continuarão a ser executados. Quando a condição tornar-se falsa, a execução continua no primeiro comando após o CONTINUE. Os comandos dentro do bloco BEGIN...END devem modificar o valor da variável (ou variáveis) que estão sendo testadas no início do laço WHILE, caso contrário, a condição nunca se tornará falsa e o laço continuará executando sem parar. Veja o exemplo a seguir. Exemplo: Vamos criar uma tabela chamada SomaNaturais. Esta tabela será criada no Banco de Dados NwindAccess e terá a seguinte estrutura:
Após criar a tabela SomaNaturais, vamos criar um Stored Procedure chamado usp_CalculaSoma, o qual calcula a soma dos “n” primeiros números inteiros e armazena a soma nas respectivas colunas, conforme indicado no exemplo a seguir:
E assim por diante. O valor de n será passado como parâmetro de entrada para o Stored Procedure. O primeiro passo é criar a tabela SomaNaturais. Para isto utilizamos o seguinte comando: USE NwindAccess GO CREATE TABLE SomaNaturais ( Número float, SomaAcumulada float ) Agora vamos a criação do Stored Procedure: USE NwindAccess GO CREATE PROCEDURE usp_CalculaSoma @numero int AS -- Cria uma variável para controle do laço -- e inicializa a variável com o valor 1. DECLARE @contador int SET @contador = 1 -- Cria uma variável para a soma -- e inicializa a variável com o valor 0. DECLARE @soma float SET @soma = 0 WHILE (@contador<=@numero) BEGIN SET @soma = @soma + @contador INSERT INTO SomaNaturais VALUES (@contador,@soma) SET @contador = @contador + 1 END Observe o comando SET @contador = @contador + 1, no interior da estrutura WHILE. Se não colocássemos este comando, a variável @contador jamais se tornaria igual ao parâmetro @numero e o laço WHILE entraria em execução infinita. A criação de laços infinitos, é uma das causas mais comuns para o travamento de programas. Agora vamos testar o Stored Procedure usp_CalculaSoma. Vamos passar como parâmetro o número 10. Para isso utilizamos o seguinte comando: EXEC usp_CalculaSoma 10 A execução deste comando retorna a seguinte mensagem: (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) Agora vamos dar um SELECT na tabela SomaNaturais. Utilize o seguinte comando: SELECT * FROM SomaNaturais Você obterá o seguinte resultado:
Isto comprova que o stored Procedure usp_CalculaSoma está funcionando corretamente. Poderíamos fazer uma pequena modificação nele. Se executarmos novamente o usp_CalculaSoma, os registros existentes na tabela SomaNaturais serão mantidos e novos registros serão incluídos. O ideal é que somente sejam mantidos os registros da última execução. Para isso, basta excluirmos os registros já existentes. Isto é feito com um comando SQL que exclui todos os registros da tabela SomaNaturais, antes de entrar na estrutura WHILE. Vamos alterar o Stored Procedure usp_CalculaSoma para inserir este comando SQL. Para isso, utilizamos o seguinte comando: USE NwindAccess GO ALTER PROCEDURE usp_CalculaSoma @numero int AS -- Elimina os registros da tabela SomaNaturais DELETE SomaNaturais -- Cria uma variável para controle do laço -- e inicializa a variável com o valor 1. DECLARE @contador int SET @contador = 1 -- Cria uma variável para a soma -- e inicializa a variável com o valor 0. DECLARE @soma float SET @soma = 0 WHILE (@contador<=@numero) BEGIN SET @soma = @soma + @contador INSERT INTO SomaNaturais VALUES (@contador,@soma) SET @contador = @contador + 1 END |
||||||||||||||||||||||||||||||||||||||||
« Lição anterior | ![]() |
Δ Página principal | ![]() |
¤ Capítulos | ![]() |
Próxima lição » |
Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI