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

شايب

03 عضو مميز
  • Posts

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

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

  • Days Won

    2

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

  1. شرف كبير لاخينا شايب ان تكون وجهة نظره مشابهة لوجهة نظر اساتذتنا الكبار والخبراء الافاضل احسن الله اليكم فنحن نتعلم و نكتسب الخبرة من متابعة ردودكم اخونا الشايب
  2. اخونا شايب يعتقد ان حقل واحد يمكن ان يقوم بالمطلوب وخصوصا ان البحث سيكون في حقل الاسم وحتى لو اردنا البحث في اكثر من حقل او كافة الحقول يكفي حقل واحد للمعيار ويمكن الفلترة بمعيار في الاستعلام كما فعل استاذنا الخبير او الفلترة بالكود او البحث عن السجل المطابق بدون فلترة وانتقال المؤشر للسجل المطابق او حتى بدون الحاجة لحقل المعيار اذا استخدمنا نماذج غير منضمة ولكن هذا امر اخر اخونا الشايب
  3. الاخ العزيز شايب لا يهتم لامر افضل اجابة بالنسبة لوضع مثال الحقيقة انه في الفترة الاخير هناك عدد كبير من المشاركات تضع وصف مشكلة بدون مرفق او مرفق بدون بيانات والادهى من ذلك عدم متابعة الموضوع وهذا امر محبط اخيرا فكرة الاخ شايب كما اشار سابقا عمل جدولين بعلاقة واحد الى متعدد وبدون الحاجة حقل نعم لا ولا حاجة ايضا لاستعلام تحديث ثم عمل كود بسيط للمرور على ماتم اختياره من مربع القائمة واستخدامه كمعيار استعلام كمصدر للقائمة المنسدلة 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
  4. مشاركة مع الاستاذ خليفة اعتقد ان الافضل ان يكون لدينا جدول للمدن وجدول اخر للاحياء ونعمل مربع قائمة متعددة الاختيار لاسماء المدن وقائمة منسدلة لاسماء الاحياء يتم تحديد مصدرها من خلال كود استعلام بمعيار in اخونا الشايب
  5. اي ملف تنفيذي يمكن في كثير من الاحيان استخلاصة وتكون الصعوية بناء على نوع الضغط والتشفير المستخدم هي قناعات وبسبب كوني مبتدئ فانا اقدم مبدأ السلامة اما انتم اساتذتنا فقد لايشكل الموضوع مشكلة فلديكم القدرة على معالجة ما قد يحدث من مشكلات وتتبع اي تغييرات يقوم بعملها الملف التنفيذي
  6. مع ان خونا شايب مبتدئ في الاكسس والحاسب بشكل عام واغلب الحوار هنا بين محترفين واساتذة ولم يستوعب منه الا اقل القليل الا انه يعتقد ان الملف التنفيذي يمكن استخراج محتوياته لذا بعض المحترفين يقومون بعمل ملف تنفيذي مشفر ومضغوط لتصعيب عملية الفك ومع ذلك فهناك ادوات تقوم بفك التشفير والضغط ولكن هذا موضوع كبير ويحتاج الى خبرات في الهندسة العكسية بالنسبة للملف برنامج بيع.accde لم يعمل معي لكوني استخدم اصدار 64 بت اخيرا الاخ شايب لم يقم بتنصيب البرنامج لكونه لا يقوم بتشغيل اي ملف exe حتى لو كان من اخ عزيز وثقه مثل استاذنا ودكتورنا المبجل د حلبي فهو يتمثل بالقول يؤتى الحذر من مكمنه لذا اكتفى باستخلاص ملف الاكسس اخونا شايب
  7. بالتوفيق والشكر لله وحده مع ذلك فان الاخ العزيز شايب سبق ان اشار في موضوع سابق ان الفلترة اثناء الكتابة ليست الخيار الافضل وخصوصا عند وجود عدة مستخدمين للبرنامج اضافة الى مشاكل في ازاحة الاحرف اما بالنسبة لي لو كنت مبرمج لاخترت الفلترة بعد التحديث و استخدمت قائمة منسدلة قابلة للفلترة عند كتابة كل حرف وحينها ساكون جمعت بين الفكرتين بعد التحديث لسجلات الجدول وعند التغيير للقائمة المنسدلة ولكن لو حرف امتناع لامتناع فلا انا مبرمج ولن اعمل برنامج اخونا الشايب
  8. في مرفقك الاخير لا يوجد سجل باسم سليمان فقط سعيد ومازن وحسن وحسين وانا اضفت محمد ومحمود و البحث يعمل جرب الان Database1(1).accdb
  9. جربت عمليات البحث عدة مرات ولم اواجه هذه المشكلة واتمنى اذا احد اخر جرب يفيدنا هذا الامر اذا كان النموذج مستمر اما في مثالك النموذج مفرد وعند كتابة الحرف الاول يقوم بعرض اول اسم يطابق الحرف مثلا كتبت س يكون اول اسم معروض سعيد ولكن عند كتابة حرف ل يكون المكتوب سل فيعرض سليمان وهكذا
  10. بداية هذا الامر لا يشكل اي مانع بل يمكن البحث او الفلترة وبالتالي لا داعي لاي تعديلات الان للفلترة نحتاج الى اضافة حقل غير منضم كما اشار دكتور حسين وانا اسميت الحقل 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
  11. معلومة جديدة وقيمة الف شكر استاذنا الغالي اخونا الشايب
  12. موضوع يهم شريحة كبيرة من مرتادي الموقع وجهد كبير من اساتذنا الكبار ابو خليل وضاحي بما اني مبتدئ وغير متخصص فاعتقد وبناء فهمي القاصر ان هناك حمايتان في ثنايا الموضوع حماية للبيانات من اي تعديل او حذف او اضافة او استعلام غير مصرح به والحماية الاخرى تتعلق بمنع نسخ البرنامج او الاستفادة منه لغير المصرح لهم اخيرا اعتقد ان بعض مصممي البرامج يهتم بموضوع الحماية الثانية اكثر من اهتمامه بتصحيح الاخطاء او اختبار البرنامج بشكل مكثف قبل بيعه وبالذات البرامج التي تحتوي على اكواد من كل بحر قطرة مع تمنياتي للجميع بالتوفيق اخونا الشايب
  13. اولا ابين عدم الاقتناع بالفكرة ثانيا ممكن تنفيذ الفكرة ولكن نحتاج الى عدة امور وسوف اتحدث عنها على شكل نقاط نحتاج الى ترقيم تلقائي بالكود وممكن استخدام دالة dmax بشروطها المعروفة للترقيم مع تقييد عملها عند ادخال الرقم المطلوب بما ان الحقل مرتبط بعلاقة رأس باطراف فاننا نحتاج الى ان تكون العلاقة تكامل مرجعي وتتالي تحديث حتى يتم تغيير رقم الحقل الابن في الجدول المرتبط المشكلة التالية التي ستواجها بما ان الحقل الاساسي المطلوب تغييره هو حقل مفتاح اساسي ومفهرس وغير قابل للتكرار فلن يقبل اكسس التغيير المتتالي ولن تنفذ الحلقة التكرارية وسوف تظهر لنا رسالة خطأ مما يتطلب منا ان نبدأ الحلقة التكرارية من اخر سجل ثم تتوقف الحلقة بعد تعديل الحقل المطلوب اي اذا اردنا حشر عميل في السجل رقم 4 وعدد السجلات 10 مثلا فسوف يعدل 10 الى 11 ثم 9 الى 10 نزولا الى الحقل 4 يتم اضافة المورد بشكل تلقائي بمجرد الانتهاء من اعادة الترقيم والافضل ان تكون الاضافة عن طريق مصدر السجلات هذه مجرد افكار اضعها لمن يريد تقديم العون لصاحب المشاركة ولن اقوم بتنفيذها لعدم الاقتناع لكوني اعتبر التعدي على اي حقول اساسية مغهرسة خطأ وهو رأي شخصي غير ملزم استخدمت للتعديل مصدر السجلات واستخدمت للحقلة التكرارية rs.MoveLast Do While Not rs.BOF rs.Edit وللانتقال للسجل السابق rs.MovePrevious اخيرا الاخ شايب يقدم افكار وليس معني بتقديم حلول او دعم فني اخونا الشايب
  14. بالتوفيق اخي لكن لابد من معرفة بعض الامور اذا كان الحقل المراد تغييره جزء من علاقة فلن يعمل الامر الا بعد الغاء العلاقة "ممكن عملها بالكود ايضا" ولكن ماهو مصير البيانات وما مصير الطرف الاخر في العلاقة قد تفقد بعض البيانات عند تغيير نوع الحقل مثلا لو ان لدينا حقل نصي يحتوي على 10 ارقام وقمنا بتحويله الى رقم فسوف تبقى الارقام اما اذا كانت اكثر من ذلك سيتم خذف كافة الارقام وكذلك الحال مع اي كتابة نصيه عند تحويل الحقل الى تاريخ او رقم ستفقد البيانات ولتجربة ذلك اعمل حقل نصي ثم استخدم الامر التالي لتحويله الى رقمي CurrentDb.Execute "ALTER TABLE data ALTER COLUMN idnumber LONG" في جميع الاحوال اخونا شايب يعتقد ان الجداول هي العنصر الاهم في قاعدة واعدادها بشكل صحيح في بداية المشروع يجنبا الكثير من عناء التصحيح او الحاجة الى اكواد ذات خطورة عالية على الجداول ولا يقتصر الامر على ما تم الاشارة اليه ولكن البلاغة الايجاز وهنا يتوقف اخونا شايب ويدع الامر للمختصين فمن تحدث في غير فنه اتى بالعجائب اخونا الشايب
  15. ضع الامر التالي CurrentDb.Execute "ALTER TABLE data ALTER COLUMN idnumber DateTime" الامر التالي يغير تنسيق الحقل CurrentDb.TableDefs("data").Fields("edate").Properties("Format") = "yyyy-mm-dd" الملف مرفق اخونا الشايب تغيير نوع البيانات.accdb
  16. و ايضا عندما نضطر الى تقسيم جدول وبالتالي يتطلب وجود علاقة 1 الى 1 هذا ما اشرت اليه في ردي السابق ⬇️ العلاقة تكون بين الجداول ولها ثلاث انواع اما الصلة او الضم فلها اربعة انواع داخلي او خارجي او متقاطع او غير متساوي ولكل منها استخدامه وهذه الانواع الاربعة متعلقة بعرض البيانات ومقترنه بالاستعلام او مابني على الاستعلام من نموذج او تقرير او استعلام اخر او قائمة او قوائم مرتبطة ونتوقف هنا وندع الامر لاهل الاختصاص الشايب
  17. وهذا ايضا ما يعتقده اخونا الفاضل شايب فلادخال البيانات اذا كان لدينا بيانات مرتبطة بسجل رئيسي او رئيسي برئيسي او فرعي بفرعي فان الصلة في الاستعلام لا تغني عن العلاقات للتكامل والتتالي والمرجعية اما الصلة بانوعها فلعرض البيانات وفقا لنوع الصلة المستخدمة وبالتالي الصلة في الاستعلام مؤقته ومقترنه بالاستعلام ولا تغني عن العلاقة الدائمة وبالتالي فان تفضيل الربط بعلاقة او صلة يختلف باختلاف الهدف منه والله اعلم اخونا الشايب
  18. لماذا لا تنصح بعمل العلاقة بين الجداول و تنصح ان تكون في الاستعلام وما المشكلة في ذلك وهل استخدام العلاقة او بالمعنى الاصح الصلة بين جدولين او اكثر في الاستعلام يحقق لنا المميزات الثلاث للعلاقات بين الجداول وهي التكامل المرجعي وتتالي التحديث وتتالي الحذف بين السجلات والاستفسار الاخير هل الصلة في الاستعلام تغني دائما عن العلاقات بين الجداول واعتذر عن كثرة الاسئلة فاخونا العزيز شايب يريد التعلم واكتساب المعرفة من اساتذنا الاجلاء والخبراء الافاضل اخونا الشايب
  19. المفروض جدول access يقبل الى 255 حقل في الجدول بالنسبة لملفك اعمل ضغط واصلاح وسوف يقبل اضافة حقول كما يمكن عمل قاعدة جديد واستورد اليها جداولك وايضا سوف يقبل اضافة حقول اخونا شايب
  20. اتفق معك لابد ان يكون هناك علاقة بين الجدولين من نوع واحد الى متعدد اما الحل المقدم من قبل اخونا شايب فيتعلق بمعالجة معيار الاستعلام فقط عندما جعل النموذج فرعي وهذا الحل ايضا ممكن تحسينه بالاستغناء عن استعلام q2 وجعل المعيار متغير يتم تحديده وفقا لكون فتح النموذج فرعي او مستقل ويتم تحديد مصدر القائمة الثانية عن طريق الكود اخونا الفاضل شايب
  21. طالما اصبح النموذج فرعي فلابد من وضع المسار كاملا بدأ بالنموذج الرئيسي [Forms]![Form2]![Form1].[Form]![Combo6] الملف مرفق New Microsoft Access Database.accdb
  22. ممكن نستخدم الامر التالي DoCmd.OpenReport "r_1", acViewPreview DoCmd.PrintOut acPages, [Field1], [Field2] الملف مرفق يعد اضافة بيانات من قاعدة اخرى وعمل تقرير لغرض التجربة اخونا الشايب Patient Sample Tracking(1).accdb
  23. SetOrderBy للماكرو نفتج شاشة انشاء ماكرو ونختار SetOrderBy وفي خانة ترتيب حسب ضع id DESC او id ASC حسب رغبتك تصاعدي او تنازلي id هو الحقل الذي نرغب تطبيق الفرز عليه اما في الكود فيكون الامر DoCmd.SetOrderBy "[id] asc" اخونا الشايب
×
×
  • اضف...

Important Information