أخواني الكرام/ .. السلام عليكم ورحمة الله وبركاته
الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد وعلى آله وصحبه وسلم
أخواني .. راودتني منذ فترة فكرة ربط الأكسس بحقيبة الأوفيس حينها كنت أقرأ بعض الدروس العربية منها والأجنبية .. وسألت نفسي
كم منا من يحتاج بين الفينة والأخرى أن يرسل بيانات قاعدته أو بعضها إلى واحدة من (شقيقات) الأكسس في (عائلة الأوفيس المحترمة)
[حدثت نفسي] ...
ربما تريد أن ترسل بعض البيانات المخزنة بجداول الأكسس إلى الشقيق التؤم (Excel) وطبعا تريد أن تحكّم التنسيقات والأنماط من خلال (ِAccess) على (Excel)
أو ربما رغبت أن تفتح الشقيقة الصغرى الدلوعة (Word) وهي كما تعلم شديدة الأحترام والتبجيل لأخيها الأكبر أكسس وذلك (لكرمه وسخائه) بالبيانات ((طالما يخرجها من عزلتها كـ{منسق كلمات} "كما الكثير منا يعتقد" إلى ديناميكا وحيوية وتدفق بالبيانات) بديلاً عن [دمج المراسلات]..))
أو دعتك الحاجة أن تهرع إلى (العروض التقديمية - PowerPoint) ويكون التحكم بعدد الشرائح وعناوينها من خلال الكود الذي تزرعه في بيئة (ِAccess)
أو ضَرَبتْ في رأسك أن تتحدى المصممين Designers في أن تنشيئ رسومات الأشكال وأرسال النصوص الكتابية من خلال كود تزرعه في بيئة (ِAccess) يتحكم بـ (Publisher)
أخواني وأخواتي/
أدعوكم جميعا للمشاركة في قص شريط الأفتتاح أيذاناً لبداية الدرس (على بركة الله)
جميعا دعونا (نصلي على النبي الشفيع محمد)
في البداية نشاهد (نموذج الإفتتاح) B)
كما هو واضح من الصور عبارة عن أزرار أمر تنفّذ (الإتجاه الذي تريد - الوورد - الأكسل - بوربوينت - بوبليشر)
لا زلت أصدقائي أذكر لكم الأمور في تبسيطها لكي أسهل عليكم الدرس وحتى نتعاون جميعا في التطوير والإبتكار وحتى لا تملوا أو تسئموا مني. :tantrum:
الآن: ....
(بلل قلبك بالإستغفار)
(زر الأمر : Excel )
عرف عن الكائن (objApp) الذي سينوب في أمر تنفيذ (فتح التطبيق - Excel)
Dim objApp As Object
أكمل خطواتك في الكود
إذا كان برنامج التطبيق أكسل مفتوح مسبقاً أربط البيانات إلى صفحة جديدة داخل المصنف
Set objApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
On Error Resume Next
أما إذا لم يكن برنامج التطبيق أكسل مفتوح (أفتح البرنامج) ثم أربط البيانات إلى صفحة جديدة داخل المصنف
On Error GoTo ErrHandler
Set objApp = CreateObject("Excel.Application")
With objApp
.Visible = True
.Workbooks.Add
End With
Err.Clear
لاحظ الفرق بين العبارتين: (GetObject) و (CreateObject)
الأولى (أستئناف) عمل أكسل وأضافة صفحة جديدة للمصنف .. والأخيرة (الحصول على أمر تشغيل تطبيق أكسل)
في حال المثال خاطئ، أذهب لتفعيل معالج الخطأ
On Error GoTo ErrHandler
End If
Else
عند فتح تطبيق أكسل وفتح شيت جديد ، أضف يعض النصوص مع تنسيقات مبسطة (حرر التاريخ الهجري + الأفرنجي) من كلندر VB
.Worksheets.Add
.Worksheets(1).Range("A1") = "مع تحيات: الفريق العربي للبرمجة..ArabTeam.. (منتدى.. قواعد بيانات Microsoft Access)"
.Worksheets(1).Range("A2") = "التاريخ الهجري:"
Calendar = vbCalHijri
.Worksheets(1).Range("B2") = Format(Now(), "yyyy/mm/dd" & "هـ")
.Worksheets(1).Range("A3") = "التاريخ الأفرنجي:"
Calendar = vbCalGreg
.Worksheets(1).Range("B3") = Format(Now(), "yyyy/mm/dd" & "م")
.Worksheets(1).Columns("B:B").EntireColumn.AutoFit
End With
With objApp.ActiveWorkbook
الافراج عن الكائن ،، واستئناف معالجة الخطأ
Set objApp = Nothing
On Error GoTo 0
ErrHandler:
:clapping: :haha: :haha:
مبروك أنتهت أعمال زر استدعاء Excel
:ohmy: أوعى أنك تتصل أو تشغل نفسك فاصل ونواصل
___________________________________________________________________________
ثانياً: زر استدعاء (Word)
بعد الإعلان عن المتغير الذي سيأخذ هذه المرة (الإنابة في أمر فتح Word
وهذا هو كود التعريف ... والذهاب لمعالج الخطأ إن وجد:
On Error Resume Next
Set objApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ErrHandler
Dim objApp As Object
ضع قيمة الكائن البرمجي مساويا لأمر فتح تطبيق Word
Set objApp = CreateObject("Powerpoint.Application")عند تنفيذ التطبيق أجعله مرئيا ثم أضف عرض المصنف وورد Word
.Visible = True
.Presentations.Add
End With
With objApp
ضع الجملة البرمجية لمعالجة أخطاء التنفيذ:
On Error GoTo ErrHandler
عند أنشاء وثيقة في المصنف حرر الأمور التالية
1- أنشأ مقطع (Paragraphs) يحتوي نص (بأمكانك أستبدال النص بأي قيمة مستدعاة من جدول أو أستعلام أو غيره)
2- أنشأ مقطع (Paragraphs) يحتوي تاريخ (مثلاً - التاريخ الهجري)
3- أنشأ مقطع (Paragraphs) يحتوي معادلة رياضية (مثال) 2*3=6 ونحوها
عزيزي .. لاحظ كم هو مدهش (تدفق البيانات من أكسس إلى وورد - كأنه نهر رقراق لا ينضب الوورد من سقيا الأكسل)
لآحظ لو أن لديك جدول من البيانات وأدخلت عليه هذه العمليات الحسابية وعملت Loop في أنشاء المقاطع فستحصل على كم هائل من البيانات
تسقي الشقيقة الضماء Word من سلسبيل Access
.Paragraphs(1).Range.InsertParagraphBefore
.Paragraphs(1).Range.Text = "مع تحيات الفريق العربي للبرمجة..ArabTeam.. (منتدى قواعد بيانات .. Microsoft Access)" & vbNewLine
.Paragraphs(2).Range.InsertParagraphBefore
Calendar = vbCalHijri
.Paragraphs(2).Range.Text = "التاريخ الهجري : " & Format(Now(), "dd/mm/yyyy" & "هـ") & vbNewLine
.Paragraphs(3).Range.InsertParagraphBefore
Calendar = vbCalGreg
.Paragraphs(3).Range.Text = "التاريخ الميلادي" & Format(Now(), "dd/mm/yyyy" & "م") & vbNewLine
Dim a As Integer
Dim b As Integer
a = 4
b = 3
.Paragraphs(4).Range.InsertParagraphBefore
.Paragraphs(4).Range.Text = "(ضرب) هل تعلم أن: " & (a) & "×" & (b) & "= " & a * b & vbNewLine
.Paragraphs(5).Range.InsertParagraphBefore
.Paragraphs(5).Range.Text = "(جمع)وهل تعلم أن: " & (a) & "+" & (b) & "= " & a + b & vbNewLine
.Paragraphs(6).Range.InsertParagraphBefore
.Paragraphs(6).Range.Text = "(طرح)وهل تعلم أن : " & (a) & "-" & (b) & "= " & a - b & vbNewLine
.Paragraphs(7).Range.InsertParagraphBefore
.Paragraphs(7).Range.Text = "(قسمة)وهل تعلن أن: " & (a) & "÷" & (b) & "= " & a / b & " وللتقريب لخانتين: " & Round((a / b), 2) & vbNewLine
.Paragraphs(8).Range.InsertParagraphBefore
.Paragraphs(8).Range.Text = "(أسس)وهل تعلن أن: " & (a) & "^" & (b) & "= " & a ^ b & vbNewLine
End With
With objApp.Documents(1)
اللهم يا من لا يرد سائله ولا يـُخيِّب للعبد رجاءه إنا قد بسطنا إليك أكف الضراعة متوسلين إليك بأسمائك الحسنى ما علمنا منها وما لم نعلم
أن تغفر لنا هذه الساعة خطايانا وأن تشفي مرضانا وتغفر لموتانا وأن تحببنا إلى عبادك وأن ترضى عنا إلى يوم الدين
:stop: حاسب أنك تسيبني وأنا لساتي في نصف الدرس :haha:
___________________________________________________________________________
ثالثاً: زر استدعاء PowerPoint
منننننننننننننننننننن زماااااااااااان ولم أسمع منك الصلاة على الحبيب
كمان زدني صلاة عليه وحدة
وكمان وحدة
اللي يحب النبي يصلي عليه
(فداك أبي وأمي يارسول الله ... طبت حيا وميتا)
نكمل....:
هو رن الجرس ولا أيه ،،، أنا لساتى أحضر أوراقي
باقي قلم السبورة فينو والمساحة (لكن بدون عصايا) أهو داه المهم
لأنكم شاطرين وكمان مذاكرين (واللهِ) ما حضرب أحد فيكم
لأني أحب أكون معلم (كدع) بتحبوني ولا أيه؟ ... ما أسمع أرفع صوتك
أنت اللي جالس آخر طاولة ولابس نظارة شمسية .. مغطي عيونك ليه :cash:
مكسوف من المشرفين بتوعنا (يفصلوك من الخدمة)
بس لعب ونرجع على الدرس ...
أعلن عن النتغيبر الذي سيفتح تطبيق PowerPoint
On Error Resume Next
Set objApp = GetObject(, "Powerpoint.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ErrHandler
Set objApp = CreateObject("Powerpoint.Application")
Dim objApp As Object
ثم اجعله في وضع العرض المرئي:
.Visible = True
.Presentations.Add
End With
With objApp
مع فتح التطبيق (بعد تصفية رسائل الخطأ).
قم بأنشاء (شريحتين عرض) وأدخل النصوص فيها
(لم أجرب البور بوينت كثيرا) لذلك لم أجيد التنسيقات وتحريك الشرائح والضبط الزمني
آمل من أساتذتي الكبار المشاركة لأضفاء سّمة التحريك والتزامن عند عرض الشرائح (مشكورين)
.ActiveWindow.View.GotoSlide _
Index:=objApp.ActivePresentation.Slides.Add(Index:=1, _
Layout:=1).SlideIndex
.ActivePresentation.Slides(1).Shapes.Title.TextFrame.TextRange.Text _
= "مع تحيات الفريق العربي للبرمجة..ArabTeam.. منتدى .. قواعد بيانات Microsoft Access)"
.ActiveWindow.View.GotoSlide _
Index:=objApp.ActivePresentation.Slides.Add(Index:=2, _
Layout:=2).SlideIndex
.ActivePresentation.Slides(2).Shapes.Title.TextFrame.TextRange.Text _
= "مع تحيات أبومحمد"
End With
With objApp
:resentful: أنا حاسس أن بعضكم :unsure: وأن بعضكم :cry: والأخرين :unsure:
استغفر الله العظيم فراراً من سخطِ الله إلى عفوِ الله ومن التفريط والإفراط ، ومن التخليط والتخبيط ، ومن مقارفة الذنوب ، ومن رؤية النفس بعين التعظيم
___________________________________________________________________________
رابعاً: زر استدعاء Publisher
بعد الإعلان عن المتغير الذي سينوب في تنفيذ أمر فتح التبيق Publisher
Set objApp = GetObject(, "Publisher.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ErrHandler
Set objApp = CreateObject("Publisher.Application")
With objApp
.ActiveWindow.Visible = True
End With
On Error Resume Next
أفتح صفحة جديدة في البوبليشر
With objApp.ActiveDocument.Pages(1)
أبدأ في رسم الكل (نجمة) حسب الأبعاد المعطاة .. ثم أدخل النص داخل الشكل.
Set oShp = .Shapes.AddShape(Type:=93, _
Left:=144, Top:=144, Width:=144, Height:=288)
With oShp
.TextFrame.TextRange.Text = "الفريق العربي للبرمجة .ArabTeam"
End With
End With
With objApp.ActiveDocument.Pages(1)
أنتهى
أعزائي وأحبائي وأخواني وأخواتي
أسف على الإطالة والإسهاب في الشرح
ربما كنت ضيفاً ثقيلاً عليكم وأدوشتكم معي كثيرا
لكني يشهد الله أحببت أن أضيف المرح والفرح والتعلم في موضوع أحتسب الأجر عليه من الله وحده
وأني بصراحة شديدة (دون التواضع المتكلف) لا زلت طلب مبتدأ في علم البرمجة أرجو منكم التوجيه والإعذار والدعاء الخالص
لي ولوالدي (رَبِّي ارْحَمْهُمَا كَمَا رَبَّيَانِي صَغِيرًا)
وأستميحكم العذر في الإخطاء الإملائية والنحوية واللغوية فضلا عن الأخطاء الفنية في البرمجة
محبكم جميعاً:
أبومحمد



