Hola. Me estoy volviendo loco intentando descubrir que hago mal. A través de asp me conecto a una base de datos access e intento hacer inserts. En el código adjunto, la sentencia de la línea 11 y 12 funcionan correctamente, pero cuando hace la de las líneas 31 y 32 sale este error:
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