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

مشكلة في ضغط قاعدة البيانات؟

بدأه kafi في 23 يونيو 2012 · 9 رد · 2,139 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السلام عليكم

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

وفعلا وجدت مثال للاخت زهرة

قمت بتطبيق المثال بحذافيره على ملف قاعدة البيانات التي لدي، وهي منشأة على اكسس 2007

لا حظت مايلي :

1- عدم قدرة الكود على ضغط ملف قاعدة البيانات، بدليل انني قمت بعد ذلك باستخدام الامر ( ضغط قاعدة البيانات واصلاحها) عن طريق فتح برنامج الاكسس، ولاحظت كم هو الفرق في الحجم

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

وشكرا

Q67.rar

تم تعديل هذه المشاركة بواسطة kafi في 23 يونيو 2012 في 23:54

#2

تفضل اخي الكريم

الضغط والإصلاح لقواعد البيانات اكسيس 2007

post-15367-069074400 1340492957_thumb.gi

post-15367-040801200 1340492976_thumb.gi

Q67.rar

بالتوفيق

المرفقات
Q1.gifQ2.gif
#3

أستاذتنا زهرة

تحية الإسلام وبعد :

أولا أود أن نشكرك جزيل الشكر على موضوع كود إخفاء شاشة الأكسس في النسخة 2010 ، نسأل الله أن تكون في ميزان حسناتك وبارك الله فيك وفي ذريتك ، اسمحي لي أن اقدم إعتذاري لك على عدم شكرك بنفس الوقت لأن الموضوع اغلق قبل أن أتمكن من الرد عليك .

ثانيا أود أن اسألك على موضوع ضغط وإصلاح قاعدة البيانات ما مدي الإستفادة منها ، وما مدي كمية البيانات التي يمكنها أن تتحملها هذه القاعدة .

وتقبلي من فائق التقدير والإحترام

#4

الف الف شكر

اخت زهرة على اجابتك

فعلا كود معقد جداً، الا انه ضروري جدا لكافة الاخوة الذين لديهم قواعد بيانات صمممت على اكسس 2007

ولكن اواجه مشكلة اختي زهرة في تطبيق ماتفضلت به

Private Sub Form_Load()
Dim CurrentFilePath As String
CurrentFilePath = Application.CurrentProject.Path & "\Q67.accdb"
Me.sText = FileLen(CurrentFilePath) / 1024 & "  ßíáæÈÇíÊ  "
End Sub

المشكلة تتلخص بمايلي :

في مثالنا السابق كان اسم الملف هو Q67 .

الواقع العملي عند توزيع البرنامج غالباَ ما يقوم المستثمر بتغيير اسمه الى مثلا Kafi_2012

اي يمثل حسابات سنة 2012، وفي السنة التي تليها يقوم بعمل نسخة من البرنامج ويقوم بتسميتها kafi_2013 وهكذا وربما قد يسمي بتسميات اخرى تتناسب مع عقليته، الله اعلم ماذا سوف يسمي الملف

اي بمعنى اخر لا نعرف اسم الملف .. فكيف السبيل الى حل تلك المعضلة ؟؟؟؟؟

والف الف شكر

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

تم تعديل هذه المشاركة بواسطة kafi في 25 يونيو 2012 في 19:19

#5
kafi كتب:

الف الف شكر

اخت زهرة على اجابتك

فعلا كود معقد جداً، الا انه ضروري جدا لكافة الاخوة الذين لديهم قواعد بيانات صمممت على اكسس 2007

ولكن اواجه مشكلة اختي زهرة في تطبيق ماتفضلت به

Private Sub Form_Load()
Dim CurrentFilePath As String
CurrentFilePath = Application.CurrentProject.Path & "\Q67.accdb"
Me.sText = FileLen(CurrentFilePath) / 1024 & "  ßíáæÈÇíÊ  "
End Sub

المشكلة تتلخص بمايلي :

في مثالنا السابق كان اسم الملف هو Q67 .

الواقع العملي عند توزيع البرنامج غالباَ ما يقوم المستثمر بتغيير اسمه الى مثلا Kafi_2012

اي يمثل حسابات سنة 2012، وفي السنة التي تليها يقوم بعمل نسخة من البرنامج ويقوم بتسميتها kafi_2013 وهكذا وربما قد يسمي بتسميات اخرى تتناسب مع عقليته، الله اعلم ماذا سوف يسمي الملف

اي بمعنى اخر لا نعرف اسم الملف .. فكيف السبيل الى حل تلك المعضلة ؟؟؟؟؟

والف الف شكر

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

اخي الفاضل

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

Private Sub Form_Load()
Dim CurrentFilePath As String
CurrentFilePath = Application.CurrentProject.Path & "\" & Application.CurrentProject.Name
Me.sText = FileLen(CurrentFilePath) / 1024 & "  كيلوبايت  "
End Sub

الآن اجعل المستثمر يكتب اسم قاعدة البيانات بأي اسم يريده حتى لو كتب اسم القاعدة بحروف من هنا حتى يوصل كوكب الزهره فالكود سوف يتعرف على اسم القاعدة في طرفة عين وسيقوم بتنفيذ حدث الضغط والإصلاح رغما عن المستثمر

zahrah2012.rar

بالتوفيق

1
#6

بسم الله ماشاء الله .... تبارك الله .... اخت زهرة

بارك الله بك ... فقد حللت مشكلة كبيرة كانت تؤرقني.

كل شئ تمام التمام .... عال العال

اختي زهرة، من بعد اذنك قمت بتعديل بسيط، بحيث ان تظهر للمستثمر قيمة حجم قاعدة البيانات قبل الضغط ... وبعد الضغط، وكل شئ تمام

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

هل بالامكان اختي زهرة ان نضع شريط تقدم، يستمر بالتعبئة مع استمرار عملية الضغط ...حتى لا يذهب مخ المستثمر هنا وهناك

والف الف شكر على ماتفضلت به

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

zahrah2012 A.rar

post-32358-036146100 1340660250_thumb.jp

المرفقات
1.JPG

تم تعديل هذه المشاركة بواسطة kafi في 26 يونيو 2012 في 00:40

#7
kafi كتب:

بسم الله ماشاء الله .... تبارك الله .... اخت زهرة

بارك الله بك ... فقد حللت مشكلة كبيرة كانت تؤرقني.

كل شئ تمام التمام .... عال العال

اختي زهرة، من بعد اذنك قمت بتعديل بسيط، بحيث ان تظهر للمستثمر قيمة حجم قاعدة البيانات قبل الضغط ... وبعد الضغط، وكل شئ تمام

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

هل بالامكان اختي زهرة ان نضع شريط تقدم، يستمر بالتعبئة مع استمرار عملية الضغط ...حتى لا يذهب مخ المستثمر هنا وهناك

والف الف شكر على ماتفضلت به

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

اخي الفاضل

لا اعتقد ان الشريط التقدمي بنفع في مثل هذه الحالة لأن الكود اساسا يقوم بعمل ريستارت ( اعادة تشغيل لقاعدة البيانات ) قد لا تلاحظ هذا لأن العملية تتم بسرعة وبهذا سيتوقف الشريط التقدمي عند نقطة معينة

ولكن هناك حل افضل واسهل وابسط لك وتستطيع عمله انت بكل سهولة

1. يتم انشاء مربع تسمية وتضع به مثلا العبارة التالية ( قاعدة البيانات في حالة تحديث ) وتجعل هذه التسمية مخفية عند فتح النموذج

2. عند الضغط على زر امر الضغط والإصلاح يتم اظهار هذه التسمية

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

بالتوفيق

#8

الف الف شكر اخت زهرة

على ما تفضلت به

قمت بإضافة المقترح الذي تفضلت به حضرتك، وفعلاً حل جيد

احببت ان اضع الكود النهائي حتى يستفيد منه كافة الاخوة

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

zahrah2012_B.rar

#9

السلام عليكم

اقتباس
اختي زهرة، من بعد اذنك قمت بتعديل بسيط، بحيث ان تظهر للمستثمر قيمة حجم قاعدة البيانات قبل الضغط ... وبعد الضغط، وكل شئ تمام

اكتشفت من خلال التجربة العملية ان الكود لا يعمل، رغم ما قمت به ( من وجهة نظري مهم جدا حل 2- اظهار الحجم قبل وبعد الضغط) حيث ان القاعدة لا تنضغط، والتعديل كان بسيط للغاية ولكن لا اعرف لماذا الكود لا يعمل.

قلت لنفسي، بأن اقوم بالابقاء على الكود الموضوع من قبلك اخت زهرة على ماهو عليه، بحذافيره ( حل 1) وعدم التعديل عليه،حيث انه يعمل بنجاح، ولكن الكود يتطلب اغلاق قاعدة البيانات والعودة من جديد، وحسب ترتيب شاشات البرنامج لدي تظهر مشكلة

اخت زهرة

ارجو تعديل الحلين ان امكن ، وحبذا لو كان للحل 2

والف الف شكر

Q81.rar

post-32358-028888800 1341170349_thumb.jp

post-32358-087897700 1341170352_thumb.jp

المرفقات
1.JPG2.JPG
#10

للرفع

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