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 de ingesoft
1
1
ingesoft, Ing. en Sistemas ,Manejo de base de datos Diseño y elaboración de...
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...