-
Posts
1347 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
29
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو kha9009lid
-
طريقة لحل مشكلة SQL injection في فورم دخول المستخدم
kha9009lid replied to rey360's topic in قسم الأكسيس Access
الله اكبر ولله الحمد -
Nz(DSum("[am_re]";"pu_inv";"[da_te]=" & DateFormat(Date()) & "and[ty_pu]='بيع'");0) DateFormat(Date()) عند كتابة معيار لتاريخ قد لا نحصل على النتيجة الصحيحة بسبب طريقة كتابة التاريخ او الصيغة المستخدمة للتاريخ في نظام التشغيل لذا نستخدمة في التعبير او الكود ليسهل علينا الوصول للنتيجة الصحيحة انظر لهذا الموضوع
-
احسنت استاذنا @jjafferr انا في السابق قبل انزال المديول كنت استخدم التعبير التالي Format([da_te];"\#mm\/dd\/yyyy\#") ولكن المديول سهل الامر بشكل كبير في جميع الاحول الدال على الخير كفاعله
-
دائما توجد حلول اخي احمد الحقيقة انا اختصرت الموضوع وقدمت حل سريع بطريقتين اما بشأن تنسيق التاريخ الى وقت ومن ثم استخدامة في المعيار في الرابط الذي اشرتم اليه كان الحل باستخدام التالي CDate(Format([da_te];"mm/dd/yyyy")) مع ملاحظة دالتي CDate و Format لا تستخدم في الجدول وانما في الاستعلام او النموذج او في الاكواد بالنسبة للحل المقدم من الاستاذ @Hawiii اعجبني ويعمل بشكل ممتاز مع تمنياتي له بالتوفيق ولك يا ابا بسملة كل الود والتقدبر
-
اولا الشكر لله سبحانه ثانيا شرح الكود الاول اجمالي حقل am_re الموجود في جدول pu_inv بشرط تاريخ الفواتير يساوي تاريخ الفاتورة التي نستعرضها حاليا وان تكون الفاتورة فاتورة بيع وخلاف ذلك تكون النتيجة صفر ثالثا شرح الكود الثاني اجمالي حقل am_re الموجود في جدول pu_inv بشرط تاريخ الفواتير يساوي تاريخ هذا اليوم وان تكون الفاتورة فاتورة بيع وخلاف ذلك تكون النتيجة صفر اخيرا المديول كتبه استاذنا الفاضل @jjafferr جزاه الله عنا كل خير وهو يسهل وضع معايير التاريخ تحياتي وتقديري
-
عاوز اجيب التاريخ الاول والتاريخ الاخير (معدل)
kha9009lid replied to el_gazar's topic in قسم الأكسيس Access
الشكر لله سبحانه -
مرحبا طيب ممكن نعملها بطريقتين الطريقة الاولى الاجمالي حسب تاريخ الفاتورة لما نكون نستعرض اي فاتورة مثلا يوم 5 يعطينا اجمالي فواتير يوم 5 ولما ننتقل ليوم 6 يعطي اجمالي فواتير 6 وهكذا لكل يوم الطريقة الثانية يعطينا اجمالي فواتير اليوم فقط يعني لو استعرضنا الفواتير السابق يبقى الحقل يعطي اجمالي اليوم فقط قبل كل شي نحتاج نعدل حقل Da_te في الجدول والنموذج لتكون القيمة date() بدلا من now() للطريقة الاولى الاجمالي حسب تاريخ الفاتورة Nz(DSum("[am_re]";"pu_inv";"[da_te]=" & Format([da_te];"\#mm\/dd\/yyyy\#") & "and[ty_pu]='بيع'");0) الطريقة الثانية اجمالي مبيعات اليوم الحالي فقط Nz(DSum("[am_re]";"pu_inv";"[da_te]=" & DateFormat(Date()) & "and[ty_pu]='بيع'");0) الملف مرفق 11.accdb
-
بالتوفيق اخي والشكر لله سبحانه ثم لاخي الاستاذ @أحمد الفلاحجى جزاه الله خير
-
عاوز اجيب التاريخ الاول والتاريخ الاخير (معدل)
kha9009lid replied to el_gazar's topic in قسم الأكسيس Access
جرب المرفق واعتذر عن التاخير لضروف العمل Database110.rar -
جرب المرفق وقبل الطباعة اخذف النسخة المحفوظة مسبقا A_Library1.rar
-
بعد التعديل انتهت المشكله لم اختبر المشكلة هل انتهت اخي احمد الان متوجه للعمل
-
اخي احمد فيه طريقة بسيطة لاضهار من استلموا مواد فقط وفي حالتنا يمكن تعديل مصدر القائمة المنسدلة لاسم المعلم بحيث نقوم بوضع حقل في الاستعلام قيمته تساوي Nz(DCount("[Product]";"Stationary_Table";"[Teacher]='" & [Teacher] & "'");0) وفي المعاير لهذا الحقل يكون اكبر من صفر وبالتالي يضهر لنا فقط المعلمين الذين صرفوا المواد اما من لم يصرف فلا يكون ضمن القائمة والتعديل يكون في التصفية بحيث يتم طباعة من تم اختياره تحياتي لك
-
اخي @أحمد الفلاحجى اعتقد ان هناك خطأ في التقرير او انني لم افهم المطلوب الغلط ليس في عملية حفظ التقرير باسم الموظف لكونه يحفظ بشكل صحيح ولكن في محتوى الملف بعد الحفظ مثلا حفظ تقرير للموظف خالد مريف وتقرير باسم فيصل الكلثم وكل شي تمام ولكن عند فتح اي منهم يكون التقرير باسم حمد النودل اي انه يعطي اسماء من صرف لهم مواد حتى لو كان التقرير باسم معلم اخر
-
عاوز اجيب التاريخ الاول والتاريخ الاخير (معدل)
kha9009lid replied to el_gazar's topic in قسم الأكسيس Access
-
عَنْ عَبْدِ اللهِ بْنِ عَمْرٍو، أَنَّ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّمَ، قَالَ: الدُّنْيَا مَتَاعٌ، وَخَيْرُ مَتَاعِ الدُّنْيَا الْمَرْأَةُ الصَّالِحَةُ الله يصلح لنا ولكم
-
هههههه انت كذا دعيت عليه 😃
-
اضافة لما اشار اليه معلمنا الفاضل @ابوخليل ممكن نعمل جدول يحتوي مثلا على رقم الفاتورة او العقد ووقت وتاريخ الطباعة ويمكن اضافة رقم اليوزر الذي قام بالطباعة ونعمل استعلام الحاق في زر فتح او طباعة التقرير وفي حدث عند الفتح للتقرير نضع شرط اذا كان الرقم اكبر من واحد يكون نسخة بعدد مرات الطباعة واذا كان واحد تكون الفاتورة او العقد بعبارة اصلي او اي عبارة اخرى في المثال المرفق وضعت عبارتي النسخة الاصلية للنسخة الاولة وما يليها تكون نسخة رقم الملف في المرفقات Database1051.accdb
-
العفو اخي والشكر لله سبحانه وجزاك الله خير
-
الله يعافيك والشكر لله سبحانه
-
مع ان الاستاذ @husamwahab وضع حل متميز عن طريق عمل استعلامين بعد انشاء علاقة رأس باطراف بين الجدولين والنتيجة متميزة ومن باب اثراء الموضوع وتعدد الحلول ممكن الوصول للنتيجة بدون اجراء اي تعديل وباستعلام واحد عن طريق دالة dsum بثلاثة معايير Nz(DSum("[total]";"كتب_الشكر";"[تاريخ_الكتاب]>" & Format([تاريخ اخر علاوة];"\#mm\/dd\/yyyy\#") & "And [تاريخ_الكتاب]<" & Format([تاريخ العلاوة القادمة];"\#mm\/dd\/yyyy\#") & "and [الاسم]='" & [الاسم] & "'");0) تفسير التعبير اجمع عدد كتب الشكر اذا كان تاريخ الكتاب اكبر من تاريح العلاوة وتاريخ الكتاب اصغر من تاريخ العلاوة القادمة واسم الموظف يساوي اسم الموظف وفي حالة عدم التطابق ضع العدد يساوي صفر ايضاح بسبب استخدام اسماء عربية للحقول لا يظهر الكود في المنتدى بشكل صحيح الملف مرفق Database910.accdb
-
توجد طريقة اسهل للتصفية بين تاريخين استخدمتها لبرنامج اقساط تعاوني ربما تفيدك السنة الماضية السنة الحالية اخر تسعة اشهر اخر ستة اشهر اخر ثلاث اشهر الخ جرب الملف المرفق علما باني ربما لم افهم مطلوبك بشكل صحيح الفلتره بين تاريخين.accdb
-
اضافة لما اشار اليه الاستاذ @محمد ابوعبد الله ماهي العلاقة بين هذا الحقل من جدول 2 مع سجلات النموذج المبني على جدول 1 هل ترغب في اظهار قيمة الحقل وفقا لمعايير محددة او فقط قيمة الحقل هل ترغب في عرض اول سجل او اخر سجل او مجموع مثلا او فاتورة بيع الفاتورة الاخير اجمالي قيمة الفواتير الخ من الافضل الاطلاع على موضوع الاستاذ محمد طاهر
-
طريقة لحل مشكلة SQL injection في فورم دخول المستخدم
kha9009lid replied to rey360's topic in قسم الأكسيس Access
اخي الفاضل محمد انا كان ردي على كود الاستاذ جعفر Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If ولم اجرب التعديلات الاخيرة في رد الاستاذ جعفر لكونك وجدت ان الحل مناسب لك وهذا هو المطلوب اما بخصوص الرد الاخير للاستاذ جعفر فهوا الحل المناسب Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") تقبل من اخيك اطيب ايات التقدير والاحترام -
طريقة لحل مشكلة SQL injection في فورم دخول المستخدم
kha9009lid replied to rey360's topic in قسم الأكسيس Access
الحمد لله ان الحل نفع معك علما باني قد تجاوزنة بالامر a' or 't'='t واعدت المحاولة بزيادة المسافة وايضا تم تجاوز كلمة المرور -
طريقة لحل مشكلة SQL injection في فورم دخول المستخدم
kha9009lid replied to rey360's topic in قسم الأكسيس Access
مرحبا اخي جعفر يمكن تجاوز كلمة المرور الافضلاستخدام كودك التالي If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If