Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2010, 03:11
cslbcn
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 2 meses
Puntos: 5
Exclamación problema al hacer un insert

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
  1. '-------------Inserts
  2.         For i = 0 To CheckBoxList1.Items.Count - 1
  3.             aleatorio = CLng((100 - 999) * Rnd() + 999)
  4.             IDsistemas = Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year & "-" & Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second & "." & Date.Now.Millisecond & "&" & aleatorio
  5.  
  6.             If CheckBoxList1.Items(i).Selected Then
  7.                 MisDatos = New OleDbDataAdapter("SELECT ID FROM tblEquipos where Nombre = '" & CheckBoxList1.Items(i).Text & "'", Miconexion)
  8.                 MiTabla = New DataTable
  9.                 MisDatos.Fill(MiTabla)
  10.  
  11.                 sql = "INSERT INTO tblMantenimientoSistemas (ID, IDusuario, IDequipo, Fecha, Estado, IDtipoSistemas)" & _
  12.                 "VALUES ('" & IDsistemas & "'," & IDusuario & "," & MiTabla(0).Item("ID") & ",'" & fecha & "','Pendiente'," & IDtipoSistema & ")"
  13.  
  14.                 'MsgBox(sql)
  15.                 Dim objCmd As New OleDbCommand(sql, Miconexion)
  16.                 Miconexion.Open()
  17.                 rtdo = objCmd.ExecuteNonQuery
  18.                 Miconexion.Close()
  19.  
  20.                 For j = 0 To numTareas
  21.                     If CheckBoxList4.Items(j).Selected Then
  22.  
  23.                         aleatorio = CLng((100 - 999) * Rnd() + 999)
  24.                         IDrel = Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year & "-" & Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second & "." & Date.Now.Millisecond & "&" & aleatorio
  25.  
  26.                         MisDatos = New OleDbDataAdapter("SELECT ID FROM tblMantenimientoTareas where Tarea = '" & CheckBoxList4.Items(j).Text & "'", Miconexion)
  27.                         MiTabla = New DataTable
  28.                         MisDatos.Fill(MiTabla)
  29.                         IDtarea = MiTabla(0).Item("ID")
  30.  
  31.                         sql = "INSERT INTO tblMantenimientoTareasRel (ID, IDmantenimientoSistemas, IDmantenimientoTareas)" & _
  32.                               "VALUES ('" & IDrel & "','" & IDsistemas & "'," & IDtarea & ")"
  33.  
  34.                         MsgBox(sql)
  35.                         Miconexion.Open()
  36.                         rtdo = objCmd.ExecuteNonQuery
  37.                         Miconexion.Close()
  38.  
  39.                     End If
  40.                 Next
  41.             End If
  42.         Next