الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل بالامكان محي كافة النماذج من قاعدتي

مغلقمُجاب
بدأه kafi في 29 يناير 2013 · 12 رد · 1,227 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

 
السلام عليكم ورحمة الله وبركاته
 
هل بالامكان حذف كافة النماذج الموجودة داخل قاعدة البيانات واستيراد نماذج اخرى من قواعد بيانات جانبية
 
سوف اوضح اكثر
 
الغاية من السؤال، ان نماذج برنامجي  مصممة على ستايل معين وهو الازرق.
 
خطر ببالي، ان امكن المستثمر من تغيير الستايل، لذلك قمت بمايلي
 
1- وضعت ذات قاعدة البيانات بستايل اسود واسميتها Black                                                               ( هذه القاعدة سوف تضم فقط نماذج بستايل اسود مستقبلاً، بدون جداول او شي اخر)
2- وضعت ذات القاعدة بستايل ازرق واسميتها Blue                                                                       ( هذه القاعدة سوف تضم فقط نماذج بستايل ازرق مستقبلاً، بدون جداول او شي اخر)
 
وسميت القاعدة الرئيسية باسم Main
 
تم وضع زرين على الشاشة الرئيسية للبرنامج، من اجل تمكين المستثمر من الانتقال من ستايل الى آخر
 
طبعا عند الضغط على زر ستايل اسود، فيجب ان يتم محي كافة النماذج من قاعدة البيانات الرئيسية Main واستيراد النماذج من قاعدة بيانات bllack
وطبعا نفس الكلام ينطبق على الستايل الازرق ولكن الاستيراد سوف يتم من قاعدة البيانات Blue
 
ارجو المساعدة في كتابة الكود المناسب لكلا الزرين لتحقيق الهدف المنشود
 
والف الف شكر

Q200.rar

post-32358-0-15498600-1359408806_thumb.j

post-32358-0-37101200-1359408811_thumb.j

post-32358-0-54469900-1359409177_thumb.j

تم تعديل هذه المشاركة بواسطة kafi في 29 يناير 2013 في 00:43

#2

شاهد المرفق قد يفيدك به طريقة فتح قاعده  على نفس المسار

وهناك مثال لتغير الشاشه لـ اللون الذي تحدده

ملاحظه الامثله من هذا المنتدى

محاوله.rar

«الحياة قد تتعثر ولكنها لا تتوقف، والأمل قد يختفي ولكن لا يموت ابدًا، والفرص قد تضيع ولكنها لا تنتهي، ومهما ضاقت الدنيا ففرج الله قريب»


عامل الناس بطبعك لا بطباعهم مهما كانو ومهما تعددت تصرفاتهم التي تجرحك وتؤلمك في بعض الاحيان ولا تابه بما يطالبونه منك لان بعضهم لايستحقون


#3

شكرا اخي Saremeem على اجابتك

 

بعد ان تم الاطلاع على الاجابة، اجدها غير ممكنة التطبيق على مثالي، فكما ترى معي انني بحاجة الى تغيير الثيم، الدي يعتمد على ستايلات الاكسس 2007

 

ارجو من الاخوة الكرام، ممن لديه الحل، التفضل به نظراً لما في هدا المثال من اهمية كبرى لهده المشكلة ، ويمكن تقمص الحل ... في تحسينات اخرى هي ببالي ( ...تصميم عدة قواعد على دقات مختلفة للشاشة، والاستيراد حسب دقة شاشة العميل)

 

 

والف شكر سلفا

#4

يعطيك العافية ومشكوور

فعلا جميل جدا

#5

أعتقد انك تحتاج إلى استراتيجية مختلفة قليلاً في مسألة الـ Themes ..

أنت لا تحتاج إلى قاعدة بيانات جديدة، أو إلى ملفات أخرى، أو محو النماذج. بل تحتاج إلى جدول يحتوي قيم خصائص النموذج Form Properties Table .

وفي حالة أن المستخدم قرر تغيير الاستايل، فإن البرنامج يقرأ القيم المطلوبة من الجدول باستخدام VBA ، ثم يعدل النموذج بناءً على هذه القيم.

أرفقت لك قاعدة بياناتك مع إضافة جدول جديداسمه Styles ، به بعض القيم المقترحة. تستطيع أن تزيد او تنقص عليها حسب رغبتك. كما أضفت إجراءً عاماً Public Sub Procedure داخل وحدة قياسية جديدة. يأخذ هذا الإجراء قيمتين "إسم الاستايل"، و "اسم النموذج". وعدلت الكود على زر "تغيير ستايل البرنامج" ليستدعي الإجراء الجديد.
 

Call SetTheme ("Black", me.name)

بالمناسبة، لا تنسَ أن تغير مسار الصور الخلفية في جدول Styles ، حيث المسارات الحالية توافق إعداداتي الخاصة على جهازي.

بالتوفيق،

عبدالله،،،

Q200.zip

تم تعديل هذه المشاركة بواسطة Ab Techno في 30 يناير 2013 في 04:11

#6

السلام عليكم

 

شكرا اخي عبد الله على اجابتك

 

ولكن الاجابة بعيدة تماما عن الشي الدي اطمح اليه، و مازالت احلم وانتظر على احر من الجمر للاجابة

 

ما تفضلت به عبارة عن وضع صورة .... وهدا غير عملي على الاطلاق لا من قريب ولا من بعيد ( تصور اصبحت تضع صورة على وجه النمودج...مما يؤدي الى حجب فعاليات النمودج)

 

حاول ان تركز معي

البرنامج به مئات النمادج، وكلها منسقة بتنسيق ازرق من ستايلات الاكسس...

 

اظن انك تخيلت معي الامور....

 

ارجو بشدة ممن لديه الحل اسعافنا به

 

والف الف شكر

#7

الأخ الفاضل

طريقه حذف كائن من قاعدة البيانات سهلة

يمكن أن تصمها بالكود او بالماكرو

انسخ هذا الكود إلي زر أمر وأعد كتابه هذه النماذج كلها

 

delete forms by write form name

 

Private Sub cmddeleteforms_Click()
DoCmd.DeleteObject acForm, "form1"
End Sub

 

 

نفس الحال مع استيراد كائنات من قاعدة أخري

غير المسار

غير اسماء النماذج

وكرر الأمر مع جميع نماذجك

 

import forms by write form name
Private Sub cmdimportforms_Click()
    DoCmd.TransferDatabase acImport, "Microsoft Access", "d:\abc1.mdb", acForm, "form1", "form1", False
End Sub

 

وأنا لا أنصح بالكود الذي كتبته ولكنك تريد الطريقه السهلة الصعبة في نفس الوقت

وسوف أحاول أن امدك بالكود الذي يقوم بحذف جميع النماذج بضغطه واحدة

 

أنا أنصحك باتباع طريقة الأخ

Ab Techno

وبالتوفيق

تم تعديل هذه المشاركة بواسطة azouzeg في 30 يناير 2013 في 16:49

1

عزوز عبداللاه
مدرب ومطور قواعد بيانات أكسس

الاهتمامات

VBA,VB.NET,ASP.NET,SQL SERVER, ORACLE

azouzeg@hotmail.com

01004147149

#8

الــــــف الــــــف مليـــــــــــون شــــــكر

اخــــــي azouzeg

 

على ماتفضلت به اخـــي الكريــــــــم، من وضع الاكواد المناسبة.

 

تــــــم تطبيـــــــــق هــــده الاكـــــــــــواد، ونجــــح الامـــــــر والحمـــد للــــــــه، وانزاح هـــم كبيــــــر عنــــــــي

بارك اللـــــــــــــه فيــــــــــك

 

اخي azouzeg

قمت بوضع المثال من جديد، بعد ان قمت بتطبيق الاكواد عليه

يجب وضع المثال ( حاليا ضمن الفهرس C:\kafi) حتى يعمل ( سيتم معالجة دلك لاحقا)

 

ارجو بشـــدة من الاخوة الكرام، قبل الضغط على زر تغيير ستايل البرنامج الى اللون الازرق

الضغط على زر الحركة اليومية

ومن ثم الخروج والخروج الكلي من البرنامج

 

هنا سوف تتضح لك اخي،  ولكافة الاخوة كيف ان شاشات البرنامج هي باللون الاسود.

 

اعد تشغيل البرنامج من جديد، واضغط على زر تغيير ستايل البرنامج الى اللون الازرق

وحاول الدخول الى الحركة اليومية، ومن ثم الخروج والخروج الكلي من البرنامج ...سوف ترى ان شاشات البرنامج اصبحت زرقاء ( طبعا الحدف والاستيراد تم لشاشتين) .

 

من هنا اجد انه هدا هو الحل الوحيد، طالما اننا في عجز عن تغيير ستايل النمادج المعمولة بالاكسس 2007 برمجيا، ولا حل براي سوى هدا الحل

 

 

اقتباس

أنا أنصحك باتباع طريقة الأخ

Ab Techno

وبالتوفيق

 

ما تفضل به الاخ ab Techno مشكور سلفا، بعيد كل البعد عن المطلوب، واظن انك أصبحت توافقني الراي الان

 

 

 

اقتباس

وسوف أحاول أن امدك بالكود الذي يقوم بحذف جميع النماذج بضغطه واحدة

 

انا على احر من الجمر بانتظار دلك الكود الدي يعمل على حدف جميع العناصر دفعة واحدة، وكدلك الكود للاستيراد دفعة واحدة ( هناك مئات من النمادج)

Q201.rar

تم تعديل هذه المشاركة بواسطة kafi في 30 يناير 2013 في 18:56

#9 أفضل إجابة
اخي الفاضل : كافي
 
لحذف واستيراد النماذج السوداء من القاعدة الخارجيه نستخدم هذا الكود
 
Public Function zaChangeStyleBlack()
Dim appAccess As Access.Application
Dim db As Database
Dim idx As Long
Dim strName As String
Dim StrPath As String
Dim frmSearch As Variant
 
Set db = CurrentDb
 
' حذف جميع النماذج
    For idx = Application.CurrentProject.AllForms.Count - 1 To 0 Step -1
        strName = Application.CurrentProject.AllForms(idx).Name
        DoCmd.DeleteObject acForm, strName
    Next idx
 
 
' استيراد جميع النماذج السوداء من القاعدة الخارجية
StrPath = Application.CurrentProject.Path & "\Black_Style.accdb"
 
Set appAccess = New Access.Application
appAccess.OpenCurrentDatabase StrPath
 
For Each frmSearch In appAccess.CurrentProject.AllForms
DoCmd.TransferDatabase acImport, "Microsoft Access", StrPath, acForm, frmSearch.Name, frmSearch.Name
Next frmSearch
 
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
 
End Function
 
 
 
 
 
لحذف واستيراد النماذج الزرقاء من القاعدة الخارجيه
 
Public Function zaChangeStyleBlack()
Dim appAccess As Access.Application
Dim db As Database
Dim idx As Long
Dim strName As String
Dim StrPath As String
Dim frmSearch As Variant
 
Set db = CurrentDb
 
' حذف جميع النماذج
    For idx = Application.CurrentProject.AllForms.Count - 1 To 0 Step -1
        strName = Application.CurrentProject.AllForms(idx).Name
        DoCmd.DeleteObject acForm, strName
    Next idx
 
 
' استيراد جميع النماذج الزرقاء من القاعدة الخارجية
StrPath = Application.CurrentProject.Path & "\Blue_Style.accdb"
 
Set appAccess = New Access.Application
appAccess.OpenCurrentDatabase StrPath
 
For Each frmSearch In appAccess.CurrentProject.AllForms
DoCmd.TransferDatabase acImport, "Microsoft Access", StrPath, acForm, frmSearch.Name, frmSearch.Name
Next frmSearch
 
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
 
End Function
 
 
 
 
ملاحظات هامه عند استخدام الكود :
1. يتم وضع هذه الأكواد في وحده نمطية
2. عدم استدعاء هذه الأكواد من خلال النماذج لأن جميع النماذج سيتم حذفها واستبدالها
3. يتم استداعاء هذه الأكواد من خلال عدد 2 ماكرو  ( الأول مخصص للنماذج السوداء والأخر مخصص للنماذج الزرقاء ) بهذه الطريقة

 

post-15367-0-80644100-1359565311.gif

 

 

ماكرو النماذج السوداء

post-15367-0-97825700-1359565332_thumb.g

 

 

ماكرو النماذج الزرقاء

post-15367-0-14327300-1359565399_thumb.g

 

 

 

بالتوفيق

1
#10

الــــــــــــف مليــــــــــــــــون ترليـــــــــــــــــــــون 

شــــــــــــــــكراً

اخـــــــــــــت زهـــــــــــــــــرة

 

على الشرح الرائع، وعلى هده الاكواد المفيدة جدا جداً.

 

انحلت الامور والحمد لله

قمت بوضع الاكواد التي تفضلت بها، ضمن مثال جديد، حتى يستفيد منها كافة الاخوة والزملاء، والمثال اصبح يعمل بشكل اكثر من رائع

 

اخت زهرة

كما قلت في مشاركتي الاولى، ان نجاح هده الفكرة، سوف يكون نواة للدخول الى موضوع لايقل اهمية عن موضوع تغيير الثيمات للبرنامج، الا وهي دقة شاشة البرنامج التي تؤرق الكل، ولم اجد حل شافي لها على الاطلاق، سوى اتباع دات الحل،

 

اي بمعنى اخر، سوف اصمم ثلاث قواعد بيانات بالدقات الاكثر شهرة وهي

1024 *768

1600 * 900

1920 * 1080

 

وسوف نتبع نفس الطريقة بحدافيرها، من محي كافة النمادج، واستيراد مايراه المستثمر ملائماً له.

 

اخت زهرة، هل تؤيدين هدا الحل، اما ان هناك طريقة افضل.

 

واكرر مجددا شكري الجزيل

 

والسلام عليكم

Q202.rar

post-32358-0-97304700-1359571530_thumb.p

تم تعديل هذه المشاركة بواسطة kafi في 30 يناير 2013 في 21:49

#11

السلام عليكم

 

عودة سريعة جدا

 

كارثــــــــــــــــــــــــــــــــــــــــــــــــة

 

تم تحويل المثال الى نمط Accde ( وهو النمط الدي يتم به توزيع البرنامج على المستثمر)

 

 

ولكن

 

ظهرت رسالة تفيد، بعدم امكانية تطبيق ما تعبنا وحلمنا به

 

 

هل من حل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

 

post-32358-0-23556000-1359572323_thumb.p

#12

اخي الفاضل : كافي

 

بالنسبة لموضوع وضع ثلاث قواعد ببيانات بها دقات مختلفه لشاشات العرض فهذا غير مناسب وغير مقبول لأننا قد اوجدنا الحلول منذ زمن في هذه المشاركة

 

تغيير دقة الشاشة حسب الطلب

/index.php/topic/165869-1577

 

post-15367-0-81781800-1359577385_thumb.g

 

 

 

اما بخصوص تحويلك قاعدة البيانات الى صيغة محمية سواء  MDE (  اكسيس  97 - 2000 - 2002 - 2003  ) او  Accde  ( اكسيس  2007 - 2010 - 2013 )

فمن الطبيعي جدا ان لا يتم استيراد اي نماذج من القواعد المحمية لأن هذه الميزة خاصة بمثل هذا النمط من قواعدة البيانات المحمية  ولا يعتبر كارثه .

 

اما الحل الأفضل  والمناسب هو ترك قاعدة البيانات كما هي  MDB  او  ACCDB  ( غير محمية ) لأنك اذا اردت شيء ما وتريد تطبيقه على برنامجك فلابد لك ان تضحي بالشيء الأخر ولا تستطيع جمع كل الأشياء في آن واحد .

 

 

بالتوفيق

1
#13

الف شكر اخت زهرة على ما تفضلت به

 

سوف الجاً الى حل ثاني، وهو وضع قاعدتي بيانات احدهما تحميل ثيم ازرق والاخر تحمل ثيم اسود ، وسوف افصل الجداول

واعمل ربط لها مع كلا القاعدتين... اظن ان هدا الحل الوحيد المتبقي

 

 

الف شكر على نصيحة دقة الشاشة، وقد قمت بعمل مثال وضعته في مشاركة منفصلة، يعمل على التحويل مباشرة الى دقة البرنامج المطلوبة بدون تدخل من المستثثمر مستفيدا من الكود الدي اشرت اليه.

 

والسلام عليكم

هذا الموضوع مغلق.

مواضيع مشابهة