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

Gamal.Saad

الخبراء
  • Posts

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

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

  • Days Won

    3

كل منشورات العضو Gamal.Saad

  1. @Amr Ashraf أستاذنا شكرا على التشجيع ههههه أنا خايف تكون جربت 1 + 1 ولم تجرب المرفق عاوزين نعرف لو فيه مشاكل ولا لأ ؟
  2. سيبك من الأجانب دول تفكيرهم تقليدي 1 + 1 = 2 وده طبعا مينفعش معانا لازم تبتكر يعني مثلا 1+1 = 3 - 1 المهم فكرة الدالة على السريع إنها بتشوف القيم المسجلة في المربعات الثلاثة مجتمعة وبناءا على تلك القيم يتم انشاء كود استعلام ثم نجعله مصدر النموذج لذلك لكي تطبق الدالة عليك أولا أن تختار مصدر بيانات النموذج هو الجدول وثانيا تكتب الكود التالي في محرر الفيجوال بيسك وجرب واعمل أكثر من تجربة مرة قيمة خالية هنا ومرة قيمتين خاليتين هناك وهكذا Option Compare Database Dim strSQL, a, b, c As String Private Sub SectionSearch_AfterUpdate() rs End Sub Private Sub StatusSearch_AfterUpdate() rs End Sub Private Sub UserSearch_AfterUpdate() rs End Sub Function rs() strSQL = "" a = strSQL & IIf(Nz(Me.UserSearch, 0) = 0, "", " (Table1.User) Like '*" & "" & Me.UserSearch & "" & "*'") b = strSQL & IIf(Nz(Me.SectionSearch, 0) = 0, "", " (Table1.Section) Like '*" & "" & Me.SectionSearch & "" & "*'") c = strSQL & IIf(Nz(Me.StatusSearch, 0) = 0, "", " (Table1.Status) Like '*" & "" & Me.StatusSearch & "" & "*'") If Nz(Me.UserSearch, 0) = 0 And Nz(Me.SectionSearch, 0) = 0 And Nz(Me.StatusSearch, 0) = 0 Then Me.RecordSource = "SELECT Table1.ID, Table1.User, Table1.Section, Table1.Status FROM Table1; " Else strSQL = "SELECT Table1.ID, Table1.User, Table1.Section, Table1.Status FROM Table1 WHERE " If Nz(Me.UserSearch, 0) <> 0 Then strSQL = strSQL & a If Nz(Me.SectionSearch, 0) <> 0 Then strSQL = strSQL & " and " & b If Nz(Me.StatusSearch, 0) <> 0 Then strSQL = strSQL & " and " & c Else If Nz(Me.StatusSearch, 0) <> 0 Then strSQL = strSQL & " and " & c End If Else If Nz(Me.SectionSearch, 0) <> 0 Then strSQL = strSQL & b If Nz(Me.StatusSearch, 0) <> 0 Then strSQL = strSQL & " and " & c Else If Nz(Me.StatusSearch, 0) <> 0 Then strSQL = strSQL & c End If End If Me.RecordSource = strSQL End If Me.Requery End Function
  3. تمام الحمد لله أنا وصلت لنسبة فهم مرتفعة تتجاوز 50% وهذا يكفي لبدء التجربة وسأوافيك بالجديد إن شاء الله
  4. ههههههه مش عارف أنت مش محظوظ معايا ليه على العموم الملف كان عندي شغال ولما أنا غيرت الاسم لكي ألأرفعه لك لم أنتبه لوجود مسافات بالاسم الجديد والمسافات تسبب مشكلة عند استخدام معاملات برنامج الضغط لذلك حذفت المسافات واشتغل عندي طبيعي النسخ_الاحتياطي.rar
  5. باستخدام الاستعلام يمكنك تحديد الاسماء المكررة وعدد مرات التكرار كما بالصورة http:// وهناك معالج انشاء الاستعلام يمكنك انشاء استعلام باختيار نوع استعلام القيم المكررة Find duplicate query wizard فعلا أنا لم أستخدم دالة استخراج وفصل اسم الاب الموجودة في مرفقك الأول وعملت كود جديد
  6. هل تقصد : أن طريقة حساب متوسط السعر لن تعمل لأصناف المكونات مثل الماوس ولوحة المفاتيح والهادر دسك وخلافه وستعمل فقط مع الاصناف المسجلة في جدول المنتجات في حالة وجودها في جدول الحركة النقطة دي مبهمة كما قلت لك سأبدأ بالدالة الحسابية التي تبدأ مع جدول الحركة لذلك أخبرني لو السجل به صنف مكونات منتج معين وقمنا بالاضافة أو الخصم ولو السجل به منتج رئيسي وقمنا بالاضافة أو الخصم ودور الدالة الحسابية التي تحسب متوسط السعر هل تحسب للجميع أم ماذا ؟ واعذرني فالموضوع كله تنظيمي وتخطيطي لا أكثر ومن السهل تطبيق المعادلات واحضار القيم لكن طبقا لطريقة شرح عملية بأصناف و أرقام حسابية
  7. @ابوخليل بعد إذن أستاذنا @رمهان وبعد إذن أستاذنا @alzahrani07 أستاذ سيادتك ما تريد فلتر وما تريد قيمة افتراضية فهل تريد حل يعتمد على استخدام دالة Function وتؤدي طلبك بدون فلتر وبدون استبدال قيم ؟ وتعتمد على تكوين استعلام مخصص لطلبك ويمكن أن تبحث بحث متعدد للثلاثة مربعات بحث معا أو فرادي أو حسب ما تريد الجمع بينهم وأنا أريد أن أعرف رأيك كي لا أضيع الوقت في الدالة ثم تقول لي لا أريد هذه الطريقة
  8. حاول تكون أي طريقة تبدأ وتعتمد على الدالة الحسابية السابق عملها ثم نقوم بدخال تعديلات عليها
  9. اسم برنامجك مميز هههههههه المفروض مصدر البيانات يكون مربع النص الذي تكتب فيه وليس العنوان المرافق لمربع النص مستخدم 2.rar
  10. أعتقد أهم مشكلة نبدأ بيها هي هذه النقطة هههههههه ووعد الحر دين عليه تمام تمام هحاول إن شاء الله أطبق كلامك على ملف تقييم 6 وزي ما أنت قلت كلها تجارب وتعديلات مفيش حاجة فنية مستحيلة لكن اليوم عندي الوقت ضيق لذلك أعطني وقتا طوال اليوم وأقرب تعديل سأوافيك به إن شاء الله
  11. جرب المرفق النسخ_الاحتياطي 2 .rar
  12. أوك تقريبا أنا أشعر أني أفهمك لكن شعور مش أكيد بمعنى لو المنتج مثلا جهاز كمبيوتر غير موجود سعر له سنتبع الطريقة القديمة لحساب السعر ثم نسجل السعر في جدول المنتجات وفي المرة التالية نستعين بهذا الرقم وهو عبارة عن متوسطات أسعار مكوناته لحساب القيمة أليس كذلك ؟ طيب بالنسبة للمكونات الفرعية للمنتج زي لوحة المفاتيح مثلا فين هيتسجل سعرها ؟ هل في جدول المنتجات زي جهاز الكمبيوتر ؟ على العموم جرب المرفق وممكن نعدل عادي 2.rar
  13. هلا أخي أرجو أن تلتمس لي وللزملاء العذر فلديك جدول باسم Ded_K4_In وأنت ذكرت جدول K4_History فما علاقة الجدولين ببعض؟ وأين التاريخ الذي تقصده؟ شو اسم الحقل المسجل به التاريخ؟ لم أجد أي تواريخ مسجلة بالجداول وأرجو ارفاق مثال يحتوى فقط على النماذج والاستعلامات والجداول والتقارير التي تخدم طلبك حتى لا يتشتت من يريد مساعدتك وتقبل تحياتي وكل عام وأنتم بخير
  14. تمام تمام الحمد لله فهمت برغم أن ملف الاكسل الارقام والخامات مش مطابقة لنفس ملف الأكسس على العموم ينقص فقط استعلام أخير للتحديث وسأرفع لك الملف إن شاء الله لتجربته لكن بعد عودتي من العمل وإن شاء الله خير
  15. زين علشان أتأكد أني فهمت في مثالك: المطلوب قيمة السعر في جدول المنتجات field: price ________ table: products وهذا يساوي آخر متوسط سعر لكل مكون من مكونات هذا المنتج مضروباً في العدد الموجود بالجدول بوم field: con____________ table: Bom ثم نجمع ما سبق اذا كان فهمي خطأ فأرجو التوضيح بأرقام حسابية من خلال التطبيق على المثال السابق ارفاقه أو مثال آخر مع توضيح العدد 0.0002083335 الموجود بجدول بوم هو ناتج ايه ؟
  16. مشكور أخي محمد بك زينة شباب المنصورة أنا أتمنى طبعا من الله التوفيق لك والمساعدة سواء عن طريقي أو طريق أساتذة المنتدى المحترفين لكن نبدأ بطلبك الأول حيث عندي استفسارين: واعذرني بسبب تداخل الكلمات الانجليزية مع العربية وصعوبة ربطهما بالنسبة لي حيث تبدو متداخلة عندي في المتصفح هل تريد حساب تكلفة الأصناف وذلك بالمعادلة الحسابية في جدول الحركة وهي حاصل ضرب متوسط السعر في الكمية الواردة أم حاصل ضرب متوسط السعر في العدد con ? وهل تريد حساب التكلفة للأصناف الرئيسية بجدول المنتجات أو بالأصناف الفرعية بجدول Bom ؟
  17. نفذت لك الفكرة التي أخبرتك عنها سابقا وهي الاستعانة بجدول وسيط لكن ارجو أن تنتبه إلى أن البرنامج يتعامل مع الاسماء التالية باعتبار أنهم ليسوا أخوة مثلا "حمدي الظايط طه عبدالرحمن" " فتحي الظايط طه عبدالرحمن محمد" نظرا لعدم كتابة الاسم الرباعي في أحدهم الناجحين3.rar
  18. أهااا تريد أن تكتب داخل vba لكل نموذج وليس أن يعمل الكود لكل النماذج ! يبدو أن النماذج لديك كثيرة للغاية على العموم سأجرب لك [Event Procedure] ولو توصلت لنتيجة سأوافيك إن شاء الله
  19. هههههههه لا أعلم من الذي يجب عليه أن يقولها أنا أم أنت للرفع + up
  20. ممتاز أفضل الأشياء عندك هي دعاؤك للغير استيعابك وتطويرك للحل بعدما تعرفه وفقك الله في برنامجك وجزاك بمثل ما دعوت به
  21. تمام وصلت الفكرة ولكي تحل المشكلة جرب تقوم بعمل جدول مؤقت لالحاق البيانات من استعلام1 ثم تقوم باستخراج الاسماء المتشابهة من الجدول المؤقت ثم تحدث الجدول الأصلي والنجاح مؤكد إن شاء الله لكن تبقى مشكلة تصحيح البيانات يعني تحذف المسافات الزائدة وتوحد الهمزات وخلافه في الجدول الأصلي قبل بداية الحل حتى تكون النتيجة صحيحة
  22. وعليكم السلام ورحمة الله وبركاته فعلا ويعطيك امكانية لاختيار الحقل الذي تريد البحث فيه ويظهر كل شيئ أمامك في النموذج أرفق ملف بسيط لبرنامج لك وسنحاول إن شاء الله التطبيق كما ترى الطريقة تتلخص في كود الفلترة التالي Private Sub comb_Search_AfterUpdate() On Error Resume Next Me.Filter = Nz(comb_Search, "id") & " Like ""*" & txt_Search & "*""": Me.FilterOn = True End Sub ''ÑãåÇä ''ÇæÝíÓäÇ Private Sub txt_Search_Change() On Error Resume Next FindAsType = txt_Search.Text Me.Filter = (Nz(comb_Search, "ID")) & " Like ""*" & FindAsType & "*""": Me.FilterOn = True txt_Search.SetFocus txt_Search = FindAsType txt_Search.SelStart = Len(FindAsType) End Sub الجزء الأول من الكود يقوم بالفترة اذا قمت باختيار حقل الفلترة وتستند الفلترة على القيم الموجودة في مربع البحث والجزء الثاني يقوم بالفلترة مع كتابة أي شيئ في مربع البحث لكن هناك خطأ في الكود التالي : Nz(comb_Search, "id") المفترض أنه اذا لم تقم باختيار حقل للبحث فإنه تلقائيا يختار الحقل ID وهو حقل غير موجود في مصدر البيانات مما تظهر معه رسالة خطأ وربما هذا ما يحدث معك عندما تحاول تطبيق المثال لذلك يجب أن تستبدله في مثالك المرفق وفي برامجك باسم الحقل الصحيح شيئ آخر : جرب استبدال الكود كاملاً بهذا الكود التالي وانظر الفرق Option Compare Database Private Sub comb_Search_AfterUpdate() Me.Filter = Nz(comb_Search, "CustomerID") & " Like ""*" & txt_Search & "*""": Me.FilterOn = True End Sub Private Sub txt_Search_Change() Me.Filter = (Nz(comb_Search, "CustomerID")) & " Like ""*" & txt_Search.Text & "*""": Me.FilterOn = True txt_Search.SetFocus txt_Search.SelStart = Len(txt_Search.Text) End Sub وأخيرا : ربما يكون عدم التطبيق في برامجك راجع إلى الفلترة في اللغة العربية حيث أن المثال لا يدعم الحروف المتشابهة مثل الهمزات إلى آخره ولكن طبعا يمكن تطويره سواء للبحث في داخل كل الحقول في نفس الوقت أو في دعم الحروف العربية المتشابهة لأنه مثال رائع وقوته في البساطة والفكرة الجديدة وشكرا جزيلا لمن قام بهذا العمل ولكل أساتذة المنتدى الأكفاء
  23. أعتقد أن الخطأ ليس في البرنامج ولكن في البيانات المدخلة وستجد اختلاف في كثير من أسماء أولياء الأمور المفترض أنهم متشابهين لكن بكل منهم حروف مختلفة أو زائدة والأفضل مرجعية اسم ولي الأمر لشيئ أكثر ثباتا مثل الرقم القومي لولي الأمر أثناء عملية ادخال البيانات أنا بس عندي استفسار بخصوص الدالة التجميعية هل وظيفتها هي استخراج اسم الأب فقط ؟ بمعنى آخر لماذا نفصل الاسم لأجزاء ثم نعيد تجميعه مرة أخرى لتكوين اسم الأب ؟ كان ممكن نكتفي باستبعاد الاسم الأول الممثل للطالب فقط ويتبقى اسم الأب أم أن هناك وظيفة أخرى وشيئ غير واضح لي بالنسبة لهذه النقطة وأرجو أن تعذرني على سؤالي فربما أستفيد من موضوعك
  24. بعد اذن الأستاذ عبدالفتاح كيرة ومعذرة أستاذ طارق سأجيب سؤالك الأول في بداية الموضوع وسويت لك تقرير اسمه Query1 يضم الثلاثة استعلامات المستهدفة tajmiaa.rar
  25. @Shivan Rekany بعد إذن الأستاذ أقترح عليك يا أستاذ /علي تضغط على مفتاح الشفت ثم تقوم بالتعديل أضف الكود هذا إلى البرنامج Private Sub a1_KeyDown(KeyCode As Integer, Shift As Integer) If (Shift) Then Me.a1.Locked = False End Sub
×
×
  • اضف...

Important Information