Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con ADO leyendo excel (https://www.clubdelphi.com/foros/showthread.php?t=72050)

RICTAPIA5 25-01-2011 19:30:58

Problema con ADO leyendo excel
 
Hola

Tengo un ADOtable asociado a un archivo en excel

el problema es que en el archivo en excel existe un campo que comparte datos numericos y con alphanumericos

pero siempre convierte los alfanumericos en nulllos

y si cambio el tipo de dato desde la opcion "Form as Text" a widestring marca un error de que espera un float


¿alguna idea de como solventar esto?

Gracias

Neftali [Germán.Estévez] 26-01-2011 12:38:10

Tal vez colocando algo de código y algunos datos de ejemplo sea más fácil ayudarte.
Lo raro es que no lea toda la columnas como texto.
¿Cómo tienes configurado el formato de la columna en Excel?

RICTAPIA5 26-01-2011 18:09:04

código
 
lo único que he encontrado para darle la vuelta es ponerle desde excel una fórmula=TEXTO(B2,0)

el archivo está en formato 97-2003,
no sé si es por que mi lap tiene instalado el 2007

Gracias

anexo el código

// string tomado de este foro
String1 := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Users\Usuario\Documents\FIMS\03 CONSTRUCCION\BASE GRAL EXPEDIENTES_NUEVO.xls;Mode=Share Deny None;Persist Security Info=False;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;'

ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := String1;
ADOConnection1.Connected := True;
// conectar y obtener datos
ADOTable_Registros.Close;
ADOTable_Registros.Active := False;
ADOTable_Registros.TableName := ECarpeta.Text;
ADOTable_Registros.Active := True;
ADOTable_Registros.Open;
Max := ADOTable_Registros.RecordCount;
Min := 0;



aqui leo los datos
Min := 1;
Max := ADOTable_Registros.RecordCount;
ADOTable_Registros.First;
MemoSalida.Clear;
For I := Min to Max do
Begin
Position := I;
Campo_Llave := ADOTable_Registros.FieldByName('Campo_Llave').AsString;
No_Prestamo_Abanks := ADOTable_Registros.FieldByName('No_Prestamo_Abanks').AsString;
Credito := ADOTable_Registros.FieldByName('Credito').AsString;

// poniendo la forma com "AS TEXT"
así se ve el campo del adotable
object ADOTable_RegistrosNO_PRESTAMO_ABANKS: TWideStringField
FieldName = 'NO_PRESTAMO_ABANKS'
Size = 255
end


La franja horaria es GMT +2. Ahora son las 06:13:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi