-
Posts
4116 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
178
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
ولا يهمك أخي الكريم .. طيب جرب هذه الدالة ، وتستطيع وضعها في مديول عام اذا أردت .. Public Sub UpdateBooksToLost() Dim db As DAO.Database Dim rs As DAO.Recordset Dim maxGard As Long Set db = CurrentDb maxGard = Nz(DMax("No_Gard", "T_Gard"), 0) Set rs = db.OpenRecordset("SELECT * FROM [جدول تسجيل الكتب] WHERE [CaseBook] = 'موجود'", dbOpenDynaset) If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF rs.Edit rs!CaseBook = "فاقد" rs![G N] = maxGard rs.Update rs.MoveNext Loop End If rs.Close Set rs = Nothing Set db = Nothing MsgBox "تم تحديث الكتب إلى الحالة 'فاقد' وتعيين رقم الجرد بنجاح", vbInformation + vbMsgBoxRight, "" End Sub واستدعيها في أي زر من خلال UpdateBooksToLost فقط .
-
💫 تألق جديد.. @Foksh الأخ فادي ينضم لقائمة مشرفي أوفيسنا 🎉
Foksh replied to Moosak's topic in قسم الأكسيس Access
أشكر لكم تهنئتكم الكريمة ، وأسأل الله أن أكون على قدر الثقة ، وأن أقدم ما فيه النفع والفائدة للجميع . وأسأل الله أن يعينني على أداء هذه المسؤولية بما يرضيه ، ويحقق منفعة إخواننا وأخواتنا في المنتدى . ويسعدني وجود هذه الثقة التي منحتموني إياها بإنضمامي إلى نخبة من المشرفين والمعلمين الكبار الأفاضل .. الشكر موصول لكم على كلماتكم الطيبة ومشاعركم النبيلة ، وأسأل الله أن يجعلنا عند حسن الظن ، وأن يوفقنا لخدمة هذا الصرح المميز أشكرك معلمي الفاضل على ثقتكم وسائر القائمين على هذا المنتدى .. 🌻 الله يبارك فيكم جميعًا ، وأسأل الله أن يوفقني لأداء دوري الجديد بما يليق بكم وبالمنتدى الكريم . -
أستاذنا @Ahmos .. مبااااارك لنا انضمامكم لهذه المسيرة التي نسأل الله أن نكون جميعاً أهلاً لها .. وأنت من الأشخاص المميزين الذين يستحقون هذا اللقب فعلاً ، لما تقدمه من عطاء مميز في مواضيعك الجميلة 💐💐💐💐💐
-
حاول بهذه الدالة في زر جديد كاختبار باستدعاء الدالة UpdateBooksConditional في حدث عند النقر .. Private Sub UpdateBooksConditional() Dim rsBooks As DAO.Recordset Dim maxGN As Long Dim counter As Long Dim db As DAO.Database Set db = CurrentDb() maxGN = DMax("No_Gard", "T_Gard") Set rsBooks = db.OpenRecordset( _ "SELECT * FROM [جدول تسجيل الكتب] " & _ "WHERE CaseBook = 'موجود'", dbOpenDynaset) Do Until rsBooks.EOF rsBooks.Edit rsBooks![G N] = maxGN rsBooks!CaseBook = "فاقد" rsBooks.Update counter = counter + 1 rsBooks.MoveNext Loop MsgBox "تم تحديث " & counter & " سجلات", vbInformation rsBooks.Close Set rsBooks = Nothing End Sub
-
الكود يوزع عادي ولكن يكرر الاسماء افقيا (صف) وراسيا (عمود)
Foksh replied to بلانك's topic in منتدى الاكسيل Excel
وعليكم السلام وحمة الله وبركاته ,, هلا شاركتنا بكود التوزيع الذي يقوم بالتوزيع ؟؟؟ -
وعليكم السلام ورحمة الله وبركاته .. هلا قمت بالتوضيح أخي الكريم أكثر من مجرد سطر مبهم المعاني . واطرح مثالاً للتوضيح اذا سمحت كي تكتمل الصورة .
-
بهذا الشكل ، سيكون علينا جلب أكبر قيمة للحقل G N في جدولك ، ثم تحديث قيم سجلاته بشرطين إما كاملة اذا لم يتم تحديد قيم محددة ، أو للقيم التي تم تحديدها برقمين ( من - إلى ) صحيح ؟؟ اذا كان ما فهمته صحيحاً ، فسيتم تعديل الاستعلام في كود الزر بالشكل التالي :- Private Sub أمر8_Click() If MsgBox("أنت على وشك تحديث حالة جميع الكتب باليومية من كتب موجودة إلى كتب فاقد " & vbCrLf & _ "لتأكيد الأمر أضغط موافق ، ولإلغائه أضغط إلغاء", _ vbInformation + vbOKCancel + vbMsgBoxRight, _ " تأكيد تنفيذ الأمر ") = vbOK Then DoCmd.SetWarnings False Dim maxGN As Variant Dim filter As String If IsNull(Forms!F_GardBooks!text) Or IsNull(Forms!F_GardBooks!text2) Then filter = "[CaseBook]='موجود'" Else filter = "[CaseBook]='موجود' AND searinumber BETWEEN " & Forms!F_GardBooks!text & " AND " & Forms!F_GardBooks!text2 End If maxGN = DMax("[G N]", "[جدول تسجيل الكتب]", filter) If Not IsNull(maxGN) Then DoCmd.RunSQL "UPDATE [جدول تسجيل الكتب] SET CaseBook = 'فاقد' " & _ "WHERE [CaseBook]='موجود' AND [G N]=" & maxGN & ";" End If DoCmd.SetWarnings True End If MsgBox "تم تحديث البيانات بنجاح والحمد لله" End Sub أما من خلال استعلام SQL فلم أفلح في ضبط الأمور لوجود شرطين أو أكثر ، لذا قد يكون هناك حل يعتمد على استعلام مبني على استعلام آخر ، بحيث :- 1. انشاء استعلام جديد ولنفترض باسم qry_GetMaxGN_Conditional علشان نحصل على أعلى قيمة للحقل G N و ( مع أو بدون ) الشرط الثاني وهو تحديد قيمة لكتب محددة ... SELECT MAX([G N]) AS MaxGN FROM [جدول تسجيل الكتب] WHERE CaseBook = 'موجود' AND ( ([Forms]![F_GardBooks]![text] IS NULL OR [Forms]![F_GardBooks]![text2] IS NULL) OR (searinumber BETWEEN [Forms]![F_GardBooks]![text] AND [Forms]![F_GardBooks]![text2]) ); 2. ننشء استعلام التحديث الذي سيتم التحديث للسجلات من خلاله بناءً على السجلات التي حققت شرط الإستعلام السابق :- UPDATE [جدول تسجيل الكتب] SET CaseBook = 'فاقد' WHERE [G N] = (SELECT MaxGN FROM qry_GetMaxGN_Conditional) AND CaseBook = 'موجود'; ولنفترض ان اسمه سيكون على سبيل المثال qry_UpdateCaseBook . ومن خلال زر يتم استدعاؤه بالشكل التالي :- DoCmd.SetWarnings False DoCmd.OpenQuery "qry_UpdateCaseBook" DoCmd.SetWarnings True ملفك بالتجربتين :- القاعدة.mdb
-
وعليكم السلام ورحمة الله وبركاته .. أخي الكريم بداية أهلا وسهلا بحضرتك معنا في المنتدى . ونرجو أن تجد ما تبحث عنه دائماً وبسرعة . ولتحقيق ذلك هناك أمور علينا توضيحها لك لتحصل على جواب وحل لطلبك ومشكلتك بأسرع وقت ، منها :- 1. إرفاق ملف بسيط يوضح المشكلة الآن بالنسبة لمشكلتك ، أولا إذا كان التقرير مبني على استعلام ، فتستطيع ذلك باستعمال الدالة NZ للحقل المحدد على النحو التالي :- Nz(Grade, "غ") بالإفتراض أن اسم الحقل الأصلي = Grade على سبيل المثال . وهناك عدة طرق ولكن هذا يعتمد على بنية التقرير ، فإذا صعب الأمر عليك ، أرفق لنا التقرير مع مصدره كمثال للتطبيق .
-
جميل جداً ، ومشاركة ذكية أيضاً .. مع العلم وإنه وإن كان قد لا يستوجب أخذ هذه النقطة بالحسبان ، وهي عدم دعم الفترات التي تمتد بعد منتصف الليل (من 10 مساءً إلى 2 صباحاً مثلاً) على سبيل المثال طبعاً وليس للحصر ..... وطبعاً الإفتراض دوماً أن first_time < last_time لا يخدم النقطة السابقة ( وكما أشرت قد تكون غير ضرورية من الأساس 😅 ) طبعاً لا ينقص تعليقي من فكرة الأستاذ موسى شيئاً .
-
لا عاش من يتعبك اعتذر منك على هذا القصور Database3.zip
-
وعليكم السلام ورحمة الله وبركاته .. بدايةً وبحكم أنني لا أعمل في الوقت الحالي منذ حوالي 15 سنة على HTML 😅 ، ومن خلال الصور الواضح أن العمل ما شاء الله جميل ونتائجه أجمل .. جزاك الله كل الخير على طرحك الجميل ومشاركتنا أفكارك الجميلة
- 14 replies
-
- اي جدول الي صفحة ويب
- any table to html
-
(و1 أكثر)
موسوم بكلمه :
-
تمام ,, ولكن فيما يخص الدمج أمره على ما أعتقد سيكون دون الاعتماد على مصفوفات على سبيل المثال ، لأنه وللأسف لا يمكن استخدام المصفوفات مباشرة في المعيار داخل الاستعلام . لذا ، هذا اقتراح بسيط :- Public Function IsValidWorkType(workTypeValue As Integer) As Boolean Dim dayNum As Integer: dayNum = Weekday(Date) Select Case dayNum Case 1 To 4 IsValidWorkType = (workTypeValue = 1) Case 5 IsValidWorkType = (workTypeValue = 1 Or workTypeValue = 2) Case 6, 7 IsValidWorkType = (workTypeValue = 2) Case Else IsValidWorkType = False End Select End Function وسيكون الاستعلام بعد مقترحي السابق :- SELECT tblCtrlDetails.usrID, tblCtrlDetails.workType, tblCtrlDetails.fatraType, tblFatrat.first_time, tblFatrat.last_time, TimeValue(Now()) AS [Current_Time] FROM tblFatrat INNER JOIN tblCtrlDetails ON tblFatrat.fatraID = tblCtrlDetails.fatraType WHERE (((tblFatrat.first_time)<=tblFatrat.last_time) And ((TimeValue(Now())) Between tblFatrat.first_time And tblFatrat.last_time) And ((IsValidWorkType([workType]))<>False)) Or (((tblFatrat.first_time)>tblFatrat.last_time) And ((TimeValue(Now()))>=tblFatrat.first_time Or (TimeValue(Now()))<=tblFatrat.last_time) And ((IsValidWorkType([workType]))<>False)); العفو معلمي الفاضل ، هذا يعود لحاجتك من الناتج العائد إن كان يخدم مطلبك أم لا ... وأتمنى أن لا أكون قد ابتعدت عن مسار المطلوب 😅😅 فلي عادة أن أنحرف بالتفكير يميناً ويسارا
-
جميل جداً جداً .. بسيط وسهل القراءة . ولكن ممكن تعليق صغير أستاذي ومعلمي الفاضل ؟؟ الدالة funDayInweek5 ، سوف ترجع القيمة 2 فقط إذا كان اليوم هو الخميس (5) بدون أي تحقق من الوقت !! وهذا يعني انه في الاستعلام ، الشرط OR (((tblCtrlDetails.workType)=funDayInweek5())) سيعيد جميع السجلات التي يكون فيها workType = 2 = يوم الخميس ، بغض النظر عن الوقت . أليس هذا صحيحاً ؟؟
-
وعليكم السلام ورحمة الله وبركاته .. اتمنى أن لا يكون هناك أمور لم تأت على ذكرها 😅😅 جرب في حدث عند التحميل لأي نموذج يحتوي الزر المطلوب ، الكود التالي Private Sub Form_Load() If Time() > #3:00:00 PM# Then Me.Alborg.Visible = False Else Me.Alborg.Visible = True End If End Sub
-
وعليكم السلام ورحمة الله وبركاته .. حسب فهمي البسيط للفكرة ، اسمحولي أن أشارك بهذه الفكرة البسيطة ، حيث في الاستعلام Query2 الفكرة الأولى والتي اعتقد انها لا تعتمد على ان يوم الخميس مشترك ، وفي الاستعلام النهائي Query3 اعتقد انه هو المطلوب ( ما لم أكن قد فهمت الفكرة بشكل متسرع كالعادة 🤣 ) SELECT c.usrID, d.work_name AS [نوع العمل], f.fatra_name AS الفترة, f.first_time AS [وقت البداية], f.last_time AS [وقت النهاية], TimeValue(Now()) AS [الوقت الحالي], Format(Date(),"dddd",1) AS [اليوم الحالي] FROM (tblFatrat AS f INNER JOIN tblCtrlDetails AS c ON f.fatraid = c.fatraType) INNER JOIN tblDaysWork AS d ON c.workType = d.workID WHERE (((f.first_time)<=TimeValue(Now())) AND ((f.last_time)>=TimeValue(Now())) AND ((c.workType)=1) AND ((Weekday(Date())) Between 1 And 5)) OR (((f.last_time)<[f].[first_time]) AND ((TimeValue(Now()))>=[f].[first_time] Or (TimeValue(Now()))<=[f].[last_time]) AND ((c.workType)=1) AND ((Weekday(Date())) Between 1 And 5)) OR (((f.first_time)<=TimeValue(Now())) AND ((f.last_time)>=TimeValue(Now())) AND ((c.workType)=2) AND ((Weekday(Date())) In (5,6,7))) OR (((f.last_time)<[f].[first_time]) AND ((TimeValue(Now()))>=[f].[first_time] Or (TimeValue(Now()))<=[f].[last_time]) AND ((c.workType)=2) AND ((Weekday(Date())) In (5,6,7))); Database2.accdb
-
السبب في مشكلتك ليست في الأكواد أو الأدوات ، وإنما من بنية الجدول في اكسيس لديك !!! على سبيل المثال :- العمود E ويمثل alsaf_Id في اكسل وقيمته على سبيل المثال = كي جي1 . بينما نظيره في جدول اكسيس = الحقل alsaf_Id ، وهو حقل رقمي . فكيف سيتم نقل قيمة نصية الى حقل رقمي !!!!!!!!! إذا عرف السبب بطل العجب وهنا ينتهي دوري للأسف .
-
افتح موضوع جديد اذا أحببت ، أو ارسل لي شرحاً باسماء الحقول بالتفصيل يعني كل عمود في اكسل الى اي حقل في اكسيس ، وحتماً ستجد حلاً . طبعاً مع ارفاق قاعدة بيانات تحتوي الجدول فقط مع ملف اكسل للبيانات التي تريد استيرادها من اكسل الى اكسيس .
-
المطلوب الأول حسب ما فهمت ، استبدل الاستعلام في الزر "تحويل حالة هذه الكتب ..." بالاستعلام التالي CurrentDb.Execute "UPDATE [جدول تسجيل الكتب] SET CaseBook = 'مفقود' WHERE [G N] = (SELECT MAX([G N]) FROM [جدول تسجيل الكتب]);", dbFailOnError المطلوب الثاني غير مفهوم .. وأتمنى منك التوضيح بشكل مفهوم أخي الكريم
-
لا أعلم لم لا يتم التقيد بسياسة المنتدى عند فتح اي موضوع أخي الكريم 🙄 فلم تأتِ على ذكر ان الكود جزء من مديول ، هذا أولاً . ثانياً لا يتم الأمر بالصورة التي تتوقعها ، ولكن سيكون هناك دالة منفصلة على هذا الطلب . على العموم ، في مديول جديد أو موجود ، انسخ الدالة التالية ، والصقها في مشروعك :- Public Sub FokshBTN(btn As commandButton, ByVal PNAME As String, ByVal Kind As String, Optional ByVal JO_Title As String = "تأكيد طباعة") On Error Resume Next Dim msg As String msg = "الخاص " & btn.Caption & " هـل . . . . . تريـد طبـاعة تقريـر" & vbNewLine & vbNewLine & _ " بـــ " & PNAME & " " & Kind If MsgBox(msg, vbQuestion + vbMsgBoxRight + vbYesNo, JO_Title) = vbYes Then DoCmd.PrintOut DoCmd.Close acReport, Reports(0).Name Else DoCmd.Close acReport, Reports(0).Name End If End Sub ثم في أي زر ، يتم الاستدعاء بالشكل التالي :- FokshBTN Me.ActiveControl, PNAME, Kind 😅
-
ما فهمت شي من المطلوب بشكل واضح للأسف ، ولكن من خلال رؤية بنية الإستعلام ، استعمل الشرط التالي في الحقل G N :- (SELECT MAX([G N]) FROM [جدول تسجيل الكتب]) بدلاً من عبارة ( [أعلى رقم جرد] ) . على ما أعتقد إذا كان فهمي للوضع صحيح .. وأخبرنا بالنتيجة
-
برنامج ادارة بيانات ادارة تعليمية بمدارسها للبيع
Foksh replied to ahmed_204079's topic in إعلانات شخصية للأعضاء
اعتقد ان القسم المناسب لنشر الموضوع هو قسم الإعلانات الشخصية للأعضاء -
نظام مراقبة ⭐ هدية ~ نظام مراقبة الطابور وحجز الدور في المنشئات 2025⭐
Foksh replied to Foksh's topic in قسم الأكسيس Access
تحسين الإتصال بقاعدة البيانات الخلفية ( الجداول ) ، وتلافي أخطاء محتملة .. تحسين واجهة العرض الرئيسية ( شاشة الإنتظار ) ، وتحسين سرعة تحديث البيانات على الشاشة . عدم إتاحة الفرصة لأي مستخدم باختيار قاعدة بيانات خلفية غير المسموح بها . توسيع صلاحيات المدير بإضافة ميزة النسخ الإحتياطي ( إنشاء و إستعادة ) . وهذه الميزة جديدة بطريقتها ، بحيث تتميز بـِ :- التعامل مع الجداول فقط عند النسخ الإحتياطي أو الإستعادة ، وليس كقاعدة كاملة . ولكن بسهولة ويسر .. التعامل بإحترافية مع تضمين كلمة المرور الحالية للقاعدة المرتبطة ضمن اسم النسخة الإحتياطية ( باستخدام تشفير بسيط Base64 ) . سهولة تمرير كلمة المرور لكل قاعدة يتم استعادتها أو ربطها من النسخ الإحتياطية - دون الحاجة إلى كتابة كلمة مرور قاعدة بيانات الجداول - حتى لو اختلفت من نسخة الى نسخة . توحيد مجلد قاعدة البيانات الخلفية في مكان واحد لجميع الأجهزة المرتبطة عند الإستعادة لأي نسخة احتياطية . عملية ربط ديناميكية سريعة محدثة عن النسخة السابقة . نظام رسائل تنبيه حديث ومتطور ( بدلاً من رسائل آكسيس ) . حيث تم الإستغناء عن 90% من رسائل آكسيس التقليدية MsgBox . تحسين تفاعل شاشة المدير مع المستخدم . افتح أولاً قاعدة بيانات المدير (Manager Controls) ، وسيُـطلب منك اختيار قاعدة بيانات الجداول الخلفية المرفقة بجانب قاعدة البيانات حاليــــــاً بإسم (TBL) ، والغير محمية بكلمة مرور طبعاً - ( الأمر اختياري لك ) . الآن تباعاً سيتم نسخ قاعدة البيانات الى المجلد TBL:- \Data\TBL انتهى دور المدير في الوقت الحالي . الآن بالتسلسل سيقوم كل موظف / جهاز حجز الدور / شاشة عرض الإنتظار بتشغيل قاعدة بياناتــــه ، وسيطلب منه تحديد قاعدة البيانات الخلفية بشكل يدوي أول مرة طبعاً فقط . وهنا فقط تستطيع الربط مع القاعدة الموجودة في المجلد \Data\TBL في مساره على الجهاز الرئيسي طبعاً . بعد تحديد مسار الملف بغض النظر عن موقعه ( شبكة محلية / بجانب قاعدة البيانات ... إلخ ) سيتم فتح نافذة - ( الصورة أدناه ) - تطلب منك إدخال كلمة مرور الجداول ، فإذا كانت محمية بكلمة مرور فقم بكتابتها . وإلا اضغط موافق واترك الخانة فارغة للمتابعة بدون كلمة مرور . ونكون قد انتهينا من الربط وتهيأة النظام للعمل 😅 . :- دائماً يسعدني إبدائكم الرأي والملاحظات حول الأخطاء والمشاكل التي يمكن مواجهتها في أي مشروع يتم تأسيسه في آكسيس أو غيره من لغات البرمجة . في حال رغبتك أخي المستخدم بإضافة التقارير ، فقد تم تأسيس الجداول بسهولة ودون تعقيد ، وبعدد حقول قليل ويخدم جميع البيانات التي تحتاجها . QMS 1.30.zip- 17 replies
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته ,, If MsgBox("الخاص " & Me.BTNFoksh.Caption & " هـل . . . . . تريـد طبـاعة تقريـر" & vbNewLine & vbNewLine & _ " بـــ " & PNAME & " " & kind, vbQuestion + vbMsgBoxRight + vbYesNo, JO_Title) = vbYes Then DoCmd.PrintOut DoCmd.Close acReport, Reports(0).Name Else DoCmd.Close acReport, Reports(0).Name End If جرب هذا التعديل ؟؟
-
هل استخدمت التجميع في الاستعلام ؟؟؟؟ اذا لم يكن هناك دوال حسابية في الاستعلام ، فحاول استخدم التجميع ، وفي الحقل G N ، في الحقل Total = Max ... غير ذلك ، أعتذر لعدم إفادتك دون ملف مرفق !!!!