PDA

View Full Version : انتقال داده های اکسل به کنترل های ADO



vjp
چهارشنبه 11 آذر 1388, 23:53 عصر
سلام
من یک فایل اکسل دارم و برای انتقال داده های آن به دلفی مشکلی ندارم
اما مشکل اینجاست که عنوان های ستونهای اکسل به فارسی هستند مثلا "نام خانوادگی"
من چطور میتوانم مثلاً در ADodataset یک فیلد با عنوان Name تعریف کنم و مقدار متناظر آن در جدول اکسل را به این کنترل منتقل نمایم؟ با تشکر از شما
connection string مربوط به کامپپوننت ADOconnection به صورت زیر است:
'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Mode=Share Deny None;'+
'Extended Properties=Excel 8.0;Persist Security Info=False;'+
'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;'+
'Jet OLEDB:Database Locking Mode=1;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:Compact Without'+
' Replica Repair=False;Jet OLEDB:SFP=False';
و برای بازیابی اطلاعات توسط ADOdataset از دستور زیر استفده میکنم:
select * from [sheet1$]
با تشکر از شما

دلفــي
پنج شنبه 12 آذر 1388, 10:51 صبح
سلام
من یک فایل اکسل دارم و برای انتقال داده های آن به دلفی مشکلی ندارم
اما مشکل اینجاست که عنوان های ستونهای اکسل به فارسی هستند مثلا "نام خانوادگی"
من چطور میتوانم مثلاً در ADodataset یک فیلد با عنوان Name تعریف کنم و مقدار متناظر آن در جدول اکسل را به این کنترل منتقل نمایم؟ با تشکر از شما
connection string مربوط به کامپپوننت ADOconnection به صورت زیر است:
'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Mode=Share Deny None;'+
'Extended Properties=Excel 8.0;Persist Security Info=False;'+
'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;'+
'Jet OLEDB:Database Locking Mode=1;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:Compact Without'+
' Replica Repair=False;Jet OLEDB:SFP=False';
و برای بازیابی اطلاعات توسط ADOdataset از دستور زیر استفده میکنم:
select * from [sheet1$]
با تشکر از شما

با استفاده از فيلد محاسباتي و مقدار دهي آن با فيلد اصلي در رويداد onCalckFields

alinikaein
پنج شنبه 12 آذر 1388, 12:02 عصر
سلام دوست عزيز؛

فكر مي‌كنم، چيزي كه شما مي‌خواي، اين باشه:
بر روي ADODataSet كليك مضاعف كنيد تا پنجره‌ي مربوط به ويرايش فيلدها باز شود. سپس در پنجره‌ي مذكور، كليك راست كنيد و گزينه‌ي Add All Fields را بزنيد. حالا بر روي هر كدام از فيلدها كه قصد تغيير نام آن را داريد رفته و DisplayLabel آن را تغيير دهيد.


يا علي... موفق باشيد...

vjp
پنج شنبه 12 آذر 1388, 12:40 عصر
سلام دوست عزيز؛

فكر مي‌كنم، چيزي كه شما مي‌خواي، اين باشه:
بر روي ADODataSet كليك مضاعف كنيد تا پنجره‌ي مربوط به ويرايش فيلدها باز شود. سپس در پنجره‌ي مذكور، كليك راست كنيد و گزينه‌ي Add All Fields را بزنيد. حالا بر روي هر كدام از فيلدها كه قصد تغيير نام آن را داريد رفته و DisplayLabel آن را تغيير دهيد.


يا علي... موفق باشيد...

با تشکر از شما
آیا با این کار میشه به فیلدها با نام جدیدشان دسترسی پیدا کرد؟
منظورم اینه: adodataset1.fieldbyname("family")