Los cambios solicitados en la tabla no se realizaron correctamente porque crearían valores duplicados en el índice, clave principal o relación. Cambie los datos en el campo o los campos que contienen datos duplicados, quite el índice o vuelva a definir el índice para permitir entradas duplicadas e inténtelo de nuevo.
En access, he quitar las relaciones que tenía. Las tablas son asi:
El código es este
Código ASP:
Ver original
'-------------Inserts For i = 0 To CheckBoxList1.Items.Count - 1 aleatorio = CLng((100 - 999) * Rnd() + 999) IDsistemas = Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year & "-" & Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second & "." & Date.Now.Millisecond & "&" & aleatorio If CheckBoxList1.Items(i).Selected Then MisDatos = New OleDbDataAdapter("SELECT ID FROM tblEquipos where Nombre = '" & CheckBoxList1.Items(i).Text & "'", Miconexion) MiTabla = New DataTable MisDatos.Fill(MiTabla) sql = "INSERT INTO tblMantenimientoSistemas (ID, IDusuario, IDequipo, Fecha, Estado, IDtipoSistemas)" & _ "VALUES ('" & IDsistemas & "'," & IDusuario & "," & MiTabla(0).Item("ID") & ",'" & fecha & "','Pendiente'," & IDtipoSistema & ")" 'MsgBox(sql) Dim objCmd As New OleDbCommand(sql, Miconexion) Miconexion.Open() rtdo = objCmd.ExecuteNonQuery Miconexion.Close() For j = 0 To numTareas If CheckBoxList4.Items(j).Selected Then aleatorio = CLng((100 - 999) * Rnd() + 999) IDrel = Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year & "-" & Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second & "." & Date.Now.Millisecond & "&" & aleatorio MisDatos = New OleDbDataAdapter("SELECT ID FROM tblMantenimientoTareas where Tarea = '" & CheckBoxList4.Items(j).Text & "'", Miconexion) MiTabla = New DataTable MisDatos.Fill(MiTabla) IDtarea = MiTabla(0).Item("ID") sql = "INSERT INTO tblMantenimientoTareasRel (ID, IDmantenimientoSistemas, IDmantenimientoTareas)" & _ "VALUES ('" & IDrel & "','" & IDsistemas & "'," & IDtarea & ")" MsgBox(sql) Miconexion.Open() rtdo = objCmd.ExecuteNonQuery Miconexion.Close() End If Next End If Next