شايب
03 عضو مميز-
Posts
322 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
2
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو شايب
-
اخفاء واظهر الحقول باستخدام If لا تعمل عند أختيار معين
شايب replied to زياد الحسناوي's topic in قسم الأكسيس Access
ياهلا ومرحبا باستاذنا الفاضل محمد 🌹 -
استمتعت بمشاهدة العرض التوضيحي والبرنامج جميل واضح ويمكن لاي شخص العمل عليه بكل سهولة لدي بعض الامور البسيطة وتبقى وجهة نظر شخصية لاخينا شايب في شاشة اضافة مشترك لماذا يوجد حقل للديانة في بعض الحقول استخدمت قناع الادخال وهو امر قد يكون مزعج لبعض المستخدمين بالنسبة لمصدر القائمة البلد ولكل القوائم من رأي اخينا شايب عدم استخدام قائمة القيم واستخدم الجداول كمصدر واذا كان لدينا عدد كبير من القوائم ممكن استخدام جدول واحد ونتحكم في المصدر لكل قائمة عن طريق الاستعلام بمعيار محدد مسبقا لكل مجموعة من البيانات بالنسبة لصورة المشترك اعتقد انك استخدمت حقل من نوع مرفق وهذا الامر سوف يسبب زيادة حجم قاعدة البيانات والافضل حفظ الصور في مجلد اخونا الشايب
-
اخفاء واظهر الحقول باستخدام If لا تعمل عند أختيار معين
شايب replied to زياد الحسناوي's topic in قسم الأكسيس Access
نعم يؤدي الغرض ولكننا استخدمنا التحديث عن طريق مصدر السجلات هذا في بداية الامر ولكن بعد الاستخدام الفعلي في بيئة عمل حقيقية وبعد الاستماع ومناقشة المستفيدين اضطررنا الى اضافة جدول ثالث للتفاصيل ولم نعد نحتاج الى تحديث وانما اضافة للجدول التابع والهدف من ذلك لتتبع الاجراء للمعاملة من بدايتها للنهاية بالتاريخ والوقت لكل اجراء وايضا تفصيل الاجراء ... الخ الحقيقة اي عمل لا يخلو من نقص ومن اخطاء ويتم تداركها بعد ذلك واحيانا نعمل برنامج وفقا لمتطلبات الجهة وبعد الانتهاء نجد ان الطلبات اختلفت وما نعمله من تعديلات واضافات يفوق الجهد المبذول في بناء البرنامج و لذلك اسباب عديدة ولكن لا اود ان استغرق في التفاصيل مع الاعتذار لصاحب المشاركة فقد خرجنا عن المسار اخونا الشايب -
شاركونا التهنئة بارتقاء اخوين عزيزين على قلوبنا الى مجموعة الخبراء
شايب replied to ابوخليل's topic in قسم الأكسيس Access
الستر زين ياعمنا العود 🌹 -
اخفاء واظهر الحقول باستخدام If لا تعمل عند أختيار معين
شايب replied to زياد الحسناوي's topic in قسم الأكسيس Access
لو كنت مبرمج لاختصرت هذة الحقول الثمانية الى اثنين فقط واحد مربع تحرير وسرد يتغير مصدره بناء على ما يتم اختياره والاخر حقل نصي ييستخدم للاضافة او التعديل وفقا لطبيعة البرنامج ويمكن التعامل مع اكثر من جدول و حينها يمكن اختصار اسطر من الاكواد والاستفاد من خاصية tag متغييرة بالكود لتحديد الجدول الهدف او بدون علامة باستخدام متغيير رقمي في رأس النموذج اخيرا البعض من المبرمجين يلزموا انفسهم بما لا يلزم وهنا اتذكر قبل سنوات عملنا برنامج للاتصالات الادارية بالوزارة مكون من جدول رئيسي واحد وجدول مساعد واحد للقيم الثابتة ورقم واحد للمعاملة من البداية للنهاية ووجدنا انتقاد وتشكيك مع ذلك نجح البرنامج واستمر العمل به لسنوات الى ان تركت العمل مع ذلك فان الاخ شايب يفضل المتابعة بصمت فقد ادركه الصباح اخونا الشايب -
شاركونا التهنئة بارتقاء اخوين عزيزين على قلوبنا الى مجموعة الخبراء
شايب replied to ابوخليل's topic in قسم الأكسيس Access
اختيار موفق مع تمنياتي لهم بالتوفيق -
شرف كبير لاخينا شايب ان تكون وجهة نظره مشابهة لوجهة نظر اساتذتنا الكبار والخبراء الافاضل احسن الله اليكم فنحن نتعلم و نكتسب الخبرة من متابعة ردودكم اخونا الشايب
-
اخونا شايب يعتقد ان حقل واحد يمكن ان يقوم بالمطلوب وخصوصا ان البحث سيكون في حقل الاسم وحتى لو اردنا البحث في اكثر من حقل او كافة الحقول يكفي حقل واحد للمعيار ويمكن الفلترة بمعيار في الاستعلام كما فعل استاذنا الخبير او الفلترة بالكود او البحث عن السجل المطابق بدون فلترة وانتقال المؤشر للسجل المطابق او حتى بدون الحاجة لحقل المعيار اذا استخدمنا نماذج غير منضمة ولكن هذا امر اخر اخونا الشايب
-
اختيارين من قائمة يتم فلترة اختيارهم فى قائمة اخرى
شايب replied to ahmad soliman's topic in قسم الأكسيس Access
الاخ العزيز شايب لا يهتم لامر افضل اجابة بالنسبة لوضع مثال الحقيقة انه في الفترة الاخير هناك عدد كبير من المشاركات تضع وصف مشكلة بدون مرفق او مرفق بدون بيانات والادهى من ذلك عدم متابعة الموضوع وهذا امر محبط اخيرا فكرة الاخ شايب كما اشار سابقا عمل جدولين بعلاقة واحد الى متعدد وبدون الحاجة حقل نعم لا ولا حاجة ايضا لاستعلام تحديث ثم عمل كود بسيط للمرور على ماتم اختياره من مربع القائمة واستخدامه كمعيار استعلام كمصدر للقائمة المنسدلة 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 -
اختيارين من قائمة يتم فلترة اختيارهم فى قائمة اخرى
شايب replied to ahmad soliman's topic in قسم الأكسيس Access
مشاركة مع الاستاذ خليفة اعتقد ان الافضل ان يكون لدينا جدول للمدن وجدول اخر للاحياء ونعمل مربع قائمة متعددة الاختيار لاسماء المدن وقائمة منسدلة لاسماء الاحياء يتم تحديد مصدرها من خلال كود استعلام بمعيار in اخونا الشايب -
مع ان خونا شايب مبتدئ في الاكسس والحاسب بشكل عام واغلب الحوار هنا بين محترفين واساتذة ولم يستوعب منه الا اقل القليل الا انه يعتقد ان الملف التنفيذي يمكن استخراج محتوياته لذا بعض المحترفين يقومون بعمل ملف تنفيذي مشفر ومضغوط لتصعيب عملية الفك ومع ذلك فهناك ادوات تقوم بفك التشفير والضغط ولكن هذا موضوع كبير ويحتاج الى خبرات في الهندسة العكسية بالنسبة للملف برنامج بيع.accde لم يعمل معي لكوني استخدم اصدار 64 بت اخيرا الاخ شايب لم يقم بتنصيب البرنامج لكونه لا يقوم بتشغيل اي ملف exe حتى لو كان من اخ عزيز وثقه مثل استاذنا ودكتورنا المبجل د حلبي فهو يتمثل بالقول يؤتى الحذر من مكمنه لذا اكتفى باستخلاص ملف الاكسس اخونا شايب
-
بالتوفيق والشكر لله وحده مع ذلك فان الاخ العزيز شايب سبق ان اشار في موضوع سابق ان الفلترة اثناء الكتابة ليست الخيار الافضل وخصوصا عند وجود عدة مستخدمين للبرنامج اضافة الى مشاكل في ازاحة الاحرف اما بالنسبة لي لو كنت مبرمج لاخترت الفلترة بعد التحديث و استخدمت قائمة منسدلة قابلة للفلترة عند كتابة كل حرف وحينها ساكون جمعت بين الفكرتين بعد التحديث لسجلات الجدول وعند التغيير للقائمة المنسدلة ولكن لو حرف امتناع لامتناع فلا انا مبرمج ولن اعمل برنامج اخونا الشايب
-
في مرفقك الاخير لا يوجد سجل باسم سليمان فقط سعيد ومازن وحسن وحسين وانا اضفت محمد ومحمود و البحث يعمل جرب الان Database1(1).accdb
-
جربت عمليات البحث عدة مرات ولم اواجه هذه المشكلة واتمنى اذا احد اخر جرب يفيدنا هذا الامر اذا كان النموذج مستمر اما في مثالك النموذج مفرد وعند كتابة الحرف الاول يقوم بعرض اول اسم يطابق الحرف مثلا كتبت س يكون اول اسم معروض سعيد ولكن عند كتابة حرف ل يكون المكتوب سل فيعرض سليمان وهكذا
-
بداية هذا الامر لا يشكل اي مانع بل يمكن البحث او الفلترة وبالتالي لا داعي لاي تعديلات الان للفلترة نحتاج الى اضافة حقل غير منضم كما اشار دكتور حسين وانا اسميت الحقل 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
-
معلومة جديدة وقيمة الف شكر استاذنا الغالي اخونا الشايب
-
موضوع يهم شريحة كبيرة من مرتادي الموقع وجهد كبير من اساتذنا الكبار ابو خليل وضاحي بما اني مبتدئ وغير متخصص فاعتقد وبناء فهمي القاصر ان هناك حمايتان في ثنايا الموضوع حماية للبيانات من اي تعديل او حذف او اضافة او استعلام غير مصرح به والحماية الاخرى تتعلق بمنع نسخ البرنامج او الاستفادة منه لغير المصرح لهم اخيرا اعتقد ان بعض مصممي البرامج يهتم بموضوع الحماية الثانية اكثر من اهتمامه بتصحيح الاخطاء او اختبار البرنامج بشكل مكثف قبل بيعه وبالذات البرامج التي تحتوي على اكواد من كل بحر قطرة مع تمنياتي للجميع بالتوفيق اخونا الشايب
-
مطلوب فضلا ان يكون الترقيم مشابه للتلقائي مع تعديل
شايب replied to ابو طارق سعيد's topic in قسم الأكسيس Access
اولا ابين عدم الاقتناع بالفكرة ثانيا ممكن تنفيذ الفكرة ولكن نحتاج الى عدة امور وسوف اتحدث عنها على شكل نقاط نحتاج الى ترقيم تلقائي بالكود وممكن استخدام دالة dmax بشروطها المعروفة للترقيم مع تقييد عملها عند ادخال الرقم المطلوب بما ان الحقل مرتبط بعلاقة رأس باطراف فاننا نحتاج الى ان تكون العلاقة تكامل مرجعي وتتالي تحديث حتى يتم تغيير رقم الحقل الابن في الجدول المرتبط المشكلة التالية التي ستواجها بما ان الحقل الاساسي المطلوب تغييره هو حقل مفتاح اساسي ومفهرس وغير قابل للتكرار فلن يقبل اكسس التغيير المتتالي ولن تنفذ الحلقة التكرارية وسوف تظهر لنا رسالة خطأ مما يتطلب منا ان نبدأ الحلقة التكرارية من اخر سجل ثم تتوقف الحلقة بعد تعديل الحقل المطلوب اي اذا اردنا حشر عميل في السجل رقم 4 وعدد السجلات 10 مثلا فسوف يعدل 10 الى 11 ثم 9 الى 10 نزولا الى الحقل 4 يتم اضافة المورد بشكل تلقائي بمجرد الانتهاء من اعادة الترقيم والافضل ان تكون الاضافة عن طريق مصدر السجلات هذه مجرد افكار اضعها لمن يريد تقديم العون لصاحب المشاركة ولن اقوم بتنفيذها لعدم الاقتناع لكوني اعتبر التعدي على اي حقول اساسية مغهرسة خطأ وهو رأي شخصي غير ملزم استخدمت للتعديل مصدر السجلات واستخدمت للحقلة التكرارية rs.MoveLast Do While Not rs.BOF rs.Edit وللانتقال للسجل السابق rs.MovePrevious اخيرا الاخ شايب يقدم افكار وليس معني بتقديم حلول او دعم فني اخونا الشايب -
بالتوفيق اخي لكن لابد من معرفة بعض الامور اذا كان الحقل المراد تغييره جزء من علاقة فلن يعمل الامر الا بعد الغاء العلاقة "ممكن عملها بالكود ايضا" ولكن ماهو مصير البيانات وما مصير الطرف الاخر في العلاقة قد تفقد بعض البيانات عند تغيير نوع الحقل مثلا لو ان لدينا حقل نصي يحتوي على 10 ارقام وقمنا بتحويله الى رقم فسوف تبقى الارقام اما اذا كانت اكثر من ذلك سيتم خذف كافة الارقام وكذلك الحال مع اي كتابة نصيه عند تحويل الحقل الى تاريخ او رقم ستفقد البيانات ولتجربة ذلك اعمل حقل نصي ثم استخدم الامر التالي لتحويله الى رقمي CurrentDb.Execute "ALTER TABLE data ALTER COLUMN idnumber LONG" في جميع الاحوال اخونا شايب يعتقد ان الجداول هي العنصر الاهم في قاعدة واعدادها بشكل صحيح في بداية المشروع يجنبا الكثير من عناء التصحيح او الحاجة الى اكواد ذات خطورة عالية على الجداول ولا يقتصر الامر على ما تم الاشارة اليه ولكن البلاغة الايجاز وهنا يتوقف اخونا شايب ويدع الامر للمختصين فمن تحدث في غير فنه اتى بالعجائب اخونا الشايب
-
ضع الامر التالي CurrentDb.Execute "ALTER TABLE data ALTER COLUMN idnumber DateTime" الامر التالي يغير تنسيق الحقل CurrentDb.TableDefs("data").Fields("edate").Properties("Format") = "yyyy-mm-dd" الملف مرفق اخونا الشايب تغيير نوع البيانات.accdb
-
و ايضا عندما نضطر الى تقسيم جدول وبالتالي يتطلب وجود علاقة 1 الى 1 هذا ما اشرت اليه في ردي السابق ⬇️ العلاقة تكون بين الجداول ولها ثلاث انواع اما الصلة او الضم فلها اربعة انواع داخلي او خارجي او متقاطع او غير متساوي ولكل منها استخدامه وهذه الانواع الاربعة متعلقة بعرض البيانات ومقترنه بالاستعلام او مابني على الاستعلام من نموذج او تقرير او استعلام اخر او قائمة او قوائم مرتبطة ونتوقف هنا وندع الامر لاهل الاختصاص الشايب
-
وهذا ايضا ما يعتقده اخونا الفاضل شايب فلادخال البيانات اذا كان لدينا بيانات مرتبطة بسجل رئيسي او رئيسي برئيسي او فرعي بفرعي فان الصلة في الاستعلام لا تغني عن العلاقات للتكامل والتتالي والمرجعية اما الصلة بانوعها فلعرض البيانات وفقا لنوع الصلة المستخدمة وبالتالي الصلة في الاستعلام مؤقته ومقترنه بالاستعلام ولا تغني عن العلاقة الدائمة وبالتالي فان تفضيل الربط بعلاقة او صلة يختلف باختلاف الهدف منه والله اعلم اخونا الشايب
-
لماذا لا تنصح بعمل العلاقة بين الجداول و تنصح ان تكون في الاستعلام وما المشكلة في ذلك وهل استخدام العلاقة او بالمعنى الاصح الصلة بين جدولين او اكثر في الاستعلام يحقق لنا المميزات الثلاث للعلاقات بين الجداول وهي التكامل المرجعي وتتالي التحديث وتتالي الحذف بين السجلات والاستفسار الاخير هل الصلة في الاستعلام تغني دائما عن العلاقات بين الجداول واعتذر عن كثرة الاسئلة فاخونا العزيز شايب يريد التعلم واكتساب المعرفة من اساتذنا الاجلاء والخبراء الافاضل اخونا الشايب