Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

No se insertan registros nuevos en una tabla ACCESS

Estas en el tema de No se insertan registros nuevos en una tabla ACCESS en el foro de Bases de Datos General en Foros del Web. Hola a todo el mundo. Tengo una base de datos en la que hay tres tablas relacionadas entre si del siguiente modo (relaciones uno a ...
  #1 (permalink)  
Antiguo 24/01/2012, 03:32
 
Fecha de Ingreso: marzo-2007
Mensajes: 127
Antigüedad: 17 años, 1 mes
Puntos: 2
No se insertan registros nuevos en una tabla ACCESS

Hola a todo el mundo.

Tengo una base de datos en la que hay tres tablas relacionadas entre si del siguiente modo (relaciones uno a muchos, aunque en la práctica sólo se relacionan uno a uno)

ANALISIS_CABECERAS-------->ANALISIS_LINEAS_DE_CABECERAS

ANALISIS_LINEAS_DE_CABECERAS-------->ANALISIS_SOLUCIONES_DE_LINEAS

Pues bien, tengo un formulario en el que inserto mediante sentencias SQL registros nuevos en las tres tablas. Para ello introduzco los datos en "ANALISIS_CABECERAS", depués obtengo el máximo valor del campo clave de esta tabla (es autonumérico) para poder insertarlo en el campo correspondiente de la tabla "ANALISIS_LINEAS_DE_CABECERAS" y que queden así relacionados los registros de ambas tablas. Inserto en esta tabla este valor y los demás correspondientes a dicha tabla. Hago la misma operación con la última tabla.

Lo que me ocurre es que los datos en las dos primeras tablas se introducen sin problemas, pero los datos en la tercera tabla hay ocasiones en los que si que se introducen y hay ocasiones en las que no. me da la sensación de que esto ocurre cuando hay varios usuarios atacando a las tablas en diferentes equipo al mismo tiempo. Es como si algún usuario estuviera bloqueando el acceso a la última tabla de continuo y no dejara a los demás introducir datos, pero no se me genera ningún mensaje de error ni nada.

El código que uso es el siguiente:

-----------------------------------------------------------------------------------

Dim dbsMiBaseDatos As DAO.Database
Dim rstMiReg As DAO.Recordset
Dim Miselect As String

Miselect = "INSERT INTO ANALISIS_CABECERAS (Tipo,CodProcedencia,CodTipoMedida,CodCriterioNIve l1_A,IdCriterioNIvel2_A,CodCriterioNIvel1_B,IdCrit erioNIvel2_B) "
Miselect = Miselect & "VALUES ('LISTA'," & ValorProcedencia & ",'" & Me!NuevoTipoMedida.Value & "'," & ValorCodNivel1_A & "," & ValorIdNivel2_A & "," & ValorCodNivel1_B & "," & ValorIdNivel2_B & ");"

DoCmd.RunSQL Miselect

Set dbsMiBaseDatos = CurrentDb 'Asignamos la base de datos actual a la variable dbsMiBaseDAtos

'Instrucciones para escoger el máximo valor de ANALISIS_CABECERAS.CodCabeceraAnalisis en el que Tipo sea "LISTA"
Miselect = "SELECT MAX (ANALISIS_CABECERAS.CodCabeceraAnalisis) AS Maximo FROM ANALISIS_CABECERAS WHERE ANALISIS_CABECERAS.Tipo ='LISTA'"

Set rstMiReg = dbsMiBaseDatos.OpenRecordset(Miselect, dbOpenDynaset)
rstMiReg.MoveFirst
With rstMiReg
MaxCabecera = !Maximo
End With

Set rstMiReg = Nothing

'Insertamos los valores correspondientes en la tabla ANALISIS_LINEAS DE CABECERAS
Miselect = "INSERT INTO ANALISIS_LINEAS_DE_CABECERAS (CodCabeceraAnalisis,CausaMejora) VALUES ("
Miselect = Miselect & MaxCabecera & ",'" & Me!NuevoCausaMejora.Value & "')"

DoCmd.RunSQL Miselect

'Instrucciones para escoger el máximo valor de ANALISIS_LINEAS_DE_CABECERAS.CodLineaAnalisis
Miselect = "SELECT MAX (ANALISIS_LINEAS_DE_CABECERAS.CodLineaAnalisis) AS Maximo FROM ANALISIS_LINEAS_DE_CABECERAS"

Set rstMiReg = dbsMiBaseDatos.OpenRecordset(Miselect, dbOpenDynaset)
rstMiReg.MoveFirst
With rstMiReg
MaxLinea = !Maximo
End With

Set rstMiReg = Nothing

ValorFechaInicialCadena = Month(Me!NuevoFechaInicio.Value) & "/" & Day(Me!NuevoFechaInicio.Value) & "/" & Year(Me!NuevoFechaInicio.Value)
'Insertamos los valores correspondientes en la tabla ANALISIS_SOLUCIONES_DE_LINEAS
Miselect = "INSERT INTO ANALISIS_SOLUCIONES_DE_LINEAS (CodLineaAnalisis,Solucion,FechaInicio,FechaLimite ,FechaFin,CodResponsable,CodEfectividad,EditadoPor ,CodDepartamento) VALUES ("
Miselect = Miselect & MaxLinea & ",'" & Me!NuevoSolucion.Value & "',#" & ValorFechaInicialCadena & "#,#" & ValorFechaLimiteCadena & "#,"

Me!NuevoFechaFin.SetFocus
If Me!NuevoFechaFin.Text = "" Then
Miselect = Miselect & "Null"
Else
Miselect = Miselect & "#" & ValorFechaFinCadena & "#"
End If

Miselect = Miselect & "," & ValorResponsable & "," & ValorEfectividad & "," & ValorEditadoPor & "," & ValorDepartamento & ")"

DoCmd.RunSQL Miselect


dbsMiBaseDatos.Close

Set dbsMiBaseDatos = Nothing


-----------------------------------------------------------------------------------


Por favor, ¿alguien sabe qué me puede estar pasando y qué solución se puede dar al asunto?

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 25/01/2012, 13:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 127
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: No se insertan registros nuevos en una tabla ACCESS

Sigo con el mismo problema.

He modificado las tablas, ya que como en la práctica la relación entre las mismas era de uno a uno, las he juntado las tres en una sola. Pero ahora, cuando hago el "INSERT INTO" a esta tabla, no se me guarda ningún valor en la tabla pero no se me genera ningún mensaje de error ni nada, se ejecutan las líneas de código pero no pasa nada. Ahora bien, el campo clave de esta tabla es autonumérico, y si intento meter un registro directamente en la tabla, veo que el valor de este campo aumenta como si la tabla tuviera registros. Es decir, al hacer el "INSERT INTO", no se guardan lo datos pero el campo autonumérico aumenta su valor.

¿Qué puede estar pasando?.

Gracias.

Etiquetas: access, nuevos, registros, sql, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.