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 |
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? |
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