اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

كيف اسمح للمستخدم اخفاء وترتيب الاعمدة عن طريق الكود ؟


alzahrani07
إذهب إلى أفضل إجابة Solved by عبد الله قدور,

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

أخواني بأحاول أختصر لكم عندي برنامج وشغال على شبكة داخلية ، فيه جدول فيه حقول كثير مثلا 20 حقل

الجدول هذا يتم استعراضه عن طريق النموذج طبعا لكن (Datasheet)

مشكلتي مع المستخدمين في ترتيب وإخفاء الأعمدة حسب كل احتياج مستخدم

سؤال كيف أقدر أحفظ تعديل وترتيب واخفاء الأعمدة حسب المستخدم بحيث انه يقدر يستخدم الترتيب اللي يحتاجه في أي وقت حتى لو على جهاز ثاني ؟

تم تعديل بواسطه alzahrani07
رابط هذا التعليق
شارك

  • alzahrani07 changed the title to كيف اسمح للمستخدم اخفاء وترتيب الاعمدة عن طريق الكود ؟
11 دقائق مضت, alzahrani07 said:

سؤال كيف أقدر أحفظ تعديل وترتيب واخفاء الأعمدة حسب المستخدم بحيث انه يقدر يستخدم الترتيب اللي يحتاجه في أي وقت حتى لو على جهاز ثاني ؟

اخوي الكريم ، قد افهم مقصدين من سؤالك هذا .

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

الثاني أن تمنحه حسب الصلاحية حرية التغيير بإظهار وإخفاء الأعمدة :blink:

 

صح أنا فهمت ولا لسه القهوة ما صحصحتني :biggrin2:

رابط هذا التعليق
شارك

1 دقيقه مضت, Foksh said:

اخوي الكريم ، قد افهم مقصدين من سؤالك هذا .

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

الثاني أن تمنحه حسب الصلاحية حرية التغيير بإظهار وإخفاء الأعمدة :blink:

 

صح أنا فهمت ولا لسه القهوة ما صحصحتني :biggrin2:

لا ابشرك فهمت صح ههههههه

أمنح المستخدم حرية تعديل ترتيب وإخفاء الأعمدة حسب احتياجه

عدد المستخدمين عندي كبير وما اقدر اعمل لكل مستخدم نموذج بينخرب بيتي 😞

محتاج كود وظيفته بعد ما المستخدم يرتب الأعمدة ويخفي اللي ما يحتاجه .... إلخ يعمل حفظ في جدول لهذا الترتيب

  • Haha 1
رابط هذا التعليق
شارك

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

  • Like 1
رابط هذا التعليق
شارك

أعانك الله ويسر الله امورك

أرفقت لك مرفق وبأحاول أختصر لك بمثال بسيط قد ما اقدر عندي نموذج (Datasheet) يعرض هذه البيانات ( لجميع المستخدمين طبعا )

الاسم ، العنوان ، رقم الهاتف ، الوظيفة.

أحد المستخدمين (أحمد) يحتاج عامود الاسم والوظيفية فقط ، فهو مضظر في كل مرة يفتح النموذج يعمل إخفاء لعامود العنوان والرقم الوظيفي

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

اللي أحتاجه اني أسمح لكل للمستخدمين حفظ Layout خاص بهم ( طبعا عندي جدول مستخدمين وأرقام مستخدمين )

Database1.accdb

رابط هذا التعليق
شارك

الأمر يسير جدا ..

ما دام العمل على الشبكة وكل مستخدم له واجهاته الخاصة ،، فالامر عادي يمكنه اخفاء العمود  وسيتستمر هذا الإخفاء حتى يظهره مرة اخرى

عملية الاخفاء تتم على النموذج مباشرة 

رابط هذا التعليق
شارك

1 دقيقه مضت, ابوخليل said:

الأمر يسير جدا ..

ما دام العمل على الشبكة وكل مستخدم له واجهاته الخاصة ،، فالامر عادي يمكنه اخفاء العمود  وسيتستمر هذا الإخفاء حتى يظهره مرة اخرى

كلامك صحيح لكن بين وفتره والثانيه بأعمل تحديث للبرنامج ، وعند تحديث البرنامج عند المستخدمين بيفقدوا الترتيب اللي هم حافظينه

وبعض المستخدمين بيستخدموا أكثر من جهاز فيضطر انه يعمل الترتيب اللي يحتاجه على كل جهاز

عشان كذا أحتاج حل أحفظ لهم الترتيب في جدول يصير أقدر استرجع لهم الترتيب تلقائياً وفي أي وقت عن طريق اسم المستخدم

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

اخي الكريم

انا استخدم الكود التالي مع الجداول التالية

Sub OrderLik(Box, IDD As Integer)
'On Error GoTo err:
On Error Resume Next
If DLookup("[show]", "subreport", "[idd]=" & IDD) = True Then
    With Box
    .ColumnWidth = DLookup("[width]", "subreport", "[idd]=" & IDD)
    .ColumnOrder = DLookup("[order]", "subreport", "[idd]=" & IDD)
    .ColumnHidden = False
    End With
Else
    Box.ColumnHidden = True
End If
Exit Sub

err:
MsgBox err.description
err.Clear


End Sub

err.Clear

واقوم باستدعائه بالكود التالي لكل عمود

Call OrderLik(.Code, 1)

مع الجداول التالية

1- جدول اضع فيه اسماء النماذج الرئيسية واعدادات الطباعة

image.png.b01aa2af0fc730262158e1bda8fe5101.png

2- جدول فرعي اضع فيه اسماء الاعمدة حجم العمود وترتيبه وهل سيظهر ام لا

 

 

image.png.cf1e3a4c0314f2d7c0f255aba8270610.png

تم تعديل بواسطه عبد الله قدور
رابط هذا التعليق
شارك

تم عمل المطلوب

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

----------------------------------------

طبعا المثال لا يحتوي على آلية لتعيين المستخدم وانما يتم ذلك في برنامجك عند بدء فتح البرنامج

لذا عملت شيئا من هذا القبيل في النموذج لتعيين مستخدم محدد كي نشاهد نتيجة العملية

-------------------------------------

تطبيق الفكرة سهل ويسير  فقط تتبع الخطوات من خلال النماذج

نبدأ من نموذج الإعداد / ثم نموذج الخيارات / ثم النتيجة في نموذج عرض البيانات

آمل ان يحوز على رضاك ويلبي طلبك ،،،

Data2.rar

  • Like 2
رابط هذا التعليق
شارك

في 16‏/10‏/2023 at 16:27, ابوخليل said:

تم عمل المطلوب

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

----------------------------------------

طبعا المثال لا يحتوي على آلية لتعيين المستخدم وانما يتم ذلك في برنامجك عند بدء فتح البرنامج

لذا عملت شيئا من هذا القبيل في النموذج لتعيين مستخدم محدد كي نشاهد نتيجة العملية

-------------------------------------

تطبيق الفكرة سهل ويسير  فقط تتبع الخطوات من خلال النماذج

نبدأ من نموذج الإعداد / ثم نموذج الخيارات / ثم النتيجة في نموذج عرض البيانات

آمل ان يحوز على رضاك ويلبي طلبك ،،،

Data2.rar 32.66 kB · 22 downloads

اعتذر عن تأخري في الرد بسبب ظروف العمل والله المستعان

الطريقة نجحت معاي تمام وجزاك الله ألف ألف خير

لكن ظهرت معاي عقبه ثانية وسامحني ازعجتك بكثرت مشاكلي

المشكلة ان استخدم Split Form في بعض الأحيان وللأسف الطريقة ما نجحت معاها 😞

ما ادري اذا فيه حل ولالا ؟

رابط هذا التعليق
شارك

بعد إذن الأستاذ الفاضل @ابوخليل ،،

في النموذج الفرعي الذي قمت بإضافة الكود إليه فقط ضع كود تجاوز الخطأ في بداية الكود في حدث on current كما فعلت انا ،  وسيجح الأمر باذن الله تعالى.

On error resume next

رابط هذا التعليق
شارك

10 دقائق مضت, Foksh said:

بعد إذن الأستاذ الفاضل @ابوخليل ،،

في النموذج الفرعي الذي قمت بإضافة الكود إليه فقط ضع كود تجاوز الخطأ في بداية الكود في حدث on current كما فعلت انا ،  وسيجح الأمر باذن الله تعالى.

On error resume next

للاسف ما نجحت الطريقة بعد

مع العلم الكود بيشتغل بدون ما يظهر خطأ لكن لكن لكن اذا كان النموذج Split Form ما يشتغل

اللي فهمته ان ColumnHidden غير متوفره في Split Form

تم تعديل بواسطه alzahrani07
رابط هذا التعليق
شارك

1 دقيقه مضت, alzahrani07 said:

للاسف ما نجحت الطريقة بعد

مع العلم الكود بيشتغل بدون ما يظهر خطأ لكن لكن لكن اذا كان النموذج Split Form ما يشتغل

اللي فهمته ان ColumnHidden غير متوفره في Split Form

ارسل مرفق لتعديل التوافقية ( وليس على كود الأستاذ ابو خليل )

رابط هذا التعليق
شارك

5 دقائق مضت, alzahrani07 said:

اعتذر منك ما فهمت عليك

انا قمت بتجربة الكود على نموذج فرعي مصدره استعلام ولم تكن هناك اي مشكلة ، أما في النموذج المنقسم لم أجربها .

فارسل مرفق بسيط لتجربة الكود عليه.

رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم

جرب هذه الطريقة

من هذه النافذة اختر زر الخيارات

2023-10-21_10h10_43.jpg.aa6b1ec476e07f96fcc60646683457bc.jpg

ستظهر النافذة التالية

العمود الاول هو ترتيب الاعمدة ، الثاني لاظهار الاعمدة ، الثالث اسم العمود ، الرابع حجم العمود

بامكانك بازرار الاعلى والاسفل تحريك العمود للاعلى والاسفل

2023-10-21_10h10_49.jpg.c07bbb884b71e0e43782585e41e94532.jpg

Database6.accdb

  • Like 2
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information