"Fer" <BARROSRIVEIRA...@terra.es> escribió en el mensaje news:OB8iEYY...@tk2msftngp13.phx.gbl...
> Necesito borrar toda una fila de un fichero Excel desde un formulario
> de Visual Basic y a través de SQL pero no lo consigo ...
Hola:
Si estás utilizando el ISAM de Excel del motor Microsoft Jet, no podrás
eliminar registros, debido a que dicho ISAM no permite eliminar filas de las
hojas de cálculo ni de los libros de trabajo, por tanto, no se puede
ejecutar una consulta SQL de eliminación, aparte que me imagino que te
arrojará una descripción de error más o menos como la siguiente: Este ISAM
no admite la eliminación de datos en una tabla vinculada, o algo por el
estilo.
Si quieres conocer más a fondo el ISAM de Excel, consulta el siguiente
artículo, en concreto el punto «Limitaciones a tener en cuenta».
Trabajar con ADO, DAO y Excel
http://es.geocities.com/Softjaen/Articulos/Excel/ADO_DAO_Excel.htm
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Trabajar con ADO, DAO y Excel
http://es.geocities.com/softjaen/articulos/excel/ado_dao_excel.htm
En el artículo que te he indicado, expongo más o menos lo que es el ISAM de
Excel. En resumidas cuentas, se trata de una biblioteca (DLL) con la que el
motor de base de datos Microsoft Jet puede interactuar con otros datos
externos distintos de las bases de datos nativas de dicho motor (bases de
datos Microsoft Access). Si no fuera por dicho controlador (driver, o como
desees llamarlo), no podrías utilizar el código fuente que has adjuntado
para abrir un libro de trabajo de Excel y rellenar un conjunto de registros
con los datos de la hoja de trabajo «Despiece».
> te paso un txt en el que adjunto el código que utilizo para
> realizar una consulta. Ahora lo que quiero hacer es precisamente
> modificar este código para añadir una instrucción SQL que en
> lugar de "buscar" lo que haga es eliminar registros.
>
Te vuelvo a repetir que, salvo que alguien me demuestre lo contrario, con el
ISAM de Excel no se pueden eliminar registros de una hoja de cálculo, o al
menos, yo no sé cómo hacerlo.
Si tienes instalado Microsoft Excel en tu equipo, y si tu preocupación es
eliminar filas (registros) de la hoja, edita directamente la hoja con
Microsoft Excel y elimina las filas que consideres oportunas. Si lo quieres
hacer mediante programación, tendrás que recurrir a la biblioteca de Excel,
por lo que tendrás que hacer referencia a ella en tu proyecto de Visual
Basic. Entiendo que lo más fácil es hacer lo primero, porque no entiendo qué
sentido puede tener el abrir una hoja de cálculo mediante el ISAM de Excel
para eliminar filas de la misma. ¿?
Si por el contrario, en tu equipo, o en los equipos donde tengas previsto
distribuir tu aplicación, no tienen instalado Microsoft Excel, difícilmente
vas a poder utilizar la biblioteca de Excel en tu proyecto. Lo bueno del
ISAM de Excel es que no es necesario tener instalado Microsoft Excel para
manipular (con ciertas limitaciones) los datos contenidos en un libro de
trabajo.
--> Pero puedo borrar de un golpe todas las filas en las que aparezca un
código que no empiece por "301" ??? Si puedo hacer esto me vale y el sentido
que tiene es que ir borrando una a una hasta unos 100 registros es un poco
primitivo ... no ???
salu2 !!!
"Softjaen" <grupo_n...@softjaen.es> escribió en el mensaje
news:OmOvfCaQ...@TK2MSFTNGP12.phx.gbl...
> Pero puedo borrar de un golpe todas las filas en las que aparezca un
> código que no empiece por "301" ??? Si puedo hacer esto me vale
> y el sentido que tiene es que ir borrando una a una hasta unos 100
> registros es un poco primitivo ... no ???
>
¿Mediante la biblioteca de Excel? Lo desconozco, porque sinceramente, te
diré que nunca he tenido oportunidad de llevar a cabo tal operación mediante
automatización. Y si se me presentara, tardo menos tiempo abriendo la hoja
con Excel y borrar las filas que crea conveniente.
Podrías consultar en la ayuda de Excel el método «Find» para definir los
parámetros de la búsqueda, el método «FindNext» para continuar con la
búsqueda, el método «Select» para seleccionar un objeto «Range» y el método
«Delete» para eliminar el rango seleccionado.