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
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


0