Foros del Web » Programando para Internet » ASP Clásico »

Evitar Campos Repetidos

Estas en el tema de Evitar Campos Repetidos en el foro de ASP Clásico en Foros del Web. Hola quiero hacer una funcion para validar si un cliente existe o no en la base de datos, pero tengo el siguiente error y no ...
  #1 (permalink)  
Antiguo 06/12/2005, 15:11
 
Fecha de Ingreso: diciembre-2005
Mensajes: 28
Antigüedad: 18 años, 6 meses
Puntos: 0
Evitar Campos Repetidos

Hola quiero hacer una funcion para validar si un cliente existe o no en la base de datos, pero tengo el siguiente error y no se que es. Lo que quiero es que el usuario no de de alta nombres de clientes repetidos.

Error Type:
ADODB.Connection (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/SIA InTech/Clientes/AddCliente.asp, line 31

<%
Dim Conn
Sub OpenInTech
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString ="DSN=INTECH"
Conn.Open
end sub

Sub CloseInTech
Conn.Close
Set Conn = Nothing
end sub

function Valido_Cliente(Cliente)
sqlString = "select * from Clientes where (Cliente ='"&Cliente&"')"
OpenInTech
Conn.Execute(sqlString)
If not Conn.eof Then (esta es la linea 31)
Valido_Cliente = False
else
Valido_Cliente = True
end if
CloseInTech
end function

SUB ErrorFormulario( Ferror )
%>
<meta name="Microsoft Theme" content="bars 1011">
<HTML>
<HEAD><TITLE>Error</TITLE></HEAD>
<BODY>
<font face="Tahoma" size="3"><b>
<%=Ferror %>
</b>
<FORM method="post" action="AltaClientes.asp">
<p>
<INPUT TYPE="submit" value="Regresar" style="font-family: Tahoma; font-weight: bold">
</FORM>
</BODY>
</HTML>
<%
Response.End
END SUB

' Recupera campos del formulario
Cliente = Request.Form("Nombre")
RFC = Request.Form("RFC")
Direccion = Request.Form("Dir")
Colonia = Request.Form("Col")
Ciudad = Request.Form("Cd")
Estado = Request.Form("Estado")
CP = Request.Form("CP")
Telefono = Request.Form("Tel")
Ingreso = date()

' Verifica los Campos Requeridos
IF Cliente = "" THEN
ErrorFormulario "¡No proporcionó el Nombre del Cliente !"
END IF
IF RFC = "" THEN
ErrorFormulario "¡No proporcionó el RFC del Cliente !"
END IF
IF Direccion = "" THEN
ErrorFormulario "¡No proporcionó la Direccion del Cliente !"
END IF
IF Colonia = "" THEN
ErrorFormulario "¡No proporcionó la Colonia del Cliente !"
END IF
IF Ciudad = "" THEN
ErrorFormulario "¡No proporcionó la Ciudad del Cliente !"
END IF
IF Estado = "" THEN
ErrorFormulario "¡No proporcionó el Estado del Cliente !"
END IF
IF CP = "" THEN
ErrorFormulario "¡No proporcionó el Codigo Postal del Cliente !"
END IF
IF Telefono = "" THEN
ErrorFormulario "¡No proporcionó el Telefono del Cliente !"
END IF

Existe = Valido_Cliente(Cliente) (aqui la mando llamar)
If Existe Then
ErrorFormulario "Error el Nombre del Cliente Ya Existe !"
else
sqlString = "INSERT INTO Clientes ( Cliente, RFC, Direccion, Colonia, Ciudad, Estado, Codigo, Telefono, Alta) values ('"&Cliente&"','"&RFC&"','"&Direccion&"','"&Coloni a&"','"&Ciudad&"','"&Estado&"','"&CP&"','"&Telefon o&"','"&Ingreso&"')"
OpenInTech
Conn.Execute(sqlString)
CloseInTech
end if

%>

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<meta name="Microsoft Theme" content="bars 1011">

<%
Response.Buffer=true
%>

<HTML>
<HEAD><TITLE>Procesando Informacion .....</TITLE></HEAD>
<BODY>
<font face="Tahoma"><b>El Cliente fue dado de Alta en Base de Datos ... ! </b>
<%
Response.clear
response.redirect "default.asp"
%>
</BODY>
</HTML>
</font>
  #2 (permalink)  
Antiguo 06/12/2005, 15:17
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pues si, porque estas evaluando la conexion en lugar de un recordset, trata algo asi:

Set rs = Conn.Execute(sqlString)
If not rs.eof Then
.
.
.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 06/12/2005, 15:17
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
mmm veo que no asignas un recordset ya que tu funcion te regresa un valor.

haz esto :

OpenInTech
set ob_rs=Conn.Execute(sqlString)
If not ob_rs.eof Then

Soluciono el problema ?
  #4 (permalink)  
Antiguo 06/12/2005, 15:47
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Si pues debes crear un recordset y trabajar con este, y no con el objeto connection. Ok Rebiza bien tu código.
  #5 (permalink)  
Antiguo 06/12/2005, 15:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 28
Antigüedad: 18 años, 6 meses
Puntos: 0
Mil Gracias por su ayuda, en efecto al hacer el recordset, funciono. Pero tengo un boton que regresa a la pantalla anterior donde estan los datos, al regresar todos estan en blanco, como le hago para que al regresar esten los datos anteriormente tecleados ??

Gracias por su ayuda y con su ayuda estoy aprendiendo mas.
  #6 (permalink)  
Antiguo 06/12/2005, 15:59
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Utiliza el historial.
  #7 (permalink)  
Antiguo 06/12/2005, 16:09
 
Fecha de Ingreso: diciembre-2005
Mensajes: 28
Antigüedad: 18 años, 6 meses
Puntos: 0
Perdon mi ignorancia, comose hace eso. Creo haberlo visto en algun tema, pero no recuerdo en donde.

Me podrias decir como ??

Gracias
  #8 (permalink)  
Antiguo 07/12/2005, 05:06
 
Fecha de Ingreso: mayo-2004
Mensajes: 101
Antigüedad: 20 años, 1 mes
Puntos: 0
pon esto en el evento onclick del botón: javascript:history.back()
  #9 (permalink)  
Antiguo 07/12/2005, 10:38
 
Fecha de Ingreso: diciembre-2005
Mensajes: 28
Antigüedad: 18 años, 6 meses
Puntos: 0
Ok, y necesito habilitarle algo al codigo ?? es decir he visto algunos comandos que son paraVBasic y agregas una linea para que soporte los comandos script. Lo mismo hay que hacer en este caso o no ??

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.