PDA

View Full Version : انتقال اطلاعات از فایل اکسل به جدولی درون بانک اکسس



khoshblagh
چهارشنبه 19 بهمن 1390, 14:01 عصر
با سلام خدمت دوستان
میخواهم اطلاعات درون یک فایل اکسل را به جدولی در بانک اکسس انتقال دهم . میدانم که باید از کامپوننت درون تب سرور یا تب ADO دلفی استفاده نمایم. ولی روش کار را بلد نیستم. چگونه اینکار را باید انجام دهم؟ متشکرم

h_mohamadi
پنج شنبه 20 بهمن 1390, 08:24 صبح
با استفاده از ADOکانکشن و ADO کوئری که روی فرمتان می گذارید و کانکشن ها به اکسل وصل می کنید و با یک For و کئوری دیگر دیتا ها را درون فایل اکسس می ریزید

khoshblagh
پنج شنبه 20 بهمن 1390, 09:58 صبح
با تشکر از پاسختان
برای ADOکانکشن از کدام provider باید استفاده کرد؟ من سعی کردم با adoTable مستقیما به فایل اکسل وصل شوم که نشد. البته از ADOکانکشن جهت اتصال هم استفاده نمودم ولی احتمالا provider مریوطه غلط بوده است.در صورت امکان با ارائه یک نمونه ساده قطعا مشکل من حل خواهد شد. متشکرم

tiphooo
پنج شنبه 20 بهمن 1390, 13:07 عصر
Microsoft Jet 4.0 OLE DB Provider

h_mohamadi
یک شنبه 23 بهمن 1390, 17:35 عصر
Microsoft Jet 4.0 OLE DB Provider

من تست کردم جواب نداد؟
اشکال از کجاست؟
تنظيم خاصي دارد؟

tiphooo
یک شنبه 23 بهمن 1390, 19:23 عصر
اگر فایل Password دارد آن را وارد نکن

یوسف زالی
یک شنبه 23 بهمن 1390, 21:32 عصر
دوست من چرا از خود اکسل در جدول اکسس کپی پیست نمی کنید؟

khoshblagh
دوشنبه 24 بهمن 1390, 07:10 صبح
با سلام
به علت اینکه اینکار در قالب یک برنامه توسط یک کاربر فرضی که هیچگونه اطلاعات خاصی از بانکهای اطلاعاتی ندارد باید انجام گردد. لذا اینکار از طریق برنامه و کد میبایست صورت پذیرد.

h_mohamadi
دوشنبه 24 بهمن 1390, 15:37 عصر
دوستان خواهش مي کنم راهنمايي کنيد؟

سعید صابری
دوشنبه 24 بهمن 1390, 20:17 عصر
دوستان خواهش مي کنم راهنمايي کنيد؟

مشکل شما کجاست؟ با اتصال یا انتقال ؟
provider اکسل

excel 2003
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

2007
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myExcel2007.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

h_mohamadi
دوشنبه 01 اسفند 1390, 17:33 عصر
با تشکر مشکل من حل شد ADOQuery و ADOTable من به فايل اکسل وصل شد اما نمي توانم ACTIVE آنها را true کنم چون در ADOQueryنمي دانم در قسمت sql چي بنويسم که پيغام ندهد و در ADOTableنمي دانم وقتي اسم Table را انتخاب مي کنم اسم شيت اکسل که 1 است را به صورت '1$' مي آورد و ACTIVE آن را true نمي کند

h_mohamadi
سه شنبه 02 اسفند 1390, 13:28 عصر
کسي به من جواب نمي دهد که بتوانم مشکلم را حل کنم

h_mohamadi
شنبه 06 اسفند 1390, 09:24 صبح
خواهش مي کنم کمک کنيد

tiphooo
شنبه 06 اسفند 1390, 15:17 عصر
دوست عزیز فایل Excel را اینجا بگذارید که بتوان کمک کرد لازم نیست فابل را با کل اطلاعات بگذارید فقط با یک رکورد هم کافیست

khoshblagh
دوشنبه 08 اسفند 1390, 07:30 صبح
83379با سلام میشه در قالب این فایل اکسل قطعه کدی که محتویات آنرا به یک جدول فایل اکسس انتقال دهد را ارائه نمائید؟ متشکرم.

tiphooo
چهارشنبه 10 اسفند 1390, 02:04 صبح
دوست عزیز فایل Excel شما چون WorkBook نیست باید اسامی Sheet ها را علاوه بر علامت $ از علامت براکت نیز استفاده کنید به صورت [Sheet1$]
در هر صورت نمونه برنامه تیدبل را برایتان گذاشتم فقط فراموش نکنید فایل Access ایجاد شده از روی فایل Excel شما بود و اگر فیلدی را در Excel تغییر دادید و یا فرمت آن را تغییر دادید و یا جابجا کردید در Access هم آن کار را انجام دهید در Access نام جدولتان همان Sheet1 است اینجا نیازی به علامت $ و [] نیست
نمونه کد ارسالی با فابل شما کاملا تست شده و هیچ مشکلی ندارد
ConnectionString ها چون ممکن است فایلهای Access و Excel شما متفاوت باشند در کدنویسی تکمیل شده اند ولی نام جداول [Sheet1$] و Sheet1 است اگر اسامی را تغییر دادید در سورس برنامه نیز تغییر دهید83470
نام فایل اکسس AccessDB است که اون رو هم ضمیمه کردم
اگر سوالی داشتید بگید راهنمایی کنم

khoshblagh
شنبه 13 اسفند 1390, 07:55 صبح
با تشکر از جناب tiphooo
نمونه ارائه شده کاملا مفید و جامع بود .اما در گریدی که به فایل اکسل وصل است عرض بعضی از فیلدها متنی علیرغم اینکه محتویات آن فرضا 10 کارکتر میباشد ولی در گرید مربوطه معادل 100 کارکتر یا بیشتر جا اشغال میکند. میخواستم بدانم راهی است که بتوان طول ستونها(فیلد)کنترل نمود؟ البته من در رابطه گرید متصل به فایل اکسس توانستم تنظیمات را انجام دهم ولی برای گرید متصل به فایل اکسل نتوانستم.متشکرم

tiphooo
شنبه 13 اسفند 1390, 12:45 عصر
طول کارکتر اطلاعات شما 10 حرف می باشد ولی زمانی که از اکسل اطلاعات را می خوانید چون نوع فیلدها را Text تعریف کرده اید اینجا سایز آن حداکثر سایز را به خود اختصاص داده یعنی 255 . راه حل این است که شما فیلدها را در FieldList جدول اضافه کرده و در خصوصیات سایز آن را محدود کنید و یا در اکسل این کار را انجام دهید

khoshblagh
شنبه 13 اسفند 1390, 12:58 عصر
طول کارکتر اطلاعات شما 10 حرف می باشد ولی زمانی که از اکسل اطلاعات را می خوانید چون نوع فیلدها را Text تعریف کرده اید اینجا سایز آن حداکثر سایز را به خود اختصاص داده یعنی 255 . راه حل این است که شما فیلدها را در FieldList جدول اضافه کرده و در خصوصیات سایز آن را محدود کنید و یا در اکسل این کار را انجام دهید
در اکسل چگونه این کار انجام میگردد؟

tiphooo
شنبه 13 اسفند 1390, 13:03 عصر
راستش من در اکسل چیزی برای تغییر سایز ندیدم بر روی ستونها اگر کلیک راست کنیم و FormatCell را بزنیم و ازنوع Text انتخاب کنیم باکس دیگری برای تنظیم سایز text ندارد شاید دوستان دیگر در این زمینه اگر اطلاعاتی دارند بتوانند راهنمایی کنند

khoshblagh
شنبه 20 اسفند 1390, 07:28 صبح
دوست عزیز فایل Excel شما چون WorkBook نیست باید اسامی Sheet ها را علاوه بر علامت $ از علامت براکت نیز استفاده کنید به صورت [Sheet1$]
در هر صورت نمونه برنامه تیدبل را برایتان گذاشتم فقط فراموش نکنید فایل Access ایجاد شده از روی فایل Excel شما بود و اگر فیلدی را در Excel تغییر دادید و یا فرمت آن را تغییر دادید و یا جابجا کردید در Access هم آن کار را انجام دهید در Access نام جدولتان همان Sheet1 است اینجا نیازی به علامت $ و [] نیست
نمونه کد ارسالی با فابل شما کاملا تست شده و هیچ مشکلی ندارد
ConnectionString ها چون ممکن است فایلهای Access و Excel شما متفاوت باشند در کدنویسی تکمیل شده اند ولی نام جداول [Sheet1$] و Sheet1 است اگر اسامی را تغییر دادید در سورس برنامه نیز تغییر دهید83470
نام فایل اکسس AccessDB است که اون رو هم ضمیمه کردم
اگر سوالی داشتید بگید راهنمایی کنم
با سلام خدمت دوستان
آبا راهی هست که از توی برنامه با کد نویسی نام جدول(Sheet1 ) فایل اکسل را بدست آورد و به نام دلخواه تغییر داد؟ متشکرم

yazdianfarabco
دوشنبه 04 شهریور 1392, 19:15 عصر
با سلام
من حدود 900 فایل اکسل رو دارم که باید اطلاعات خاصی از اونها رو در جدولی وارد کنم آیا راهی هست که کار من آسونتر بشه ؟؟
و خروجی در یک فال وورد ثبت بشه به ترتیب شماره پرونده ثبت شده در هر کدوم از فایلهای اکسل




ردیف


شماره پرونده


گزینه بیمه شده


گزینه تائیدشده


سطح بیمه شده


سطح واقعی


درصد افت کمی


درصد خسارت

Mahmood_M
سه شنبه 05 شهریور 1392, 11:50 صبح
لطفا سئوالتون رو در بخش مناسب (http://barnamenevis.org/forumdisplay.php?78-%D8%A8%D8%A7%D9%86%DA%A9-%D9%87%D8%A7%DB%8C-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C-%D8%AF%D8%B1-Delphi) و در یک تاپیک جدا مطرح کنید