Access - Porque duplica?

 
Vista:

Porque duplica?

Publicado por yanira (140 intervenciones) el 19/10/2006 23:46:11
Tengo la funcion en la parte inferior que toma los datos de una tabla en access, los importa y los almacena en una tabla esto atraves de una consulta

Lo que no entiendo es si la tabla en la que importa la informacion de excel y la consulta me muestran un solo dato por ejemplo porque al mirar la tabla novedades que es donde finalmente quedara almacenada me muestra que almaceno dos veces el mismo registro

Function InsertarNovedades() As Integer

Dim DB As Database
Dim tabla As DAO.Recordset
Dim Consulta As QueryDef
Dim Agregar As QueryDef
Dim Texto As String
Dim resultado As String 'Número de registros insertados

Set DB = CurrentDb()
Texto = "SELECT * FROM [Cargue Novedades]"
Set Consulta = DB.CreateQueryDef("", Texto)
Set tabla = Consulta.OpenRecordset

resultado = 0

If (tabla.BOF = True) Then
resultado = 0
Else
With tabla
Do While Not .EOF
Texto = "INSERT INTO NOVEDADES (IDNovedad,IDTipoDoc,NumDocumento,IDTipoPersona,DANE,Institucion,IDTipoNovedad,FechaInicio,FechaFin,IDArea,IDNivel,IDJornada,Sede,Observaciones,Usuario) " & _
"VALUES (" & ConsecutivoNovedad() & "," & .Fields("TipoDoc") & "," & .Fields("Documento") & "," & .Fields("TipoPer") & ",'" & .Fields("CodDANE") & "','" & .Fields("Colegio") & "','" & .Fields("Novedad") & "',#" & .Fields("Inicio") & "#,#" & .Fields("Fin") & "#,'" & .Fields("IDArea") & "'," & .Fields("IDNivel") & "," & .Fields("IDJornada") & ",'" & .Fields("Sede") & "','" & .Fields("Obs") & "','" & .Fields("Usu") & "')"
Set Agregar = DB.CreateQueryDef("", Texto)
Agregar.Execute
resultado = resultado + 1
.MoveNext
Loop

End With
End If
InsertarNovedades = resultado

End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Porque duplica?

Publicado por Rodolfo (463 intervenciones) el 20/10/2006 18:33:09
No lei todo tu codigo porque es muy extenso, pero fijate porque debes tenes lagun dato que se duplica por la relacion

ejemplo, si en la tabla 1 tenes los valore 1,2 y 3
y en la tabla 2 tenes 1,1,2 y 3
ya haces una relacion de izquierda a derecha desde la tabla uno a la 2, el rdo va a ser

1 1
1 1
2 2
3 3

Como veras, a psar de que el la tabla t el 1 estaba una sola vez , por el tipo de relacion te lo repite al encontrarlo dos veces en la tabla 2

Espero que te sirva. Para que no te pasen estas cosas leete algun apunte de normalizacion de tablas, si buscas con google hay algunos apuntes muy buenos y faciles

Saludos

Rodolfo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Porque duplica?

Publicado por yanira (140 intervenciones) el 20/10/2006 23:13:41
Mira lo que yo hago es tomar de una tabla de excel un registro lo importo a la bd y de alli atraves de una consulta la cual llamo en la funcion lo almaceno en una tabla definitivamente (esto porque en la primera debo recibir despues nuevos registros, es decir, para cada dia una tabala diferente).

Entonces cuando reviso la tabla temporal en la cual importo el archivo alli hay un solo archivo y si ejecuto la consulta tambien solo hay un registro pero es al momento de ejecutar el codigo cuando lo repite, y se supone que el codigo solo abre la consulta, la tabla e inserta de la primera a la segunda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar