Salta Registros
Publicado por yanira (140 intervenciones) el 24/01/2007 15:22:03
Esta funcion toma los datos de una consulta y los agrega a una tabla, el problema es que aparentemente agrega todos los datos segun la variable Resultado y si lo depuro asi lo hace aparentemente.
Pero en realidad no los agrega todos y se salta algunos y no entiendo porque
Por ejemplo agrega de el registro 10,11,12,13,14
10,12,13,14
Si es un solo registro aparentemente corre el proceso pero en realidad no lo anexa a la tabla.
La verdad no entiendo como solucionarlo
Function InsertarVacantes() As Integer
'Ingresa los registros de la consulta de la tabla TNOVEDAD EXCEL a
'la tabla Vacantes
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
Dim Dias As Date, Dias2 As Date, FechaFin As Date, FechaInicio As Date, Actual As Date
Set DB = CurrentDb()
Texto = "SELECT * FROM [ImportaExcelVacante]"
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
FechaFin = tabla!FechaFin
FechaInicio = tabla!FechaInicio
Dias = tabla!FechaFin - tabla!FechaInicio
Dias2 = tabla!FechaFin - Date
If Dias >= 15 Then
If Dias2 >= 15 Then
If FechaFin > Date Then
Texto = "PARAMETERS Act DateTime, FINICIA DateTime, FTERMINA DateTime; " & _
"INSERT INTO Vacantes (IDVacante,CodigoDANE,IDJornada, IDNivel, IDArea, Sede, FechaCreación, Observaciones, IDTipoVacante, Titular,TipoNovedad, Inicio, Fin, Usuario) " & _
"VALUES (" & ConsecutivoVacante() & ",'" & .Fields("DANE") & "'," & .Fields("IDJornada") & "," & .Fields("IDNivel") & ",'" & .Fields("IDArea") & "','" & .Fields("Sede") & "',[Act],'" & .Fields("OBS") & "'," & .Fields("TipoVacante") & "," & .Fields("NumDocumento") & "," & .Fields("Tipo") & ",[FINICIA],[FTERMINA],'" & .Fields("Usu") & "')"
Set Agregar = DB.CreateQueryDef("", Texto)
Agregar.Parameters![Act] = .Fields("Actual")
Agregar.Parameters![FINICIA] = .Fields("FechaInicio")
Agregar.Parameters![FTERMINA] = .Fields("FechaFin")
Agregar.Execute
Resultado = Resultado + 1
.MoveNext
Controla = 1
End If
If tabla.EOF Then
GoTo Sale
Else
If Controla = 1 Then
Controla = 0
GoTo Sale
Else
.MoveNext
End If
End If
Else
.MoveNext
End If
Else
.MoveNext
End If
Sale:
Loop
End With
End If
InsertarVacantes = Resultado
End Function
Pero en realidad no los agrega todos y se salta algunos y no entiendo porque
Por ejemplo agrega de el registro 10,11,12,13,14
10,12,13,14
Si es un solo registro aparentemente corre el proceso pero en realidad no lo anexa a la tabla.
La verdad no entiendo como solucionarlo
Function InsertarVacantes() As Integer
'Ingresa los registros de la consulta de la tabla TNOVEDAD EXCEL a
'la tabla Vacantes
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
Dim Dias As Date, Dias2 As Date, FechaFin As Date, FechaInicio As Date, Actual As Date
Set DB = CurrentDb()
Texto = "SELECT * FROM [ImportaExcelVacante]"
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
FechaFin = tabla!FechaFin
FechaInicio = tabla!FechaInicio
Dias = tabla!FechaFin - tabla!FechaInicio
Dias2 = tabla!FechaFin - Date
If Dias >= 15 Then
If Dias2 >= 15 Then
If FechaFin > Date Then
Texto = "PARAMETERS Act DateTime, FINICIA DateTime, FTERMINA DateTime; " & _
"INSERT INTO Vacantes (IDVacante,CodigoDANE,IDJornada, IDNivel, IDArea, Sede, FechaCreación, Observaciones, IDTipoVacante, Titular,TipoNovedad, Inicio, Fin, Usuario) " & _
"VALUES (" & ConsecutivoVacante() & ",'" & .Fields("DANE") & "'," & .Fields("IDJornada") & "," & .Fields("IDNivel") & ",'" & .Fields("IDArea") & "','" & .Fields("Sede") & "',[Act],'" & .Fields("OBS") & "'," & .Fields("TipoVacante") & "," & .Fields("NumDocumento") & "," & .Fields("Tipo") & ",[FINICIA],[FTERMINA],'" & .Fields("Usu") & "')"
Set Agregar = DB.CreateQueryDef("", Texto)
Agregar.Parameters![Act] = .Fields("Actual")
Agregar.Parameters![FINICIA] = .Fields("FechaInicio")
Agregar.Parameters![FTERMINA] = .Fields("FechaFin")
Agregar.Execute
Resultado = Resultado + 1
.MoveNext
Controla = 1
End If
If tabla.EOF Then
GoTo Sale
Else
If Controla = 1 Then
Controla = 0
GoTo Sale
Else
.MoveNext
End If
End If
Else
.MoveNext
End If
Else
.MoveNext
End If
Sale:
Loop
End With
End If
InsertarVacantes = Resultado
End Function
Valora esta pregunta


0