![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Importar Excel:
Este Codigo, no es de mi autoria, deberia colocar la fuente, que la verdad, no la tengo en este momento. Lo que hace es recorrer todas las celdas del Excel y cargar en una tabla. La idea es ver como se hace y q cada uno lo reprograme a gusto y necesidad. Saludos. |
|
#2
|
||||
|
||||
|
¡Ah qué caray!
El bucle tiene un error pero supongo que ya lo habrás notado: ¡le falta Table1.Append al principio! // Saludos |
|
#3
|
||||
|
||||
|
De nuevo muchas gracias, realize todos los pasos que me indicaste, y todo funciono a la perfecion. Si bien los pasos una vez descritos son bastante entendibles, ¿como pudiste llegar a ellos?. Mientras me contestabas, trate de una y otra forma de utilizar estos componentes, pero no se me ocurrio hacerlo de esa forma. Ya sé que muchas veces se cuenta el milagro pero no el santo, pero en realidad me interesa investigar mas a fondo los componentes ADO, si me pudieras dar algunas direcciones internet que haben del tema te lo agradeceria mucho.
Consulta: Existe alguna diferencia que sea importante al momento de decidir ocupar, entre las propiedades: Table1.Fields[0].Value; y Table1.FieldByName('campo').AsString; Reitero mis agradecimientos roman. |
|
#4
|
||||
|
||||
|
Cita:
De cualquier forma debe haber muchos lugares en la Web en dónde consultar. Una búsqueda en Google me dió al menos este artículo del sitio de Borland. Aquí debes registrarte pero es gratuito. Tanbién seguro que otras personas en estos foros podrán orientarte mejor que yo, una vez que despierten Cita:
// Saludos |
|
#5
|
||||
|
||||
|
Muchas gracias por todo, ahora me voy a acostar porque es muy tarde y me dio mucho sueño
.Saludos. ![]() |
|
#6
|
||||
|
||||
|
Hola, de nuevo. Resulta que probando con una planilla Excel,
tuve que validar si las celdas estaban vacias o no, a traves del siguiente codigo dentro del bucle de asignación: Código:
val cConc: String;
...
while not AdoDataSet1.Eof do begin
if AdoDataSet1.Fields[14].Value = Null
then cConc:= ''
else cConc:= AdoDataSet1.Fields[14].Value;
...
Table1.FieldByName('conc').AsString:= cConc;
...
end;
información (valor numerico), y en la asignación aparecian con valores nulos (Null), siendo que la celda anterior (misma columna) se recuperaba el valor sin ningun problema, y en otra columna simplemente no recuperaba su valor en todo el bucle. Revise la planilla excel para ver si era el formato de la celda, pero ambas tenian el mismo formato. Probe cambiando de Excel 2000 a Excel 97, pero no resulto. La unica diferencia que encontre es el valor que contenian, la que me arrojaba el valor nulo tenia 5202006 y la anterior 1118084, pero como la recuperaba con la sentencia: Table1.FieldByName('cuenta').AsString:= AdoDataSet1.Fields[3].Value; deberia devolverme un valor 'variants'. Desde ya agradesco su ayuda. |
|
#7
|
||||
|
||||
|
Esta vez me respondo yo mismo.
Resulta que el programa estaba bien, el problema era la planilla excel, que tenia datos con distinta alineación (izq. y derecha) en una misma columna, y esto por alguna razón que desconozco traspasaba valores nulos. La solución fue copiar "solo los valores" de la hoja (pegado especial), pegarlos en una hoja nueva y dar el formato de "texto" a todas las celdas. En fin, cuando se trabaja con Excel hay que tener en cuenta estos inconvenientes. Por mi parte cierro este hilo, y muchas gracias por todo. |
|
#8
|
|||
|
|||
Hola de nuevo! Hice nuevamente los pasos que le menciona Román a DarkSide y corregí algunos errores que tenía y logré por fin que el dbgrid se conectara a mi archivo de excel.Sin embargo, no logro hacer que en el dbgrid me muestre la tabla. ¿Alguien sabrá por qué me marca un error al querer abrir la tabla que lo contiene? Tengo los siguientes componentes en la forma: 1. Una ADOConnection llamado adcExcel cuya ConnectionString es la siguiente: Código:
Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin; Data Source=C:\Documents and Settings\Administrador\Mis documentos\BD Pruebas XL-ADO\nomina.xls; Mode=ReadWrite;Extended Properties=Excel 8.0;Jet OLEDB:System database=""; Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False; Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False 2. Un ADODataSet llamado dsExcel que tiene las siguientes propiedades:
3. Un DataSource llamado dsExcel cuyo DataSet es dsExcel. 4. Un ADOTable llamado tblExcel con las siguientes propiedades:
Código: Project X.exe raised exception class EOleException with message 'Error de sintaxis en la cláusula FROM'. Process stopped. Use Step or Run to continue. De antemano muchas gracias por su ayuda; realmente me ha servido mucho tener contacto con ustedes ![]() Última edición por atirado fecha: 30-03-2004 a las 18:15:03. Razón: mensaje demasiado ancho |
|
#9
|
||||
|
||||
|
atirado
Por favor edita tu mensaje para cortar la línea del "connection string" ya que ocasiona que el ancho total de tu mensaje y por tanto de todos los demás se haga extremadamente ancho y muy difícil de leer. En cuanto a tu pregunta no sé a qué se deba. Quizá tenga que ver con la versión de Excel. ¿Qué versión utilizas? // Saludos |
|
#10
|
|||
|
|||
|
Hola, Román! Sorry a todos, creo que se me fueron las 4 con lo del código, jeje
Respecto al problema, les paso aquí cómo lo solucioné, por si alguien más tiene ese problema: Mi problema fue, precisamente, haber puesto un ADOTable, pues al querer conectar el DBGrid a dicho componente, era donde me marcaba el dichoso código Código:
Error de sintáxis en la cláusula FROM La solución fue tan simple y sencilla como borrar el ADOTable y conectar el DBGrid directamente al DataSource. Es decir, sólo me quedé con lo siguiente:
Un enorme saludo a tod@s Alejandro |
|
#11
|
|||
|
|||
|
Me falta algo?
Estoy intentando pasar este codigo a un programa.
Todo va de maravilla, pero a la hora de conectar el TADODataSet, la propiedad commandText, me da el siguiente error : NO SE PUDO ENCONTRAR EL ARCHIVO ISAM INSTALABLE Alguien me puede asesorar.. Muchas Gracias |
|
#12
|
||||
|
||||
|
Saludos amigos:
He seguido los pasos de Roman al pie de la letra y hasta el momento todo bien. Utilizo un ADOConection, un ADODataSet, un DataSource y un DBGrid. Siguiendo los pasos y adicionando además el DBGrid logro que los datos se muestren en el DBGrid en tiempo de diseño, pero cuando ejecuto el programa, me salé el siguiente error: Cita:
En espera de alguna sugerencia.... Saludos
__________________
El único hombre que no se equivoca es el que nunca hace nada. |
|
#13
|
||||
|
||||
|
Pues el mensaje es bastante genérico como para poder decir algo sensato. Convendría que te fijases en qué línea de código te marca ese error.
// Saludos |
|
#14
|
||||
|
||||
|
Lo de Error catastrófico lo he vivido también. Busca Updates de delphi.
Di la versión que tienes de delphi y si tienes algún Update pack instalado. Creo recordar que había problemas al tener instalado C++ y Delphi al mismo tiempo en las versiones 6, tenías que bajar un parche de Borland. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
|
|
|