اذهب الي المحتوي
أوفيسنا

شايب

03 عضو مميز
  • Posts

    304
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    2

كل منشورات العضو شايب

  1. اولا اعتذر منك استاذي الفاضل د.محمد عن تأخري في الرد حيث اعاني من وعكة صحية شديدة الجواب نعم اذا كان البرنامج بصيعة 2003 ولكن وربما حديثي قد لايروق لبعض الاساتذة فانا لن اعود للاصدارات الاقدم حتى وان احتوت على ميزتين افتقدناها في اصدارات 2007 فما فوق
  2. في الاصدارات ماقبل 2007 اي 2003 ومادون كانت هناك ميزة الاذونات والامان على مستوى المستخدم وهذه نبذه عنها من موقع مايكروسوف يشبه الأمان على مستوى المستخدم في Access آليات الأمان على الأنظمة المستندة إلى الخادم، فهو يستخدم كلمات المرور والأذونات للسماح بالوصول إلى العناصر الموجودة في قاعدة البيانات أو تقييد وصول الأفراد أو مجموعات من الأفراد إليها. في Access 2003 أو الإصدارات السابقة، عند تطبيق الأمان على مستوى المستخدم في قاعدة بيانات Access، يمكن لمسؤول قاعدة البيانات أو مالك عنصر التحكم في الإجراءات التي يمكن للمستخدمين الفرديين أو مجموعات المستخدمين تنفيذها على الجداول والاستعلامات والنماذج والتقارير وحدات الماكرو في قاعدة البيانات. على سبيل المثال، يمكن لمجموعة واحدة من المستخدمين تغيير الكائنات في قاعدة بيانات، ويمكن لمجموعة أخرى إدخال البيانات فقط في جداول معينة، ويمكن لمجموعة ثالثة عرض البيانات فقط في مجموعة من التقارير. وللوصول على هذه الميزه افتح برنامج اكسس ثم فتح وقبل اختيار الملف اختر فتح خاص ثم اختار الملف بعد فتح القاعدة من قائمة ملف اختار معلومات ستجدمن ضمن الخيارات ادارة المستخدمين والاذونات الاذونات والامان على مستوى المستخدم للاصدارات 2003 ولكن تعمل في الاصدارات بشرط عدم ترقية قاعدة البيانات الصورة المرفقة للاذونات التي استخدمت في البرنامج الحالي هل يمكن كسرها هنا اتوقف ونترك الامر للاساتذة فمن تحدث في غير فنه اتى بالعجائب اخونا الشايب
  3. طبيعي لانه ترقيم تلقائي ولدينا اكثر من طريقة لتلافي ذلك نجعل الترقيم بالكود باستخدام dmax او نجعل النموذج غير منضم وطالما الاستاذ خليفة مشارك فاتوقف هنا وندع الامر للاساتذة اخونا الشايب
  4. استخدم دالة العد في حدث بعد التحديث لحقل الجهة او في زر امر او في الحدث الذي تراه مناسب لبرنامجك ضع الامر التالي Dim x As Integer x = DCount("*", "table1", "[num]=" & [Num] & "and [from]='" & [From] & "'") If x > 1 Then If MsgBox("هذه القيمة مسجلة مسبقا", vbYesNo, "تكرار") = vbYes Then DoCmd.CancelEvent Me.Undo Else End If End If الشايب
  5. الحقيقة ان الحاجة ام الاختراع من اكبر مشاكل برامج الاتصالات الادارية موضوع سداد القيد وهو ما اشار اليه الاستاذ زياد واسماه ربط اولويات المراسلة عند عدم سداد القيد يكون هناك انقطاع في تتبع المعاملة بل وفقدان للمعاملات لذا كانت فكرة القيد الموحد وطالما اتجهنا لقيد موحد فان جدول واحد رئيسي يكفي وما يتبعه من جدول تابع للحركة "في البداية اهملناه ثم تنبهنا الى اهمية وجوده" ولعمل افضل نحتاج الى جدول اضافي اختياري للجهات الصادرة اليها او الواردة منها المعاملة لكي لا يترك للمستخدم الاجتهاد في كتابة هذه الاسماء فاحدهم في حقل الجهة الواردة منها المعاملة يكتب وزارة الموارد البشرية وموظف اخر يكتب الموارد وثالث ... ورابع ... الخ العفو يا ابا خليل فوالله ما انا الا تلميذ من تلاميذكم ولي الشرف ان اكون كذلك رحم الله امرىء عرف قدر نفسه الشايب
  6. استمتعت بمشاهدة العرض التوضيحي والبرنامج جميل واضح ويمكن لاي شخص العمل عليه بكل سهولة لدي بعض الامور البسيطة وتبقى وجهة نظر شخصية لاخينا شايب في شاشة اضافة مشترك لماذا يوجد حقل للديانة في بعض الحقول استخدمت قناع الادخال وهو امر قد يكون مزعج لبعض المستخدمين بالنسبة لمصدر القائمة البلد ولكل القوائم من رأي اخينا شايب عدم استخدام قائمة القيم واستخدم الجداول كمصدر واذا كان لدينا عدد كبير من القوائم ممكن استخدام جدول واحد ونتحكم في المصدر لكل قائمة عن طريق الاستعلام بمعيار محدد مسبقا لكل مجموعة من البيانات بالنسبة لصورة المشترك اعتقد انك استخدمت حقل من نوع مرفق وهذا الامر سوف يسبب زيادة حجم قاعدة البيانات والافضل حفظ الصور في مجلد اخونا الشايب
  7. نعم يؤدي الغرض ولكننا استخدمنا التحديث عن طريق مصدر السجلات هذا في بداية الامر ولكن بعد الاستخدام الفعلي في بيئة عمل حقيقية وبعد الاستماع ومناقشة المستفيدين اضطررنا الى اضافة جدول ثالث للتفاصيل ولم نعد نحتاج الى تحديث وانما اضافة للجدول التابع والهدف من ذلك لتتبع الاجراء للمعاملة من بدايتها للنهاية بالتاريخ والوقت لكل اجراء وايضا تفصيل الاجراء ... الخ الحقيقة اي عمل لا يخلو من نقص ومن اخطاء ويتم تداركها بعد ذلك واحيانا نعمل برنامج وفقا لمتطلبات الجهة وبعد الانتهاء نجد ان الطلبات اختلفت وما نعمله من تعديلات واضافات يفوق الجهد المبذول في بناء البرنامج و لذلك اسباب عديدة ولكن لا اود ان استغرق في التفاصيل مع الاعتذار لصاحب المشاركة فقد خرجنا عن المسار اخونا الشايب
  8. لو كنت مبرمج لاختصرت هذة الحقول الثمانية الى اثنين فقط واحد مربع تحرير وسرد يتغير مصدره بناء على ما يتم اختياره والاخر حقل نصي ييستخدم للاضافة او التعديل وفقا لطبيعة البرنامج ويمكن التعامل مع اكثر من جدول و حينها يمكن اختصار اسطر من الاكواد والاستفاد من خاصية tag متغييرة بالكود لتحديد الجدول الهدف او بدون علامة باستخدام متغيير رقمي في رأس النموذج اخيرا البعض من المبرمجين يلزموا انفسهم بما لا يلزم وهنا اتذكر قبل سنوات عملنا برنامج للاتصالات الادارية بالوزارة مكون من جدول رئيسي واحد وجدول مساعد واحد للقيم الثابتة ورقم واحد للمعاملة من البداية للنهاية ووجدنا انتقاد وتشكيك مع ذلك نجح البرنامج واستمر العمل به لسنوات الى ان تركت العمل مع ذلك فان الاخ شايب يفضل المتابعة بصمت فقد ادركه الصباح اخونا الشايب
  9. شرف كبير لاخينا شايب ان تكون وجهة نظره مشابهة لوجهة نظر اساتذتنا الكبار والخبراء الافاضل احسن الله اليكم فنحن نتعلم و نكتسب الخبرة من متابعة ردودكم اخونا الشايب
  10. اخونا شايب يعتقد ان حقل واحد يمكن ان يقوم بالمطلوب وخصوصا ان البحث سيكون في حقل الاسم وحتى لو اردنا البحث في اكثر من حقل او كافة الحقول يكفي حقل واحد للمعيار ويمكن الفلترة بمعيار في الاستعلام كما فعل استاذنا الخبير او الفلترة بالكود او البحث عن السجل المطابق بدون فلترة وانتقال المؤشر للسجل المطابق او حتى بدون الحاجة لحقل المعيار اذا استخدمنا نماذج غير منضمة ولكن هذا امر اخر اخونا الشايب
  11. الاخ العزيز شايب لا يهتم لامر افضل اجابة بالنسبة لوضع مثال الحقيقة انه في الفترة الاخير هناك عدد كبير من المشاركات تضع وصف مشكلة بدون مرفق او مرفق بدون بيانات والادهى من ذلك عدم متابعة الموضوع وهذا امر محبط اخيرا فكرة الاخ شايب كما اشار سابقا عمل جدولين بعلاقة واحد الى متعدد وبدون الحاجة حقل نعم لا ولا حاجة ايضا لاستعلام تحديث ثم عمل كود بسيط للمرور على ماتم اختياره من مربع القائمة واستخدامه كمعيار استعلام كمصدر للقائمة المنسدلة On Error GoTo a Dim k As String Dim i As Integer For i = 0 To c_2.ListCount - 1 If c_2.Selected(i) = True Then k = k & c_2.Column(0, i) & "," End If Next i Me.c_3.RowSource = "SELECT * FROM tbl_Towns_Blocks " & _ "WHERE tbl_Towns_Blocks.id IN (" & Left(k, Len(k) - 1) & ")" DoCmd.GoToControl "c_3" Me.c_3.Dropdown Exit Sub a: Me.c_3.RowSource = "" وهنا استخدمنا امر معالجة الخطأ لافراغ القائمة المنسدلة وهو استخدام قد لا يروق لبعض الخبراء وبالامكان استخدام For Each بدلا من for next ليكون الامر On Error GoTo a Dim s As Variant Dim t As String t = "" For Each s In Me.c_2.ItemsSelected t = t & "" & Me.c_2.ItemData(s) & ", " Next t = Left(t, Len(t) - 2) Me.c_3.RowSource = "SELECT * FROM tbl_Towns_Blocks " & _ "WHERE tbl_Towns_Blocks.id IN (" & t & ")" DoCmd.GoToControl "c_3" Me.c_3.Dropdown Exit Sub a: Me.c_3.RowSource = "" في جميع الاحوال هي مجرد مشاركة من غير متخصص ويترك الامر للاساتذة والخبراء اخونا الشايب CopyList (1)(1).accdb
  12. مشاركة مع الاستاذ خليفة اعتقد ان الافضل ان يكون لدينا جدول للمدن وجدول اخر للاحياء ونعمل مربع قائمة متعددة الاختيار لاسماء المدن وقائمة منسدلة لاسماء الاحياء يتم تحديد مصدرها من خلال كود استعلام بمعيار in اخونا الشايب
  13. اي ملف تنفيذي يمكن في كثير من الاحيان استخلاصة وتكون الصعوية بناء على نوع الضغط والتشفير المستخدم هي قناعات وبسبب كوني مبتدئ فانا اقدم مبدأ السلامة اما انتم اساتذتنا فقد لايشكل الموضوع مشكلة فلديكم القدرة على معالجة ما قد يحدث من مشكلات وتتبع اي تغييرات يقوم بعملها الملف التنفيذي
  14. مع ان خونا شايب مبتدئ في الاكسس والحاسب بشكل عام واغلب الحوار هنا بين محترفين واساتذة ولم يستوعب منه الا اقل القليل الا انه يعتقد ان الملف التنفيذي يمكن استخراج محتوياته لذا بعض المحترفين يقومون بعمل ملف تنفيذي مشفر ومضغوط لتصعيب عملية الفك ومع ذلك فهناك ادوات تقوم بفك التشفير والضغط ولكن هذا موضوع كبير ويحتاج الى خبرات في الهندسة العكسية بالنسبة للملف برنامج بيع.accde لم يعمل معي لكوني استخدم اصدار 64 بت اخيرا الاخ شايب لم يقم بتنصيب البرنامج لكونه لا يقوم بتشغيل اي ملف exe حتى لو كان من اخ عزيز وثقه مثل استاذنا ودكتورنا المبجل د حلبي فهو يتمثل بالقول يؤتى الحذر من مكمنه لذا اكتفى باستخلاص ملف الاكسس اخونا شايب
  15. بالتوفيق والشكر لله وحده مع ذلك فان الاخ العزيز شايب سبق ان اشار في موضوع سابق ان الفلترة اثناء الكتابة ليست الخيار الافضل وخصوصا عند وجود عدة مستخدمين للبرنامج اضافة الى مشاكل في ازاحة الاحرف اما بالنسبة لي لو كنت مبرمج لاخترت الفلترة بعد التحديث و استخدمت قائمة منسدلة قابلة للفلترة عند كتابة كل حرف وحينها ساكون جمعت بين الفكرتين بعد التحديث لسجلات الجدول وعند التغيير للقائمة المنسدلة ولكن لو حرف امتناع لامتناع فلا انا مبرمج ولن اعمل برنامج اخونا الشايب
  16. في مرفقك الاخير لا يوجد سجل باسم سليمان فقط سعيد ومازن وحسن وحسين وانا اضفت محمد ومحمود و البحث يعمل جرب الان Database1(1).accdb
  17. جربت عمليات البحث عدة مرات ولم اواجه هذه المشكلة واتمنى اذا احد اخر جرب يفيدنا هذا الامر اذا كان النموذج مستمر اما في مثالك النموذج مفرد وعند كتابة الحرف الاول يقوم بعرض اول اسم يطابق الحرف مثلا كتبت س يكون اول اسم معروض سعيد ولكن عند كتابة حرف ل يكون المكتوب سل فيعرض سليمان وهكذا
  18. بداية هذا الامر لا يشكل اي مانع بل يمكن البحث او الفلترة وبالتالي لا داعي لاي تعديلات الان للفلترة نحتاج الى اضافة حقل غير منضم كما اشار دكتور حسين وانا اسميت الحقل tx_name وسوف اتحدث عن طريقتين للوصول للمطلوب الطريقة الاولىالبحث بعد التحديث وهذا الافضل وخصوصا عند تقسيم البرنامج لعمل اكثر من مستخدم في الوقت نفسه ولتنفيذ الطريقة في حدث بعد التحديث للحقل tx_name نضع الامر التالي DoCmd.ApplyFilter , "[cus_name]= '" & [tx_name] & " '" ولو اردنا البحث بجزء من الاسم نستخدم * للدالة على الاحرف المفقودة ليكون الامر DoCmd.ApplyFilter , "[cus_name]like '*" & [tx_name] & "*'" الطريقة الثانية وهي الفلترة اثناء الكتابة وهي مطلوب صاحب المشاركة وهنا في حدث عند التغيير للحقل tx_name نضع الامر Dim strWhere As String Dim strtxt As String If Me.tx_name.Text <> "" Then strtxt = Me.tx_name.Text strWhere = "[cus_name] like '*" & strtxt & "*'" Me.Filter = strWhere Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = False End If Me.tx_name.SetFocus Me.tx_name.SelStart = Len(Me.tx_name.Text) وللتحكم في موقع المؤشر نضع في حدث عند مفتاح اعلى الامر التالي If KeyCode = 32 Then Me.tx_name.Value = Me.tx_name.Text & Chr$(32) Me.tx_name.SelStart = Len(tx_name.Text) End If الملف مرفق اخونا الشايب Database1.accdb
  19. معلومة جديدة وقيمة الف شكر استاذنا الغالي اخونا الشايب
  20. موضوع يهم شريحة كبيرة من مرتادي الموقع وجهد كبير من اساتذنا الكبار ابو خليل وضاحي بما اني مبتدئ وغير متخصص فاعتقد وبناء فهمي القاصر ان هناك حمايتان في ثنايا الموضوع حماية للبيانات من اي تعديل او حذف او اضافة او استعلام غير مصرح به والحماية الاخرى تتعلق بمنع نسخ البرنامج او الاستفادة منه لغير المصرح لهم اخيرا اعتقد ان بعض مصممي البرامج يهتم بموضوع الحماية الثانية اكثر من اهتمامه بتصحيح الاخطاء او اختبار البرنامج بشكل مكثف قبل بيعه وبالذات البرامج التي تحتوي على اكواد من كل بحر قطرة مع تمنياتي للجميع بالتوفيق اخونا الشايب
×
×
  • اضف...

Important Information