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 198 - Capítulo 11 - UMA PÁGINA ASP PARA INSERIR INFORMAÇÕES NO BANCO DE DADOS | |||
Neste exemplo, aprenderemos a construir uma página ASP que recebe os dados digitados em um formulário HTML e armazena estes dados no registro de uma tabela. Também faremos a validação para verificar se todos os campos obrigatórios foram preenchidos, caso algum campo obrigatório não tenha sido preenchido, devolvemos o formulário para o usuário informando qual ou quais campos obrigatórios não foram preenchidos. Caso todos os campos tenham sido preenchidos corretamente, os valores digitados serão gravados no Banco de Dados. Podemos utilizar este exemplo para criar um formulário de cadastro de usuários ou qualquer outra aplicação que necessite armazenar os dados digitados em um formulário. Nota: Eu, por exemplo, utilizo uma aplicação deste tipo para fazer a avaliação dos treinamentos que ministro em todo o país. Ao final do treinamento os usuários, sem se identificar, preenchem um formulário com as opiniões sobre o treinamento, o material e o desempenho do instrutor. Estes dados são armazenados diretamente em um Banco de Dados do Microsoft Access; a partir do qual faço uma série de estatísticas. Nota: Nos exemplos, estarei utilizando a linguagem VBScript. Para maiores informações sobre VBScript, consulte um dos seguintes sites: msdn.microsoft.com/vbscript; www.searchvb.com; e www.vbscripts.com. Você também pode consultar o e-book “Criando Sites Dinâmicos com ASP 3.0”, já citado anteriormente. Neste e-book, você também encontrará informações sobre a criação de formulários utilizando HTML. No Exemplo 11.4, temos o código HTML para a criação do formulário de cadastro, no qual o usuário poderá digitar os dados. Os dados digitados neste formulário serão inseridos na tabela Customers, do Banco de Dados Northwind, da instância SERVIDOR\SQL2005. O exemplo da Listagem 11.4 tem apenas o código HTML para a criação do formulário, com os campos para digitação dos dados. Ao clicar no botão Enviar dados, os dados digitados serão enviados para a página cadastro.asp. O nome da página ASP que irá processar os dados, é definida na propriedade ACTION, do botão de comando Enviar dados. Após o código, apresentarei mais explicações sobre este exemplo. Este exemplo deve ser salvo com o nome Cadastro.htm, na página C:\LivroSQL2005\Capitulo11 Exemplo 11.4 – O formulário para digitação dos dados – Cadastro.htm. 1 <HTML> 2 <HEAD> 3 <TITLE>Cadastro de novos Clientes !!</TITLE> 4 </HEAD> 5 <BODY bgColor=#c0c0c0> 6 <P> 7 <FONT color=white size=6 style=“BACKGROUND-COLOR: navy”> 8 <B>Tabela Customers – Northwind </B> 9 </FONT> 10 </P> 11 <P> 12 <FONT color=#ffffff size=5 style=“BACKGROUND-COLOR: darkred”> 13 <B><EM>Cadastro de Clientes !</EM></B> 14 </FONT> 15 </P> 16 <P> 17 <FONT color=navy size=4> 18 <EM>Digite os dados solicitados e clique no botão Enviar.</EM> 19 </FONT> 20 </P> 21 <P> 22 <FORM ACTION=cadastro.asp METHOD=POST> 23 <TABLE bgColor=#ffffff border=1 cellPadding=1 cellSpacing=1 width=“100%” style=“HEIGHT: 161px; WIDTH: 340px”> 24 <TR> 25 <TD>Código:</TD> 26 <TD><INPUT id=CustomerID maxLength=50 name=CustomerID size=35> 27 <FONT color=red><B>(*)</B></FONT></TD> 28 </TR> 29 <TR> 30 <TD>Nome:</TD> 31 <TD><INPUT id=CompanyName maxLength=30 name=CompanyName size=35> 32 <FONT color=red><B>(*)</B></FONT></TD> 33 </TR> 34 <TR> 35 <TD>Contato:</TD> 36 <TD><INPUT id=ContactName maxLength=20 name=ContactName > 37 <FONT color=red><B>(*)</B></FONT></TD> 38 </TR> 39 <TR> 40 <TD>Cargo:</TD> 41 <TD><INPUT id=ContactTitle maxLength=25 name=ContactTitle size=25> 42 <FONT color=red><B>(*)</B></FONT></TD> 43 </TR> 44 <TR> 45 <TD>Endereço:</TD> 46 <TD><INPUT id=Address maxLength=20 name=Address></TD> 47 </TR> 48 <TR> 49 <TD>Cidade:</TD> 50 <TD><INPUT id=City maxLength=20 name=City></TD> 51 </TR> 52 <TR> 53 <TD>Região:</TD> 54 <TD><INPUT id=Region maxLength=20 name=Region></TD></TR> 55 <TR> 56 <TR> 57 <TD>CEP:</TD> 58 <TD><INPUT id=PostalCode maxLength=20 name=PostalCode></TD></TR> 59 <TR> 60 <TR> 61 <TD>País:</TD> 62 <TD><INPUT id=Country maxLength=20 name=Country></TD></TR> 63 <TR> 64 <TR> 65 <TD>Telefone:</TD> 66 <TD><INPUT id=Phone maxLength=20 name=Phone></TD></TR> 67 <TR> 68 <TR> 69 <TD>FAX:</TD> 70 <TD><INPUT id=Fax maxLength=20 name=Fax></TD></TR> 71 <TR> 72 <TR> 73 <TD colSpan=2> 74 <INPUT id=enviar name=enviar style=“HEIGHT: 24px; WIDTH:109px” type=submit - value=“Enviar dados.”> 70 <INPUT id=limpar name=limpar type=submit value=“Limpar Formulário.”> 71 </TD> 72 </TR> 73 </TABLE> 74 </FORM> 75 </P><BR> 76 <FONT color=red><B>(*) 77 <FONT color=navy>Campos de preenchimento obrigatório.</FONT></B></FONT> 78 </BODY> Ao carregarmos o Exemplo 11.4, obteremos o resultado indicado na Figura 11.35.
Agora precisamos construir a página, Cadastro.asp, a qual irá verificar se todos os campos obrigatórios foram preenchidos. Se todos os campos obrigatórios foram preenchidos, os dados serão gravados em um Banco de Dados, caso contrário o formulário é enviado de volta para o usuário, solicitando que o usuário preencha os campos que estão faltando. Para armazenar os dados, utilizaremos a tabela Customers, do Banco de Dados Northwind, da instância SERVIDOR\SQL2005. A estrutura da tabela Customers está indicada na Figura 11.36.
Para acessar este Banco de Dados utilizaremos OLE DB, sem a necessidade da criação de uma fonte ODBC. Faremos isto através da utilização da propriedade ConnectionString, já descrita neste capítulo. A página cadastro.asp fará o seguinte: • Estabelece uma conexão com o Banco de Dados Northwind e cria um RecordSet chamado Cadastro, o qual está ligado à tabela Customers. • Depois, a página verifica se algum campo obrigatório não foi preenchido. • Caso todos os campos obrigatórios tenham sido preenchidos, os dados são gravados na tabela Customers. • Caso algum campo obrigatório não tenha sido preenchido, a página ASP informa quais campos obrigatórios não foram preenchidos, retorna o formulário para o usuário, mantendo os campos que já haviam sido preenchidos, para que o usuário possa preencher somente os que estão faltando. No Exemplo 11.5, temos o código para a página Cadastro.asp. Exemplo 11.5 – Página ASP para processamento dos dados – Cadastro.asp. 1 <%@ Language=VBScript %> 2 <HTML> 4 <HEAD> 5 </HEAD> 6 <BODY> 7 <% 8 ‘O primeiro passo é criar a conexão com o Banco de Dados 9 ‘Para isto crio um objeto do tipo Connection 10 ‘Cria um objeto do Tipo ADODB.Connection 11 Set conn=Server.CreateObject(“ADODB.Connection”) 12 ‘Agora abro uma conexão com o Banco de Dados Northwind 13 ‘da instância SERVIDOR\SQL2005, utilizando OLE DB. 14 conn.ConnectionString = “PROVIDER=SQLOLEDB; Data Source=SERVIDOR\SQL2005;Initial Catalog=Northwind; User ID=sa;Password=abc123” 15 conn.Open 16 ‘Agora criamos um objeto RecordSet. 17 ‘Este objeto irá acessar a tabela Customers. 18 Set Cadastro = Server.CreateObject(“ADODB.Recordset”) 19 Cadastro.Open “Customers”, conn, 3, 3 20 ‘Neste ponto tenho o objeto Cadastro ligado com a tabela 21 ‘Cadastro do Banco de Dados clientes.mdb. 22 ‘************************************************** 23 ‘ Inicia a verificação para saber se todos 24 ‘ os campos obrigatórios foram preenchidos. 25 ‘ Atribuo os campos obrigatórios à variáveis, para facilitar a verificação. 26 ‘Os dados recebidos pelo formulário são acessados através do objeto Request e do 27 ‘seu método Form. Por exemplo, Request.Form(“CustomerID”) contém o valor digitado ‘no campo CustomerID do formulário Cadastro.htm. 28 Codigo = Request.Form(“CustomerID”) 29 Nome = Request.Form(“CompanyName”) 30 Contato = Request.Form(“ContactName”) 31 Cargo = Request.Form(“ContactTitle”) 32 ‘Verifica se os campos obrigatórios foram preenchidos. 33 ‘Qualquer dado obrigatório que não tenha sido preenchido, 34 ‘definirá a variável faltou_dado em Sim. 35 If (Codigo=“”)Then 36 mensagem_codigo=“Preencha o campo Código:” 37 faltou_dado=“Sim” 38 faltou_codigo=“Sim” 39 End If 40 If (Nome=“”)Then 41 mensagem_nome=“Preencha o campo Nome:” 42 faltou_dado=“Sim” 43 faltou_nome=“Sim” 44 End If 45 If (Contato=“”)Then 46 mensagem_contato=“Preencha o campo Contato:” 47 faltou_dado=“Sim” 48 faltou_contato=“Sim” 49 End If 50 If (Cargo=“”)Then 51 mensagem_cargo=“Preencha o campo Cargo:” 52 faltou_dado=“Sim” 53 faltou_cargo=“Sim” 54 End If 55 ‘Caso todos os campos obrigatórios tenham sido 56 ‘preenchidos, gravo os dados no Banco de Dados. 57 ‘e informo que a operação foi realizada com sucesso. 58 If faltou_dado<>“Sim” Then 59 Cadastro.AddNew 60 Cadastro.Fields(“CustomerID”)= Request.Form(“CustomerID”) 71 Cadastro.Fields(“CompanyName”)= Request.Form(“CompanyName”) 72 Cadastro.Fields(“ContactName”)= Request.Form(“ContactName”) 73 Cadastro.Fields(“ContactTitle”)= Request.Form(“ContactTitle”) 74 Cadastro.Fields(“Address”)= Request.Form(“Address”) 75 Cadastro.Fields(“City”)= Request.Form(“Region”) 76 Cadastro.Fields(“Region”)= Request.Form(“Region”) 77 Cadastro.Fields(“PostalCode”)= Request.Form(“PostalCode”) 78 Cadastro.Fields(“Country”)= Request.Form(“Country”) 79 Cadastro.Fields(“Phone”)= Request.Form(“Phone”) 80 Cadastro.Fields(“Fax”)= Request.Form(“Fax”) 81 Cadastro.Update 82 Cadastro.Close 83 Set Cadastro = Nothing 84 Response.Write “CLIENTE CADASTRADO COM SUCESSO<BR>” 85 Response.Write “<A href=cadastro.htm>Clique aqui para Cadastrar outro Cliente</A>” 86 Response.Write “<HR>” 87 End If 88 ‘Caso algum dado obrigatório não tenha sido digitado 89 ‘Envia o formulário de volta para o Cliente, 90 ‘preservando os valores que o mesmo já digitou. 91 ‘Observe que utilizamos Response.Write para ir 92 ‘recriando todo o formulário. Também observe que o formulário é enviado de volta 93 ‘na página cadastro.asp e que o atributo action da tag FORM é definido como 94 ‘cadastro.asp, ou seja a página cadastro.asp chama a si mesma após o 95 ‘usuário clicar no botão Enviar. Esta é uma técnica bastante interessante. 96 ‘Antes de enviar o formulário, informamos quais 97 ‘os campos obrigatório que não foram preenchidos. 98 If faltou_codigo=“Sim” Then 99 Response.Write “<B>O campo Código deve ser preenchido.</B> <br>” 100 End If 101 If faltou_nome=“Sim” Then 102 Response.Write “<B>O campo Nome deve ser preenchido.</B> <br>” 103 End If 104 If faltou_contato=“Sim” Then 105 Response.Write “<B>O campo Contato deve ser preenchido.</B> <br>” 106 End If 107 If faltou_cargo=“Sim” Then 108 Response.Write “<B>O campo cargo deve ser preenchido.</B> <br>” 109 End If 110 %> 111 <% 112 ‘Começo a reenviar o formulário para o usuário, utilizando Response.Write. 113 ‘Caso esteja faltando algum dado, envio o formulário. 114 ‘para o usuário preencher os campos que estão faltando. 115 ‘Os valores já digitados, são preservados. 116 %> 117 <% If faltou_dado=“Sim” Then 118 Response.Write “<BODY bgColor=#c0c0c0>” 119 Response.Write “<P><FONT color=white size=6 style=BACKGROUND-COLOR: navy><STRONG>Cadastro de Clientes” 120 Response.Write “CLIENTES:</EM></STRONG></FONT> <BR></FONT><FONT color=navy size=4><EM>Digite os dados solicitados e clique no botão “ 121 Response.Write “Enviar.</EM></FONT></P>” 122 Response.Write “<P>” 123 Response.Write “Caso queira alterar algum dado” 124 Response.Write “ digite no formulário abaixo.<HR>” 125 Response.Write “<FORM ACTION=cadastro.asp METHOD=post id=form1 name=form1>” 126 Response.Write “<TABLE bgColor=#ffffff border=1 cellPadding=1 cellSpacing=1 width=100% style=HEIGHT: 161px; WIDTH: 340px>” 127 Response.Write “<TR>” 128 Response.Write “<TD>Código:</TD>” 129 Response.Write “<TD><INPUT id=CustomerID maxLength=50 name=CustomerID size=35 value=” & Chr(34) & Request.Form(“CustomerID”) & Chr(34) & “> <FONT “ 130 Response.Write “color=red><B>(*)</B></FONT></TD></TR>” 131 Response.Write “<TR>” 132 Response.Write “<TD>Nome:</TD>” 133 Response.Write “<TD><INPUT id=CompanyName maxLength=50 name=CompanyName size=35 value=” & Chr(34) & Request.Form(“CompanyName”) & Chr(34) & “> <FONT “ 134 Response.Write “color=red><B>(*)</B></FONT></TD></TR>” 135 Response.Write “<TR>” 136 Response.Write “<TD>Contato:</TD>” 137 Response.Write “<TD><INPUT id=ContactName maxLength=50 name=ContactName size=35 value=” & Chr(34) & Request.Form(“ContactName”) & Chr(34) & “> <FONT “ 138 Response.Write “color=red><B>(*)</B></FONT></TD></TR>” 139 Response.Write “<TR>” 140 Response.Write “<TD>Cargo:</TD>” 141 Response.Write “<TD><INPUT id=ContactTitle maxLength=50 name=ContactTitle size=35 value=” & Chr(34) & Request.Form(“ContactTitle”) & Chr(34) & “> <FONT “ 142 Response.Write “color=red><B>(*)</B></FONT></TD></TR>” 143 Response.Write “<TR>” 144 Response.Write “<TD>Endereço:</TD>” 145 Response.Write “<TD><INPUT id=Address maxLength=50 name=Address size=35 value=” & Chr(34) & Request.Form(“Address”) & Chr(34) & “>” 146 Response.Write “</TD></TR>” 147 Response.Write “<TR>” 148 Response.Write “<TD>Cidade:</TD>” 149 Response.Write “<TD><INPUT id=City maxLength=50 name=City size=35 value=” & Chr(34) & Request.Form(“City”) & Chr(34) & “>” 150 Response.Write “</TD></TR>” 151 Response.Write “<TR>” 152 Response.Write “<TD>Região:</TD>” 153 Response.Write “<TD><INPUT id=Region maxLength=50 name=Region size=35 value=” & Chr(34) & Request.Form(“Region”) & Chr(34) & “>” 154 Response.Write “</TD></TR>” 155 Response.Write “<TR>” 156 Response.Write “<TD>CEP:</TD>” 157 Response.Write “<TD><INPUT id=PostalCode maxLength=50 name=PostalCode size=35 value=” & Chr(34) & Request.Form(“PostalCode”) & Chr(34) & “>” 158 Response.Write “</TD></TR>” 159 Response.Write “<TR>” 160 Response.Write “<TD>País:</TD>” 161 Response.Write “<TD><INPUT id=Country maxLength=50 name=Country size=35 value=” & Chr(34) & Request.Form(“Country”) & Chr(34) & “>” 162 Response.Write “</TD></TR>” 163 Response.Write “<TR>” 164 Response.Write “<TD>Telefone:</TD>” 165 Response.Write “<TD><INPUT id=Phone maxLength=50 name=Phone size=35 value=” & Chr(34) & Request.Form(“Phone”) & Chr(34) & “>” 166 Response.Write “</TD></TR>” 167 Response.Write “<TR>” 168 Response.Write “<TD>Fax:</TD>” 169 Response.Write “<TD><INPUT id=Fax maxLength=50 name=Fax size=35 value=” & Chr(34) & Request.Form(“Fax”) & Chr(34) & “>” 170 Response.Write “</TD></TR>” 171 Response.Write “<FONT color=red><B>(*)</B></FONT></TD></TR>” 172 Response.Write “<TR>” 173 Response.Write “<TD colSpan=2><INPUT id=enviar name=enviar style=HEIGHT: 24px; WIDTH: 109px type=submit value=Enviar_dados.> ” 174 Response.Write “<INPUT id=limpar name=limpar type=submit value=Limpar_formulário.></TD></TR>” 175 Response.Write “</TABLE>” 176 Response.Write “</FORM>” 177 Response.Write “</P><FONT color=red><B>(*) <FONT color=navy>Campos de preenchimento “ 178 Response.Write “obrigatório.</FONT></B></FONT>” 179 End If 180 %> 181 </BODY> Nota: Algumas linhas aparecem divididas em duas ou mais linhas. Nunca é demais lembrar que estas linhas devem ser digitadas como uma linha única. As linhas estão exibidas em duas ou mais linhas apenas por questão de espaço. Algumas observações sobre Exemplo 11.5: • A primeira observação a ser feita é a respeito do código que insere um novo registro na tabela Customers do Banco de Dados Northwind. O código ASP que realiza esta tarefa é o seguinte: 58 If faltou_dado<>“Sim” Then 59 Cadastro.AddNew 60 Cadastro.Fields(“CustomerID”)= Request.Form(“CustomerID”) 71 Cadastro.Fields(“CompanyName”)= Request.Form(“CompanyName”) 72 Cadastro.Fields(“ContactName”)= Request.Form(“ContactName”) 73 Cadastro.Fields(“ContactTitle”)= Request.Form(“ContactTitle”) 74 Cadastro.Fields(“Address”)= Request.Form(“Address”) 75 Cadastro.Fields(“City”)= Request.Form(“Region”) 76 Cadastro.Fields(“Region”)= Request.Form(“Region”) 77 Cadastro.Fields(“PostalCode”)= Request.Form(“PostalCode”) 78 Cadastro.Fields(“Country”)= Request.Form(“Country”) 79 Cadastro.Fields(“Phone”)= Request.Form(“Phone”) 80 Cadastro.Fields(“Fax”)= Request.Form(“Fax”) 81 Cadastro.Update 82 Cadastro.Close 83 Set Cadastro = Nothing 84 Response.Write “CLIENTE CADASTRADO COM SUCESSO<BR>” 85 Response.Write “<A href=cadastro.htm>Clique aqui para Cadastrar outro Cliente</A>” 86 Response.Write “<HR>” 87 End If Neste código, utilizamos o método AddNew do objeto RecordSet Cadastro. Depois vamos preenchendo cada novo campo do registro, com o respectivo valor preenchido pelo usuário no formulário. No final, utilizamos o método Update para salvar o registro na tabela. O método Close é utilizado para fechar o RecordSet Cadastro e, por fim, tiramos o objeto Cadastro da memória. Isto é feito atribuindo-se o valor “Nothing” para o objeto Cadastro. É importante lembrar que para atribuir valor para um objeto, devemos utilizar o operador Set, caso contrário obteremos uma mensagem de erro. • Também gostaria de observar a situação em que o usuário deixa de preencher algum campo obrigatório. Neste caso, o usuário é informado a respeito de qual ou quais campos não foram preenchidos. O formulário é retornado para o usuário, juntamente com os valores já digitados, para que o usuário não precise digitar todos os valores novamente. Observe que todo o código HTML que gera o formulário é retornado utilizando-se Response.Write. Vamos testar o funcionamento da página Cadastro.asp. Na Figura 11.37, o usuário preencheu alguns campos, porém não preencheu os campos obrigatórios Contato e Cargo.
Ao clicar no botão “Enviar dados”, a página Cadastro.asp detecta que alguns campos obrigatórios não foram preenchidos e informa o usuário a este respeito, conforme indicado na Figura 11.38.
Agora o usuário preenche os campos obrigatórios que estão faltando, conforme indicado na Figura 11.39.
Ao clicar no botão “Enviar dados”, as informações serão salvas no Banco de Dados. A página Cadastro.asp informa que os dados foram salvos com sucesso e retorna um link para que o usuário possa voltar ao formulário de cadastro e cadastrar outro cliente, conforme indicado na Figura 11.40.
Na Figura 11.41, acessamos a tabela Customers e podemos constatar que o cliente foi realmente cadastrado.
|
|||
« 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-2021 ®
[LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO
APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI