Duplicacion de datos

zek
18 de Agosto del 2004
ultima mente me sale un error que me dice que me esta duplicando los datos en la misma base de datos y no encuentro que erroro pueda ser me dicen que valide la variable por asi decirlo pero como no tengo mucha experiencia en programacion me gustaria saber si me pueden ayudar

este es el codigo

Private Sub mnuGuardar_Click()
Data1.Recordset.AddNew

Data1.Recordset("NumEmpleado") = Int(NumEmpleado.Text)
Data1.Recordset("Nombre") = Nombre.Text
Data1.Recordset("Fecha") = Fecha.Text
Data1.Recordset("LugarNacimiento") = LugarNacimiento.Text
Data1.Recordset("Sexo") = Sexo.Text
Data1.Recordset("Estado") = Estado.Text
Data1.Recordset("Curp") = CURP.Text
Data1.Recordset("IMSS") = IMSS.Text
Data1.Recordset("Direccion") = Direccion.Text
Data1.Recordset("Municipio") = Municipio.Text
Data1.Recordset("Telefono") = Telefono.Text
Data1.Recordset("Codigo") = Codigo.Text
Data1.Recordset("FechaIng") = Fechaing.Text
Data1.Recordset("Fechasal") = Fechasal.Text
Data1.Recordset("Comentario") = Comentario.Text
Data1.Recordset.Update
MsgBox "Se Actualizó Base de Datos", vbInformation, "Actualizacion de Datos"
checaesto False, False

saliR:
End Sub

sdemingo
18 de Agosto del 2004
Hola,

estás dando de alta un nuevo registro, y supongo que el campo NumEmpleado será clave en la tabla. Asegúrate de que el número de empleado que metes no exista ya.

salu2
sdemingo

mvallejos
18 de Agosto del 2004
Es probable que el número de empleado ya exista.
Para evitar este problema, podés armarte una función
que te retorne el próximo nro de cliente a generar, usando la función agregada Max() en una cosnulta Sql

Function ProxNumEmp(Cn as Connection) as Long
Dim Sql as String
Dim R As New Recordset
Sql = "Select Max(NumEmpleado) + 1 From <tabla>"
R.Open Sql, Cn,AdOpenSatatic
If Isnull(R.Fields(0).value) then
ProxNumEmp = 1
Else
ProxNumEmp = R.Fields(0).value
End if
R.Close
End Function

Donde dice <tabla> escribile el nombre de la tabla real
Colocá esta función en un módulo y podés llamarla desde cualquier lado