Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JBNC

Combo de seleção recebendo registro do UPDATE

Recommended Posts

Fala Pessoal,

Fiz um rotina no meu sistema para alterar os registros do banco de dados em access. Até ai tudo bem mas quando vou inserir o registro selecionado num combo que pesquisa e passa para outra pagina para colocar as informação, ele não coloca nos combos do formulário o registro correnponte a informação, pois aparece eles como tivesse que selecionar de novo.

O impressionante que mesmo assim quando eu seleciono ele não altera no registro no banco.

Segue abaixo o codigo:

 

alterar.asp

 

<html>
<head>
<title>.: SISTEMA DE TREINAMENTO :.</title>
<LINK rel="stylesheet" href="_css/vlog.css" type="text/css">
 <script language="JavaScript">
	function Consultar()
   {
	 document.acao.action="_inc/form_alterar.asp";
	 document.acao.submit();
   }
   function Cancelar()
   {
	 document.acao.action="treinamento.asp";
	 document.acao.submit();
   }
  </script>
</head>
<body>
<table width="100%" height="100%" bgcolor="#858585" cellpadding="0" cellspacing="0" border="0">
	<tr><td colspan="3" height="*"></td></tr>
	<tr>
		<td></td>
		<td height="200" width="350" background="_img/fnd0004.gif" align="center">
			<table class="titulo" border="0">
				<tr align="center" >
					<td colspan="2" height="20">
						ALTERAR DADOS DO TRIPULANTE
					</td>
				</tr>
				<tr align="center" >
					<td colspan="2" height="25">
						Selecione o nome do tripulante.
					</td>
				</tr>
<%
' ----- Criação da conexão do Banco de dados com o ASP -----	
	SET strConexao=Server.createobject("ADODB.CONNECTION")
	strConexao.Provider="Microsoft.Jet.OLEDB.4.0"
	strConexao.Open "C:/inetpub/wwwroot/Projeto_SCT/server_bd/Lista Trip.mdb"
	Set RS = server.CreateObject("ADODB.Recordset") 
%>				<tr align="right">
						<form action="_inc/consulta.asp" method="post" class="titulo" name="acao">
							<td height="40">
							<select name="fr_nome" onChange="BuscaProdutos()" class="titulo6">
							<option>-Selecione o nome-</option>
							<% 
							sql ="SELECT * FROM Tripulacao order by NomeCompleto"
							set RS = strConexao.execute(sql)	
							Do Until RS.EOF
								Response.Write "<option value='"&RS("NomeCompleto")&"'>"&RS("NomeCompleto")&"</option>"
								RS.moveNext
							loop
							%>
							</select>
							<br>
							<input type="submit"  onClick="Consultar()" value="Consultar" class="btntipo" name="consultar">
							<input type="submit" onclick="Cancelar()" value="Cancelar" class="btntipo" name="cancelar">							

							</td>
<%
	RS.close
	strConexao.close
%>

						</form>
				</tr>
			</table>
		</td>
		<td></td>
	</tr>
	<tr><td colspan="3" height="*"></td></tr>
</table>
</body>
</html>

form_alterar.asp

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>.: SISTEMA DE TREINAMENTO :.</title>
<LINK rel="stylesheet"  href="..\_css\vlog.css" type="text/css">
</head></head>
<%var_nome2= Request.form("fr_nome")
		var_ANAC= Request.form("var_temp")
		SET strConexao=Server.createobject("ADODB.CONNECTION")
		strConexao.Provider="Microsoft.Jet.OLEDB.4.0"
		strConexao.Open "C:/inetpub/wwwroot/Projeto_SCT/server_bd/Lista Trip.mdb"
		Set RS = server.CreateObject("ADODB.Recordset") 
		sql ="SELECT * FROM Tripulacao"
		set RS = strConexao.execute(sql)
		sql2 ="SELECT * FROM Cursos"
		set RS2 = strConexao.execute(sql2)
%>
<body>
<table width="100%" height="100%" bgcolor="#858585" cellpadding="0" cellspacing="0" border="0">
	<tr><td colspan="4" height="*"></td></tr>
	<tr>
		<td></td>
		<td height="590" width="450"  background="..\_img\fnd0001.gif" align="center" class="login">
			<form  action="conf_alteracao.asp" method="post" class="titulo">
				<table class="titulo" border="0">
					<tr><td height="50"> </td></tr>
					<tr align="left">
						<td colspan="2">INFORMAÇÕES DO TRIPULANTE</td>
					</tr>
					<tr align="left">
						<td colspan="2"><img src="..\_img\fnd0002.gif"></td>
					</tr>
					<%
					Do while not RS.EOF
						if var_nome2=RS.Fields("NomeCompleto")then	  
							var_ANAC = RS("CodANAC")
					%>
					<tr align="left">
						<td>Nome Completo:</td>
						<td><input type="text" name="fr_nome_compl" class="lista" value="<% = RS("NomeCompleto")%>"></td>
					</tr>
					<tr align="left">
						<td>Nome de Guerra:</td>
				 		<td><input type="text" name="fr_nome_gue" class="lista" value="<% = RS("NomeGuerra")%>"></td>
					</tr>
					<tr align="left">
						<td>Função:</td>
						<td></a><SELECT class="lista" name="fr_funcao" value="<% = RS("Func")%>">
							<OPTION selected>Selecione</OPTION>
							<OPTION VALUE="CMTE">Comadante</OPTION>
							<OPTION VALUE="COP">Co-piloto</OPTION>
							<OPTION VALUE="MV">Mec. de Vôo</OPTION>
						</SELECT>
						</td>

					</tr>
					<tr align="left">
						<td>Cargo:</td>
				 		<td><input type="text" name="fr_cargo" class="lista" value="<% = RS("Cargo")%>"></td>
					</tr>
					</tr>
					<tr align="left">
						<td>Equipamento:</td>
						<td></a><SELECT class="lista" name="fr_equi" value="<% = RS("Eqpto")%>">
							<OPTION selected>Selecione</OPTION>
							<OPTION VALUE="B727">B727</OPTION>
							<OPTION VALUE="B757">B757</OPTION>
							<OPTION VALUE="MD11V">MD-11</OPTION>
							<option value="DC10">DC-10</option>
						</SELECT>
					</tr>
					<tr align="left">
						<td>Data de Admissão:</td>
						<td><input type="text" name="fr_data_admi" class="lista" value="<% = RS("DtAdmis")%>"></td>
					</tr>
					<tr align="left">
						<td>BASE:</td>
				 		<td><input type="text" name="fr_base" class="lista" value="<% = RS("Base")%>"></td>
					</tr>
					<tr align="left">
						<td>Código ANAC:</td>
						<td><input type="text" name="fr_cod_anac" class="lista" value="<% =RS("CodANAC")%>"></td>
					</tr>
					<tr align="left">
						<td>PLA / PC:</td>
				 		<td><input type="text" name="fr_pla_pc" class="lista" value="<% = RS("PLA/PC")%>"></td>
					</tr>
					</tr>
					<tr align="left">
						<td>Nível de Inglês:</td>
						<td></a><SELECT class="lista" name="fr_nivel_ing" value="<% = RS("Nivel_Ingles")%>">
							<OPTION selected>Selecione</OPTION>
							<OPTION VALUE=1>Nível 1</OPTION>
							<OPTION VALUE=2>Nivel 2</OPTION>
							<OPTION VALUE=3>Nível 3</OPTION>
							<option value=4>Nível 4</option>
							<option value=5>Nível 5</option>
							<option value=6>Nível 6</option>
						</SELECT>
					</tr>
					<tr align="left">
						<td>N° do Passaporte:</td>
				 		<td><input type="text" name="fr_pass" class="lista" value="<% = RS("Passaporte")%>"></td>
					</tr>
					<tr align="left">
						<td colspan="2"></td>
					</tr>
					<tr align="left">
						<td colspan="2"></td>
					</tr>
					<tr align="left">
						<td colspan="2"></td>
					</tr>
					<%
					end if
						RS.MoveNext
					Loop
					%>
					<%
					Do while not RS2.EOF
						if var_ANAC=RS2.Fields("CodANAC")then	  
					%>
					<tr align="left">
						<td colspan="2"> VENCIMENTOS:</td>
					</tr>
					<tr align="left">
						<td colspan="2"><img src="..\_img\fnd0002.gif"></td>
					</tr>
					<tr align="left">
						<td>CRM:</td>
						<td><input type="text" name="fr_crm" class="lista" value="<% = RS2("CRM")%>"></td>
					</tr>
					<tr align="left">
						<td>CCF:</td>
						<td><input type="text" name="fr_ccf" class="lista" value="<% = RS2("CCF")%>"></td>
					</tr>
					<tr align="left">
						<td>IFR:</td>
						<td><input type="text" name="fr_ifr" class="lista" value="<% = RS2("IFR")%>"></td>
					</tr>
					<tr align="left">
						<td>Emerg. Gerais:</td>
						<td><input type="text" name="fr_emer_ger" class="lista" value="<% = RS2("Emergencias_Gerais")%>"></td>
					</tr>
					<tr align="left">
						<td>TAI:</td>
						<td><input type="text" name="fr_tai" class="lista" value="<% = RS2("TAI")%>"></td>
					</tr>
					<tr align="left">
						<td>Reciclagem:</td>
						<td><input type="text" name="fr_recic" class="lista" value="<% = RS2("Reciclagem")%>"></td>
					</tr>
					<tr align="left">
						<td>Carregamento:</td>
						<td><input type="text" name="fr_carre" class="lista" value="<% = RS2("Carregamento")%>"></td>
					</tr>
					<%
						end if
						RS2.MoveNext
					Loop
					%>
					<tr align="left">
						<td colspan="2"><img src="..\_img\fnd0002.gif"></td>
					</tr>

					<tr align="right">
						<td colspan="2"><input type="submit" value="Alterar" class="btntipo"></td>
					</tr>
				</table>
			</form>
		</td>
		<td></td>

</table>	

</table>
</body>
</html>

conf_alteracao.asp

 

<html>
<head>
<title>.: SISTEMA DE TREINAMENTO :.</title>
<LINK rel="stylesheet"  href="..\_css\vlog.css" type="text/css">
 <script language="JavaScript">
   function Alterar()
   {
	 document.acao.action="../alterar.asp";
	 document.acao.submit();
   }
   function Voltar()
   {
	 document.acao.action="../treinamento.asp";
	 document.acao.submit();
   }
  </script>
</head>
				<%
						' ----- Definio de variaveis -----
						DIM RS, objConn, sql, sql2, strConexao,nome_compl,nome_gue,funcao,cargo,equi,data_admi,base,cod_anac,pla_pc,
nivel_ing,pass,crm,ccf,ifr,emer_ger,tai,recic,carre

						' ----- Definio das Variaveis que receberam os dados do HTML -----
						nome_compl=Request.form("fr_nome_compl")
						nome_gue=Request.form("fr_nome_gue")
						funcao=Request.form("fr_funcao")
						cargo=Request.form("fr_cargo")
						equi=Request.form("fr_equi")
						data_admi=Request.form("fr_data_admi")
						base=Request.form("fr_base")
						cod_anac=Request.form("fr_cod_anac")
						pla_pc=Request.form("fr_pla_pc")
						nivel_ing=Request.form("fr_nivel_ing")
						pass=Request.form("fr_pass")
						crm=Request.form("fr_crm")
						ccf=Request.form("fr_ccf")
						ifr=Request.form("fr_ifr")
						emer_ger=Request.form("fr_emer_ger")
						tai=Request.form("fr_tai")
						recic=Request.form("fr_recic")
						carre=Request.form("fr_carre")

						SET strConexao=Server.createobject("ADODB.CONNECTION")
						strConexao.Provider="Microsoft.Jet.OLEDB.4.0"
						strConexao.Open "C:/inetpub/wwwroot/Projeto_SCT/server_bd/Lista Trip.mdb"
						Set RS = server.CreateObject("ADODB.Recordset") 
							sql="update Tripulacao set "
							sql= sql + "NomeCompleto = ' " + nome_compl + " ',"
							sql= sql + "NomeGuerra = ' " + nome_gue + " ',"
							sql= sql + "Func = ' " + funcao + " ',"
							sql= sql + "Cargo = ' " + cargo + " ',"
							sql= sql + "Eqpto = ' " + equi + " ',"
							sql= sql + "DtAdmis = ' " + data_admi + " ',"
							sql= sql + "Base = ' " + base + " ',"
							sql= sql + "CodANAC = " + cod_anac + ","
							sql= sql + "[PLA/PC] = ' " + pla_pc + " ',"
							sql= sql + "Nivel_Ingles = ' " + nivel_ing + " ',"
							sql= sql + "Passaporte = ' " + pass + " ' "
							sql= sql + "where NomeCompleto = ' " + nome_compl + " ' "
							set RS = strConexao.Execute(sql)
							sql2="update Cursos set "
							sql2= sql2 + "CodANAC = ' " + cod_anac + " ',"
							sql2= sql2 + "CRM = ' " + crm + " ',"
							sql2= sql2 + "CCF = ' " + ccf + " ',"
							sql2= sql2 + "IFR = ' " + ifr + " ',"
							sql2= sql2 + "Emergencias_Gerais = ' " + emer_ger + " ',"
							sql2= sql2 + "TAI = ' " + tai + " ',"
							sql2= sql2 + "Reciclagem = ' " + recic + " ',"
							sql2= sql2 + "Carregamento = ' " + carre + " ' "
							sql2= sql2 + "where CodANAC = " + cod_anac + " "
							set RS2 = strConexao.Execute(sql2)
				%>
<body>
<table width="100%" height="100%" bgcolor="#858585" cellpadding="0" cellspacing="0" border="0">
	<tr><td colspan="3" height="*"></td></tr>
	<tr>
		<td></td>
		<td height="200" width="350" background="..\_img\fnd0004.gif" align="center">
			<table class="titulo" border="0">
				<tr><td colspan="2" height="40"> </td></tr>
				<tr align="center" >
								<td colspan="2" height="60">
									"O dados foram excluidos com sucesso."
									"Deseja incluir novo registro?"
								</td>
				</tr>
				<tr align="center">
					<td>
						<form action="form.htm" class="titulo" name=acao>
							<input type="submit" onclick="Alterar()" value="SIM" class="btntipo3">
							<input type="submit" onclick="Voltar()" value="NÃO" class="btntipo3">
						</form>
					</td>
				</tr>
			</table>
		</td>
		<td></td>
	</tr>
	<tr><td colspan="3" height="*"></td></tr>
</table>
</body>
</html>

Muito obrigado e aguardo resposta.

 

Atenciosamente.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado jonathandj,

O Sql esta sim sendo executado, infelizmente ele não esta atualizado as informações no banco, pois o segundo sql altera as informações em outra tabela.

Muito obrigado e aguardo resposta.

 

Atenciosamente.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, e na variavel cod_anac tem algum valor válido e correspondente ao registro que deseja alterar?(o primeiro sql faz o where na variavel nome_compl )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim jonathandj,

Ele tem valor válido e correspondente ao registro que eu quero alterar, além do mais ele é a chave-primária na tabela Tripulação e chave-estrangeira na tabela Cursos no relacionamento entre tabelas.

Muito obrigado pela força e aguardo resposta.

 

Atenciosamente.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

O que eu pude constatar é que o erro esta na passagem do 1° update, mas o 2° update faz sem problema.

Segue abaixo o trecho que eu estou falando:

 

sql="update Tripulacao set "
							sql= sql + "NomeCompleto = ' " + nome_compl + " ',"
							sql= sql + "NomeGuerra = ' " + nome_gue + " ',"
							sql= sql + "Func = ' " + funcao + " ',"
							sql= sql + "Cargo = ' " + cargo + " ',"
							sql= sql + "Eqpto = ' " + equi + " ',"
							sql= sql + "DtAdmis = ' " + data_admi + " ',"
							sql= sql + "Base = ' " + base + " ',"
							sql= sql + "CodANAC = " + cod_anac + ","
							sql= sql + "[PLA/PC] = ' " + pla_pc + " ',"
							sql= sql + "Nivel_Ingles = ' " + nivel_ing + " ',"
							sql= sql + "Passaporte = ' " + pass + " ' "
							sql= sql + "where NomeCompleto = ' " + nome_compl + " ' "
							set RS = strConexao.Execute(sql)
Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado senhores,

Ainda estou no aguardo dessa ajuda.

Para ajuda na resolução do problema as variaveis que são carregadas do formulario para a pagina que vai fazer update contem as modificações mas o que eu não entendo e que no update ele amazena as informações mas depois quando eu vou ver no bando não alterou nada.

Por favor peço ajuda de vocês.

Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

sql ="SELECT * FROM Tripulacao order by NomeCompleto"
							set RS = strConexao.execute(sql)	
							Do Until RS.EOF
								Response.Write "<option value='"&RS("NomeCompleto")&"'>"&RS("NomeCompleto")&"</option>"
								RS.moveNext

Nesse select ai voce nao teria que passar o codigo e em seguida o nome, Para saber qual campo seria atualizado?

 

Response.Write "<option value='"&RS("Cod_Nome")&"'>"&RS("NomeCompleto")&"</option>"

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remove a linha abaixo do arquivo conf_alteracao.aspe veja o que dá.

Set RS = server.CreateObject("ADODB.Recordset")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado hargon,

Infelizmente continua o problema. Nada mudou. Mas posso te garantir que as variaveis que são repassadas para esta pagina estão com cópias do registro.

Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

No WHERE abaixo (referente ao primeiro UPDATE, você faz a comparação com STRING.

sql= sql + "where NomeCompleto = ' " + nome_compl + " ' "

Isso não é viável. Principalmente quando você está alterando o nome e deixa em aberto para o usuário informar o nome do jeito que ele quiser. Pode acontecer do nome informado não ser diferente do cadastrado no banco.

 

Verifica se o nome que está sendo comparado no WHERE está gravado da mesma forma no banco de dados. Tente fazer alterações com nomes simples. Às vezes uma letra ou um acento pode está fazendo diferença.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok hargon,

Entendi o que você dize mas como eu faria para eu atualizar duas tabelas distintar em que o relacionamento delas é pelo CodANAC (na 1ª tabela ela é uma chave-primaria e na 2ª é chave estrangeira).

Muito obrigado e aguardo reposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Analisando a estrutura das duas tabelas, acho que o ideal é você criar uma chave primária para a tabela Tripulacao e fazer o WHERE através dela.

 

Em relação a tabela Cursos, você pode manter como está.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado hargon,

A chave primária para a tabela Tripulacao é o CodANAC e a chave primária para a tabela Curso é ID Curso.

Mas como eu poço fazer este update dar certo?

Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para realizar o UPDATE da tabela TRIPULACAO, você deve alterar essa linha sql= sql + "where NomeCompleto = ' " + nome_compl + " ' " para essa linha sql= sql + "where CodANAC = " + CodANAC + " "

 

Agora para realizar o UPDATE da tabela Cursos, você terá que passar o IDCurso e onde está sql2= sql2 + "where CodANAC = " + cod_anac + " " você altera para sql2= sql2 + "where IDCurso = " + IDCurso + " "

 

Lembrando que minhas sugestões são baseadas nas chaves primárias serem numéricas e não strings.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado hargon,

Fiz o que você falou, e uma coisa supriedente é que assim que eu tirei o relacionamento do banco entre a tabela Tripulação com a tabela Cursos a pagina atualizou, mas com relacionamento ativado o programa acusa o erro por motivo que o CodANAC esta relacionado com a tabela "Cursos". o Banco foi feito em Access.

Como fazer para que o relacionamento continue sem ter que altera-lo?

Muito obrigado e aguardo resposta.

 

Atenciosamente.

 

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta a estrutura destas duas tabelas incluindo o relacionamento

 

se possivel post umprint dele aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Monteiro,

Como eu faço para inserir uma imagem no post, pois não estou conseguindo postar a imagem do relacionamente.?

Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta a imagem em um servidor e depois utiliza a função inserir imagem do Fórum na hora de postar. Ou apenas poste o link dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok pessoal,

Segue em anexo o print do relacionamento do banco.

 

Imagem Postada

 

Muito obrigado e aguardo resposta.

 

JBNC.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.