ASP - Validar mas de un campos antes de hacer un insert

 
Vista:

Validar mas de un campos antes de hacer un insert

Publicado por Sergio (2 intervenciones) el 10/06/2009 21:27:31
Saludos.

Estoy realizando un formulario de registro de usuarios en donde pra agregar un registro necesito validar que el número de empleado no se duplique y que el usuario de login no sea igual...

El problema es que no se como hacer las dos validaciones antes de hacer el insert ya que solo he podido hacer la validacion del login, pero como no hago la validación del número al querer guardar el registrome enviael error de que el campo no admite duplicados, porque asi lo defini al crear la tabla.

Aqui esta el chorote de script en donde a partir del primer Else hago las validacion y pinto el mensaje en pantalla donde digo que el usuario ya existe y si no, se hace el insert y se muestran los datos en pantalla. Pero el error viene cuando pongo un numero de empleado que ya existe.

La variable mNEmpleado es la que se liga al campo N_Empleado de la tabla Usuarios y que no admite duplicados.

la funcion validar solo hace que los campos del formulario no esten vacios.

Sub MostrarDatos
Dim bValido
bValido = Validar(1)
If Not bValido Then
ScriptError
Else
Dim oConn, rs, SQL, mNEmpleado, mUsuario
mNEmpleado = Trim(Request.Form("NEmpleado"))
mUsuario = Trim(Request.Form("Usuario"))
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("DBase_001Soporte_Conalep.mdb")
SQL = "SELECT * FROM Usuarios WHERE (mLogin = '" & mUsuario & "' AND N_Empleado = '" & mNEmpleado & "');"
set rs = oConn.Execute (SQL)
if Not rs.EOF Then
Response.Write ("<div align = ""center"">")
Response.Write (" <font face = ""verdana, arial, Helvetica, sans-serif"" Color = ""#006633"" size = ""2"">")
Response.Write (" <b>")
Response.Write (" Registro de Usuario")
Response.Write (" </b>")
Response.Write (" </font>")
Response.Write ("</div>")
Response.Write ("<div align = ""center"">")
Response.Write (" <font Color = ""#FF0000"">")
Response.Write (" <strong>")
Response.Write (" El Número de Usuario ya existe o en Nombre de Usuario ya está en")
Response.Write (" uso ")
Response.Write (" <br>")
Response.Write (" </strong>")
Response.Write (" </font>")
Response.Write ("</div>")
Response.Write ("<div align = ""center"">")
Response.Write (" <a class = ""resumen"" href = ""Reg_Usuarios_001.asp"">")
Response.Write (" Registrarse")
rs.Close
oConn.Close
Set rs = Nothing
Set oConn = Nothing
Else
Dim mFAlta, mStatus
mFAlta = Now()
mStatus = "Activo"
Set oConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("DBase_001Soporte_Conalep.mdb")
SQL = "SELECT * FROM Usuarios ORDER BY N_Empleado"
rs.Open SQL, oConn, 1, 2
rs.AddNew
rs.Fields("N_Empleado") = Trim(Request.Form("NEmpleado"))
rs.Fields("Nombres") = Trim(Request.Form("Nombres"))
rs.Fields("A_Paterno") = Trim(Request.Form("APaterno"))
rs.Fields("A_Materno") = Trim(Request.Form("AMaterno"))
rs.Fields("Login") = Trim(Request.Form("Usuario"))
rs.Fields("Password") = Trim(Request.Form("Password"))
rs.Fields("C_Password") = Trim(Request.Form("CPassword"))
rs.Fields("P_Secreta") = Trim(Request.Form("PSecreta"))
rs.Fields("R_Secreta") = Trim(Request.Form("RSecreta"))
rs.Fields("E_Mail") = Trim(Request.Form("CElectronico"))
rs.Fields("Departamento") = Trim(Request.Form("Departamento"))
rs.Fields("Puesto") = Trim(Request.Form("Puesto"))
rs.Fields("F_Alta") = mFAlta
rs.Fields("Status") = mStatus
rs.Update
rs.Close
Response.Write ("<div align = ""center"">")
Response.Write (" <font face = ""verdana, arial, Helvetica, sans-serif"" Color = ""#006633"" size = ""2"">")
Response.Write (" <b>")
Response.Write (" Registro de Usuario")
Response.Write (" </b>")
Response.Write (" </font>")
Response.Write ("</div>")
Response.Write ("<hr Color = ""#C0C0C0"" Noshade>")
Response.Write ("<div align = ""center"">")
Response.Write (" <font face = ""verdana, arial, Helvetica, sans-serif"" Color = ""#006633"" size = ""2"">")
Response.Write (" <b>")
Response.Write (" Estos datos corresponden a tu Cuenta")
Response.Write (" </b>")
Response.Write (" </font>")
Response.Write ("</div>")
Response.Write ("<br>")
Response.Write ("<div align = ""center"">")
Response.Write (" <table border = ""0"" width = ""95%"" cellspacing = ""1"" cellpadding = ""3"">")
Response.Write (" <tr>")
Response.Write (" <td width = ""50%"" align = ""right"">")
Response.Write (" <font size = ""1"">")
Response.Write (" <b>")
Response.Write (" Tu Cuenta es:")
Response.Write (" </b>")
Response.Write (" </font>")
Response.Write (" </td>")
Response.Write (" <td>")
Response.Write (" <font color = ""#006633"">")
Response.Write (" <b>")
Response.Write ("" & Request.Form("Usuario") & "")
Response.Write (" </b>")
Response.Write (" </font>")
Response.Write (" </td>")
Response.Write (" </tr>")
Response.Write (" <tr>")
....
Response.Write ("<br>")
End If
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validar mas de un campos antes de hacer un inse

Publicado por weirdmix (210 intervenciones) el 11/06/2009 00:42:53
seria mejor q hicieras un Store Procedure donde validaras las 2 cosas y en caso de q no llegue al insert te regrese el mensaje correspondiente...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar mas de un campos antes de hacer un inse

Publicado por Sergio (2 intervenciones) el 12/06/2009 20:41:26
Gracias por el consejo. Lo voy a aplicar y les cuento los resultados. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar