ورود

View Full Version : سوال: ارسال گزارش اکسس به پاورپوینت به صورت مستقیم



wolfstander
شنبه 11 آبان 1392, 09:27 صبح
با سلام
من یک برنامه ای دیدم که به زبان دلفی + دات نت نوشته شده بود (طبقه گفته برنامه نویس)
این برنامه گزارش نهایی رو به فرمت پاورپوینت در میاورد به چه خوشگلی و زیبایی
خروجی اکسلش هم کامل و نهایی بود
فرمت بندی شده
کسی میدونه که میشه این کار رو تو اکسس هم انجام داد یا نه؟
با تشکر فراوان

bita_ziba77
پنج شنبه 30 آبان 1392, 13:03 عصر
با سلام
نمونه كدي جهت خروجي نمودار اكسس به PowerPoint


Sub PowerPointX()
Dim ppObj As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
' Open up an instance of Powerpoint.
Set ppObj = New PowerPoint.Application
Set ppPres = ppObj.Presentations.Add
' Setup a slide
With ppPres
With .Slides.Add(1, ppLayoutTitleOnly) 'ppLayoutTitleOnly
.Shapes(1).TextFrame.TextRange.Text = "A Chart"
'From Access
DoCmd.OpenForm "Form2"
Forms!Form2.Graph0.SetFocus
DoCmd.RunCommand acCmdCopy
'To PP
.Shapes.Paste
End With
End With
ppObj.Visible = True
' Run the show. '
ppPres.SlideShowSettings.Run
End Sub

wolfstander
شنبه 02 آذر 1392, 13:11 عصر
با تشکر از شما دوست عزیز
در این کدها ، باید در فرم نموداری باشد که سیستم آن را بخواند و کپی کند.
موقعی که اجرا کردم، پیغام داد :
user-defined type not defiend
البته موقع لود فرم هم زمانی که اولش میخواد فرم اصلی لود بده این ارور رو میده

This error commonly occurs when code is incompatible with the version or architecture of this application (for example, code in a document targets 32-bit Microsoft Office applications but it is attempting to run on 64-bit Office).


من دارم از اکسس 2010 استفاده میکنم
آیا این میتونه دلیلش باشه؟
با تشکر فراوان

Abbas Amiri
شنبه 02 آذر 1392, 22:24 عصر
با تشکر از شما دوست عزیز
در این کدها ، باید در فرم نموداری باشد که سیستم آن را بخواند و کپی کند.
موقعی که اجرا کردم، پیغام داد :
user-defined type not defiend
البته موقع لود فرم هم زمانی که اولش میخواد فرم اصلی لود بده این ارور رو میده

This error commonly occurs when code is incompatible with the version or architecture of this application (for example, code in a document targets 32-bit Microsoft Office applications but it is attempting to run on 64-bit Office).


من دارم از اکسس 2010 استفاده میکنم
آیا این میتونه دلیلش باشه؟
با تشکر فراوان

اول باید رفرنس PowerPoint رو اضافه کنید

در مورد ارسال گزارش را حل میانبر وجود ندارد . برای این مورد بایستی رکوردسورس گزارش رو به یک Recorset منتسب کنید و فیلدها را یکی یکی به هر اسلاید اضافه کنید . کار سختی است ولی درصورت وقت گذاشتن قابل انجام است .

wolfstander
سه شنبه 05 آذر 1392, 10:33 صبح
با تشکر از شما دوست خوب و عزیز آقای امیری
خروجی پاورپوینت رو درست تهیه میکنه و نشون میده
حالا سوال دیگه ای برام پیش میاد
اونهم اینکه چون نمیتونم از رکوردسورس استفاده کنم به دلایلی که خودشما فرمودید که زمانبر هست و دیگه اینکه کدنویسی اش رو بنده بلد نیستم
برای همین فکر کردم که تو فرم ، بیام و مثلا ً 5 نمودار رو اضافه کنم و کد رو به صورتی بنویسم که بتونه یک فایل پاورپوینت درست کنه و این 5 نمودار رو به ترتیب توش اضافه کنه
متاسفانه هرچه تلاش کردم، به دلیل ضعف در کد نویسی نتونستم
اگه زحمت نباشه، این کار برای دو نموداری که در فایل هست، اصلاح بشه
form2 دکمه ارسال رو داره
با تشکر فراوان

Abbas Amiri
سه شنبه 05 آذر 1392, 19:33 عصر
با تشکر از شما دوست خوب و عزیز آقای امیری
خروجی پاورپوینت رو درست تهیه میکنه و نشون میده
حالا سوال دیگه ای برام پیش میاد
اونهم اینکه چون نمیتونم از رکوردسورس استفاده کنم به دلایلی که خودشما فرمودید که زمانبر هست و دیگه اینکه کدنویسی اش رو بنده بلد نیستم
برای همین فکر کردم که تو فرم ، بیام و مثلا ً 5 نمودار رو اضافه کنم و کد رو به صورتی بنویسم که بتونه یک فایل پاورپوینت درست کنه و این 5 نمودار رو به ترتیب توش اضافه کنه
متاسفانه هرچه تلاش کردم، به دلیل ضعف در کد نویسی نتونستم
اگه زحمت نباشه، این کار برای دو نموداری که در فایل هست، اصلاح بشه
form2 دکمه ارسال رو داره
با تشکر فراوان

کدهای زیر چارتها را در دو اسلاید نشان می دهد

Sub PowerPointX()
Dim ppObj As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
' Open up an instance of Powerpoint.
Set ppObj = New PowerPoint.Application
Set ppPres = ppObj.Presentations.Add
' Setup a slide
With ppPres
With .Slides.Add(1, ppLayoutTitleOnly) 'ppLayoutTitleOnly
.Shapes(1).TextFrame.TextRange.Text = "ãíÒÇä ÍÞæÞ ÏÑíÇÝÊí"
'From Access
DoCmd.OpenForm "Form1"
Forms!Form1.Graph0.SetFocus
DoCmd.RunCommand acCmdCopy
'To PP
.Shapes.Paste
End With
With .Slides.Add(2, ppLayoutTitleOnly) 'ppLayoutTitleOnly
.Shapes(1).TextFrame.TextRange.Text = "ãíÒÇä ÍÞæÞ ÏÑíÇÝÊí"
'From Access
.Shapes(1).TextFrame.TextRange.Text = "t2"
Forms!Form1.Graph2.SetFocus
.Shapes.Paste
End With

End With
ppObj.Visible = True
' Run the show. '
ppPres.SlideShowSettings.Run
End Sub

wolfstander
چهارشنبه 06 آذر 1392, 07:50 صبح
با تشکر بسیار فراوان
با کمی اصلاح درست شد
کدی که شما زحمت کشیدید، یه تیکه کوچولش باعث میشد که توی هر دو تا اسلاید، فقط همون نمودار اولیه نمایش داده بشه
که الحمدالله اون هم رفع شد
نمونه اصلاحی رو میذارم که اگه کسی خواست، بتونه استفاده کنه
بسیار عالی و کار درست
:لبخند:

wolfstander
چهارشنبه 20 آذر 1392, 16:40 عصر
حالا یک سوال دیگه در این زمینه به وجود اومده
اون هم این تیکه از کده:
.Shapes(1).TextFrame.TextRange.Text = "عنوان شیت"
مشکلش هم اینه که فونت arial رو استفاده میکنه
میشه کاری کرد که از فونت دیگه ای استفاده کنه؟
مثلا btitr
با تشکر فراوان

Abbas Amiri
چهارشنبه 20 آذر 1392, 18:59 عصر
حالا یک سوال دیگه در این زمینه به وجود اومده
اون هم این تیکه از کده:
.Shapes(1).TextFrame.TextRange.Text = "عنوان شیت"
مشکلش هم اینه که فونت arial رو استفاده میکنه
میشه کاری کرد که از فونت دیگه ای استفاده کنه؟
مثلا btitr
با تشکر فراوان

با روش زیر تنظیمات فونت را می توانید انجام دهید

With .Slides.Add(2, ppLayoutTitleOnly) 'ppLayoutTitleOnly
With .Shapes(1).TextFrame.TextRange.Font
.Size = 36
.Name = "Times New Roman"
.Bold = True
.Color.RGB = RGB(150, 220, 200)
End With
.Shapes(1).TextFrame.TextRange.Text = "ãíÒÇä ÍÞæÞ ÏÑíÇÝÊí"
'From Access
.Shapes(1).TextFrame.TextRange.Text = "t2"
Forms!Form1.Graph2.SetFocus
.Shapes.Paste
End With

wolfstander
شنبه 23 آذر 1392, 09:26 صبح
با تشکر فراوان
اندازه فونت و رنگ فونت تغییر میکنه، ولی نمیدونم چرانوع فونت تغییر نمیکنه؟
یک سوال دیگه هم دارم
من الان به ازای هر فرم در نمودارم، میام و یک بار کد رو تکرار میکنم
آیا راهی داره که مثلا ً برای 5 نمودار، از یک حلقه استفاده بشه؟
با تشکر بسیار

Abbas Amiri
شنبه 23 آذر 1392, 18:22 عصر
با تشکر فراوان
اندازه فونت و رنگ فونت تغییر میکنه، ولی نمیدونم چرانوع فونت تغییر نمیکنه؟
یک سوال دیگه هم دارم
من الان به ازای هر فرم در نمودارم، میام و یک بار کد رو تکرار میکنم
آیا راهی داره که مثلا ً برای 5 نمودار، از یک حلقه استفاده بشه؟
با تشکر بسیار

برای جلوگیری از اتلاف وقت نمونه فرم و جدول مربوطه را قرار دهید

wolfstander
یک شنبه 24 آذر 1392, 09:23 صبح
با تشکر
نمونه فایل رو گذاشتم

سوالاتی که دارم اینه:
1- من اینجا 4 تا نمودار دارم
آیا میشه کاری کرد که در یک آرایه اسم 4 نمودار رو بذارم، و یک حلقه تعریف کنم که اسامی رو دونه به دونه بذاره و خروجی رو نمایش بده؟
2- فونت عنوان اسلاید تغییر داده نمیشه
3-آخرین مورد هم اینکه وقتی بر اساس هر استان، گزارش میگیرم، خروجی همون خروجی اولین گزارش باقی میمونه
یعنی وقتی تهران رو میگیرم، بعدش میام سمنان رو میگیرم، خروجی هنوز روی تهرانه
تا وقتی که فرم یک بار باز و بسته نشه، (فرمی که دکمه خروجی داره) این اشکال رفع نمیشه
با تشکر فراوان

Abbas Amiri
یک شنبه 24 آذر 1392, 19:13 عصر
با تشکر
نمونه فایل رو گذاشتم

سوالاتی که دارم اینه:
1- من اینجا 4 تا نمودار دارم
آیا میشه کاری کرد که در یک آرایه اسم 4 نمودار رو بذارم، و یک حلقه تعریف کنم که اسامی رو دونه به دونه بذاره و خروجی رو نمایش بده؟
2- فونت عنوان اسلاید تغییر داده نمیشه
3-آخرین مورد هم اینکه وقتی بر اساس هر استان، گزارش میگیرم، خروجی همون خروجی اولین گزارش باقی میمونه
یعنی وقتی تهران رو میگیرم، بعدش میام سمنان رو میگیرم، خروجی هنوز روی تهرانه
تا وقتی که فرم یک بار باز و بسته نشه، (فرمی که دکمه خروجی داره) این اشکال رفع نمیشه
با تشکر فراوان

در مورد نام فونت من هم نتونستم اما برای نام یک یا چند استان فایل ضمیمه راه حل خوبی است:

wolfstander
دوشنبه 25 آذر 1392, 08:23 صبح
با تشکر فراوان و بسیار از جنابعالی
در زمینه استانها ، مشکل حل شده
البته در مورد اینکه یک نمودار برای همه استانها تهیه بشه
حالا فرض کنیم که بخوایم دو نمودار رو برای استانها رسم کنیم
یعنی یک بار فروش ماه به ماه هر استان نمایش داده بشه، بعد اسلاید دوم گروه محصولی هر استان نمایش داده بشه
اونوقت چه باید کرد؟
آیا باید کدهایی که هر کدوم از نمودار ها رو تبدیل به اسلاید میکنه رو تکرار کرد؟
یا میشه اسم نمودارها رو هم به صورت آرایه در آورد؟
مثلا ً اسم نمودارها رو توی یه تیبل بریزم
مشکل من اینجاست که برنامه اصلی 26 تا نمودار داره
بعد برای هر بخش، باید این نمودارها تهیه بشن
یه سری نمودار کل
یه سری نمودار استان به استان
یه سری نمودار شهر به شهر
و این مساله بسیار زمان بر هست با توجه به وجود تعداد زیادنمودارها و شهرها، کاری است بسیار زمانبر
آیا میتوان برای این مساله راه حلی پیدا نمود؟
با تشکر فراوان

Abbas Amiri
دوشنبه 25 آذر 1392, 17:59 عصر
در زمینه استانها ، مشکل حل شده
البته در مورد اینکه یک نمودار برای همه استانها تهیه بشه

ضمیمه قبلی مشکل داشت و فقط یک شهر را نمایش میداد . در همان جا اصلاح شد.

برای شهرها هم به همین منوال میتوانید عمل کنید . برای موارد خاص هم بصورت تک تک عمل کنید

wolfstander
سه شنبه 26 آذر 1392, 09:22 صبح
سلام مجدد خدمت آقای امیری و بقیه دوستان
تکنیک بسیار جالبی به کار برده بودید که باعث شد تو جاهای دیگه برنامه هم ازش استفاده کنم
تقریبا ً دو ساعت وقت گذاشتم تا این تکنیک رو برای چارت ها هم استفاده کنم ، ولی نشد
بعنوان مثال ،ایده ای که به ذهنم رسید ، اینه که چارت وزن فروش به تفکیک گروه کالا رو برای هر شهر بگیرم
یا مثلا د و تا چارت برای همه شهرها
یعنی کاربر بر اساس انتخاب، بتونه خروجی گزارشی رو که میخواد ببینه
:لبخند:
بسیار ایده جالبیه
اما نتونستم
به این دلیل که جدول تعریف کردم و توش اسم گراف ها رو آوردم
اما موقعی که میره و میخواد عمل setfocous رو انجام بده، همونجا ارور میده
آیا براش راه حلی میشه پیدا کرد
ارادتمند همه دوستان

wolfstander
چهارشنبه 24 اردیبهشت 1393, 09:07 صبح
با سلام خدمت همه دوستان
یک سوال دیگه هم دارم تو زمینه ارسال خروجی به پاورپوینت
من با استفاده ازراهنمایی دوستان، تونستم یادبگیرم که چطور نمودارها رو بفرستم به صورت مستقیم توی پاورپوینت
حالا یک سوال دیگه برام پیش اومده
و اون هم اینکه :
اگه بخوام یک جدول اطلاعاتی رو بفرستم چه باید بکنم؟
فرض کنیم که در فرم frm_data من بخوام این اطلاعات رو بفرستم توی پاورپوینت
آیا امکان پذیره؟
آیا در کل راهی داره این مساله ؟
یعنی بشینم یک فرم درست کنم که شامل جدول باشه، و اون جدول رو توش اطلاعات بریزم، و همون فرمت رو بفرستم برای پاور پوینت
ممنون میشم راهنمایی بفرمایید