View Full Version : دريافت ديتاشيت ارسالي از sql
Mahsa Hatefi
شنبه 10 بهمن 1388, 21:38 عصر
سلام بر اساتيد گرام
از يه برنامه تحت وب دولتي وقتي خروجي اكسل (با فرمت 4 فكر كنم) مي گيرم و مي خوام توي جدول مربوطه ام دريافت كنم خطاي فرمت مي گيرد . اگر فايل اكسل مذكور را يكبار با خود اكسل باز كنم و ذخيره كنم ( چه با همون فرمت4 يا آخرين فرمت) مشكل برطرف مي شود و براحتي عمليات دريافت در جدول انجام مي پذيرد .
خوب من دو راه دارم :
1- يه راهي پيدا كنم كه قبل از دريافت فايل اكسل در جدول ، با كدنويسي عمليات باز كردن و ذخيره فايل مذكور در برنامه اكسل بصورت مخفي و دور از ديد كاربر انجام شود و سپس در جدول دريافت شود
2- از كاربر بخواهم قبل از دريافت ، فايل اكسل را يكبار در برنامه اكسل باز كرده ، ذخيره كند و سپس در دريافت را انجام دهد .
و راه سوم و يا .......
اينكه شما پيشنهاد دهيد كه چه كنم .
اگر شما نيز اين مشكل را داشته ايد لطفا بفرماييد چگونه آن را حل كرديد .
بسيار سپاسگزارم
amirzazadeh
یک شنبه 11 بهمن 1388, 08:54 صبح
سلام بر اساتید گرام
از یه برنامه تحت وب دولتی وقتی خروجی اکسل (با فرمت 4 فکر کنم) می گیرم و می خوام توی جدول مربوطه ام دریافت کنم خطای فرمت می گیرد . اگر فایل اکسل مذکور را یکبار با خود اکسل باز کنم و ذخیره کنم ( چه با همون فرمت4 یا آخرین فرمت) مشکل برطرف می شود و براحتی عملیات دریافت در جدول انجام می پذیرد .
خوب من دو راه دارم :
1- یه راهی پیدا کنم که قبل از دریافت فایل اکسل در جدول ، با کدنویسی عملیات باز کردن و ذخیره فایل مذکور در برنامه اکسل بصورت مخفی و دور از دید کاربر انجام شود و سپس در جدول دریافت شود
2- از کاربر بخواهم قبل از دریافت ، فایل اکسل را یکبار در برنامه اکسل باز کرده ، ذخیره کند و سپس در دریافت را انجام دهد .
و راه سوم و یا .......
اینکه شما پیشنهاد دهید که چه کنم .
اگر شما نیز این مشکل را داشته اید لطفا بفرمایید چگونه آن را حل کردید .
بسیار سپاسگزارم
سلام
پيشنهاد مي كنم فايل مربوطه رو مستقيما از sql به صورت جدول به اكسس انتقال بديد.
Mahsa Hatefi
یک شنبه 11 بهمن 1388, 18:39 عصر
استاد بزرگوار
برنامه دولتي مذكور به جداول دسترسي نمي ده و فقط گزارشي رو ميتونيم خروجي به اكسل بگيريم . براي همين دست ما نيست كه هرجور خواستيم خروجي بگيريم .
nabeel
یک شنبه 11 بهمن 1388, 20:12 عصر
سلام Mahsa Hatefi
با توجه به اینکه به نظر میاد شما بدون کمک هم بتونید مشکل رو حل کنید نکاتی چند رو عرض میکنم
در این زمینه متوسل به یک حدس میشم که احتمال صحتش خیلی زیاده ( مگر اینکه امروز روز شانس نباشه !! )
فایل شما در واقع فاقد فرمت Excel هستش , به احتمال فوق العاده زیاد , فرمت مورد نظر CSV و یا همون Comma Separated Value File Format هستش , این فرمت یک فرمت استاندارده که توسط بسیاری Web Application ها پشتیبانی میشه و قاعدتاً جزو خروجیهای استاندارد و عمومی این طیف هستش
فرمت CSV توسط فایل Excel قابل باز شدن هستش و همین امر این اشتباه رو در ذهن شما تداعی میکنه که این فایل مربوطه به Excel هستش ولی آیکون اون اندکی از آیکون استاندارد Excel متفاوته
تنها راه حل ممکن برنامه نویسه که اون هم در صورتی که فرمت فایل خروجی به هم ریخته بوده باشه , یا برقراری ارتباط غیر ممکن و یا خیلی سخت میشه
قاعدتاً از طریق ADO باید بتونید اطلاعات رو وارد محیط اکسس کنید
در زمینه پاسخ بیشتر , اون رو به خودتون محول میکنم در صورتی که مشکلی داشتید اطلاع بدید تا جهت رفع اشکال در خدمت شما باشم
امیدوارم این راهنمایی در جهت عدم ادامه مسیر اشتباه به کارتون بیاد .
موفق باشید
Mahsa Hatefi
دوشنبه 12 بهمن 1388, 09:59 صبح
استاد ارجمند جناب پیروزمهر عزیز
لازم است خدمتتان عارض شوم که خروجی مذکور csv نیست و اکسل است اما این که فرمت چرا مشکل پیدا می کند فکر کنم بدانم عیب از کجا ناشی می شود :
زمانی که گزارشی را به فرمت اکسل می فرستیم رکورد اول نام گزارش قرار می گیرد و سلولها را بصورت merge شده نمایش می دهد
رکورد دوم عنوان فیلدها و بعد از آن خود رکوردها به نمایش در می آید .
خوب حالا اگر برای گزارش نامی مشخص نکنید مشکلی هم پیش نمی آید اگرچه باز هم رکورد اول که محل نام گزارش است خالی و به صورت merge شده است .
اما ما نیاز داریم که گزارش نام داشته باشد.
باز پیشنهادهایم را بازگو می کنم :
راه حل اول :
با کد نویسی فایل خروجی را بصورت مخفی در اکسل باز و ذخیره کنیم و سپس عملیات دریافت انجام شود .
راه حل دوم :
با دستوراتی که من بلد نیستم و نمی دانم چطوری ، رکورد اول (که نام گزارش است) از فایل اکسل خروجی حذف گردد و سپس عملیات دریافت انجام شود.
راه حل سوم :
از كاربران بخواهيم فايل خروجي را يكبار باز و ذخيره كنند و يا ركورد اول ( نام گزارش ) را حذف و ذخيره و سپس در برنامه ما دريافت كنند
راه حل چهارم:
پیشنهاد بهتر شما
از راهنمایی و راهکارهای شما همیشه سود برده ام و خود را همیشه مدیون شما می دانم
nabeel
دوشنبه 12 بهمن 1388, 12:26 عصر
سلام
راه حل چهارم رو اعمال كنيد و اون هم اينكه نمونه فايل خروجي رو بدون هيچگونه تغييري ارسال كنيد
تصور نميكيند حالتها تا حدودي متناقض هستند :
ضمن اينكه بنده هنوز متوجه نشدم كه ، مشكل به تنهايي با ذخيره سازي حل ميشه ( راه حل درخواستي يك ) و يا اينكه بايد رديف اول حذف بشه و در اون صورت حل ميشه ( راه حل سه ) ....
تنها راه جهت شفاف سازي سئوال ، ارسال نمونه فايله وگرنه حل مساله ممكنه به درازاي بي دليل كشيده بشه
موفق باشيد
Mahsa Hatefi
دوشنبه 12 بهمن 1388, 12:35 عصر
استاد ارجمند
اطلاعات چون محرمانه است سعي مي كنم در اسرع وقت گزارشي كه اطلاعات آن محرمانه نباشد را خروجي بگيرم و بدون هيچ تغييري برايتان ارسال كنم .
از كمكتان بسيار سپاسگزارم
Mahsa Hatefi
دوشنبه 12 بهمن 1388, 18:46 عصر
استاد بزرگوار جناب پيروزمهر عزيز
فايل اكسل ضميمه را بدون اينكه بازكنيد يا دستكاري كنيد در اكسس ايمپورت بفرماييد . با خطايي كه عرض كردم مواجه خواهيد شد . اما اگر فايل اكسل را در اكسل بازكرده و ذخيره كنيد اون خطا ديگر رخ نمي دهد .
منتظر نظرتان هستم .
با تشكر فراوان - هاتفي
nabeel
سه شنبه 13 بهمن 1388, 07:50 صبح
سلام
فایل اکسل ضمیمه را بدون اینکه بازکنید یا دستکاری کنید در اکسس ایمپورت بفرمایید
باز كه بايد كرد تا ديد توش چيه !
فايل اكسل رو طبق تنظيمات موجود در داخل درايو C قرار بديد و تابع ImportData رو اجرا كنيد
Mahsa Hatefi
سه شنبه 13 بهمن 1388, 08:34 صبح
جناب پيروزمهر
بسيار تشكر مي كنم . تست كردم جواب داد . لطف شما هميشه شامل حال ما بوده است . باز هم ممنون
Mahsa Hatefi
سه شنبه 20 بهمن 1388, 22:54 عصر
استاد بزرگوار جناب پیروزمهر
شرمنده ام با مشکل دیگه برخوردم :
جدولی که از اس کیو ال دریافت می کنم با حرف "ک" مشکل دارم . تصمیم گرفتم بلافاصله پس از دریافت جدول حروف "ک" را جایگزین کنم . برای همین رکوردستی بازکردم و سعی کردم حرف ک را در رشته فیلدهای مربوطه جایگزین کنم . اما جواب نمی ده . البته من ار دستور replace استفاده کردم .
ممنون می شوم اگر مثل همیشه راه حل مناسب را بفرمایید .
Replace Rs.Fields("Lname"), "˜", "ß"
نمي دانم چرا حروف "ك" كيبرد و همچنين "ك" اي كه از اس كيو ال دريافت مي شود موقع كپي شدن اينجا نمايش داده نمي شود براي همين فايل رو براتون ارسال مي كنم
nabeel
سه شنبه 20 بهمن 1388, 23:15 عصر
سلام
لطفاً نمونه خودتون رو قرار بدید تا روی اون بررسی بشه ( باید یه نمونه مشکل دار داشته باشیم تا روش بررسی کنیم یا نه !؟ )
البته اینکه بتونم جواب شما رو بدم , نمیدونم , شاید با توجه به نوع مشکل نتونم
اگه شما اطلاعاتتون از روی همون دیتا بیس مشکل داره که حل اون سخت میشه , اگه یه کاربر به دیتابیس ک رو به صورت عربی ( حرف ک عربی روی اون یه حمزه کوچیک داره ) و دیگری اون رو فارسی وارد کنه که مشکل پایه ایه
خدانگهدار
Mahsa Hatefi
چهارشنبه 21 بهمن 1388, 01:20 صبح
استاد بزرگوار
نمونه اي كه قرار دادم اين مشكل را دارد حرق "ك" در انتهاي سورت قرار مي گيرد و زماني كه از داخل منوي edit گزينه replace استفاده كرده و "ك" انتخاب شده از جدول را با "ك" صفحه كليد نورمال جايگزين كنيد ديگر "ك" در آخر سورت قرار نمي گيرد و مهمتر از همه اينكه در جستجو ديگر با حرف "ك" مشكلي نيست اما قبل از جايگزيني وقتي "ك" را سرچ مي كنيد اصلا ركوردي پيدا نمي كند .
anbaran
چهارشنبه 21 بهمن 1388, 07:48 صبح
با سلام
ضمن تشکر از استاد بزرگوار جناب پیروزمهر عزیز
یقین دارم استاد پیروزمهر قطعا برای رفع این مشکل ارائه طریق می نمود.
با عذر خواهی از ایشان ، چون بنده قبلا با چنین مشکلی مواجه بودم وآن را با تغییر کد اسکی حرف رفع نمودم. نمونه را به روش مذکور اصلاح نمودم
Mahsa Hatefi
چهارشنبه 21 بهمن 1388, 16:25 عصر
بابت مورد اول (ذكر نام) بايد از اين كه باعث بروز تنش شدم عذرخواهي كنم
بابت موارد اشكال هم از اينكه تذكر داديد ممنونم .
انشاءالله حلال بفرماييد
از دوست بزرگوار انباران هم بابت توجه شون تشكر مي كنم . مورد را بررسي مي كنم ، در صورت مشكل حتما خوام پرسيد .
Mahsa Hatefi
چهارشنبه 21 بهمن 1388, 20:17 عصر
تشكر فراوان از دوستان بزرگوار
nabeel
دوشنبه 26 بهمن 1388, 09:24 صبح
سر کار خانم هاتفی
ضمن سلام
متاسفانه پست ارسالی بنده ( مابین پست 14 و 15 ) به دلیل تذر به جای یکی از دوستان حذف شد , امیدوارم توضیحات اون به خاطرتون مونده باشه
ولیکن در خصوص سئوال :
تابعی با عنوان enc در بخش ماژولها وجود داره , در داخل یک Update Query این تابع رو فراخوانی کنید تا اطلاعات رو به روز رسانی کنه و تغییرات رو اعمال کنه
فرخوانی تابع به همون صورتی انجام میشه که خود توابع استاندارد رو فراخوانی میکنید
موفق باشید
Mahsa Hatefi
سه شنبه 27 بهمن 1388, 08:06 صبح
ممنون از راهنمايي تون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.