Cuando exporto esta tabla a excel los registros me vuelven a aparecer tablas ya eliminadas

Buenas tardes, con el comando delete from where que me diste funciono buenísimo para quitarme el registro de la base de datos. Pero cuando exporto esta tabla a excel los registros me vuelven a aparecer en esa tabla. Debe ser que los marca para eliminar pero no los elimina, ¿cómo soluciono este detalle?

1 respuesta

Respuesta
1
Antes de exportar los archivos debes poner set dele on o hacer un pack abriendo la tabla en exclusivo para eliminar los reg marcados como borrados.
el set dele on lo pongo antes del delete from tabla where o en el comando de exportar a excel? como se veria en ese caso?
¿Dale un browse antes de exportar y revisa si se ven los borrados pero antes dime como exportas los datos?
Hola, claro amigo abriendo la tabla y borrando los registros marcados es la solución más obvia, pero la idea es que el usuario final no le meta mano a estas tablas sino que exporte directamente desde el programa mediante un comando. El botón que tengo programado me exporta sin ningún problema pero me exporta también los marcados para borrar. Hasta ahí llego y me tranco ahí. el set deleted on no se donde va. El código de exportar es uno parecido al siguiente:
Select Agenda && Nombre de la tabla seleccionada.
MsExcel = Createobject("Excel.Application")
If Type("MsExcel") = "O" Then
MsExcel.Visible = .T. && Esta línea se coloca para ver si llega los datos no es recomendable colocarla.
MsExcel.Workbooks.Add()
MsExcel.Worksheets(1).Name = "Visual FoxPro" && el índice 1 indica el orden sucesivo de las hojas en excel y la propiedad Name sirve para cambiar el nombre de la hoja de Excel.
WkpGxtab = MsExcel.ActiveSheet
With WkpGxtab.Range(WkpGxtab.Cells(3,1), WkpGxtab.Cells(3,4))
.Borders.LineStyle = 7
.Borders(1).Weight = 3
.Borders(2).Weight = 3
.Borders(3).Weight = 3
.Borders(4).Weight = 3
.Font.Bold = .T.
.Font.ColorIndex = 5
.Interior.ColorIndex = 4
.HorizontalAlignment = 3
.VerticalAlignment = 2
Endwith
WkpGxtab.Range("A1").Select
WkpGxtab.Cells(1,1).Value = "Datos de Visual FoxPro"
WkpGxtab.Cells(3,1).Value = "Código"
WkpGxtab.Cells(3,2).ColumnWidth = 30
WkpGxtab.Cells(3,2).Value = "Nombre"
WkpGxtab.Cells(3,3).ColumnWidth = 40
WkpGxtab.Cells(3,3).Value = "Apellido"
WkpGxtab.Cells(3,4).ColumnWidth = 20
WkpGxtab.Cells(3,4).Value = "Teléfono"
lcRec = Reccount()
For i = 1 to lcRec
Go i
WkpGxtab.Range(WkpGxtab.Cells(i+3,1), WkpGxtab.Cells(i+3,4)).Select
WkpGxtab.Cells(i+3,1).Value = friend_id
WkpGxtab.Cells(i+3,2).Value = friend_las
WkpGxtab.Cells(i+3,3).Value = friend_nam
WkpGxtab.Cells(i+3,4).Value = friend_pho
With WkpGxtab.Range(WkpGxtab.Cells(i+3,1), WkpGxtab.Cells(lcRec+3,4))
.Borders.LineStyle = 7
.Borders(1).Weight = 2
.Borders(2).Weight = 2
.Borders(3).Weight = 2
.Borders(4).Weight = 2
Endwith
endfor 
donde deberia ir el set deleted on? En el botón de borrar el registro o en el de exportar. He tratado pero no me da nada de lo que intento. Si me pudieras ayudar por favor
Una vez tengas la tabla lista para transferir los archivos
Set dele on
Select Agenda && Nombre de la tabla seleccionada.
MsExcel = Createobject("Excel.Application")
......
do while !eof()
i=1
...
Endwith
.
i=i+1
Skip
Enddo
Cambia ese procedimiento en ves del for
Avisame...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas