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

Foksh

أوفيسنا
  • Posts

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

  • Days Won

    167

كل منشورات العضو Foksh

  1. أخواني وأساتذتي ومعلمينا ( دون استثناء ) في هذه الأداة والتي وظيفتها إزالة التكرارات من الجداول ، قمت بتنفيذ فكرتها بناءً على مشكلة واجهت أحد منتسبي مجتمع اكسس جروب على الواتس اب . حيث كل ما على المستخدم هو نقل النموذج لمشروعه ، واختيار الجدول الذي يريد حذف التكرارات منه . المزايا التي تم تأمينها في الأداة :- 1️⃣ التعرف على أسماء الجداول في قاعدة البيانات الحالية عند فتح الأداة . 2️⃣ التعرف على عدد السجلات في الجدول عند اختيار أي جدول بسرعة فائقة . ( تمت التجربة على الملف المرفق بعدد سجلات = 1886169 سجل ) ولا تحتوي على بيانات شخصية أو سرية . 3️⃣ إمكانية إيقاف العملية أثناء الفحص ( في حال استطاع المستخدم اللحاق بها 😅 ) . 4️⃣ نموذج تفاعلي لكل مرحلة من مراحل التصفية والتنقية ، والمرحلة الحالية التي هي قيد العمل حالياً . 5️⃣ لا حاجة لاختيار الحقول في أي جدول ، فقط اسم الجدول ، وستتم المقارنة بين السجلات على جميع الحقول دون تحديد أسمائها . 6️⃣ تجاوز حقل الترقيم التلقائي من المقارنة بين السجلات واجهة الإداة البسيطة :- صورة توضيحية لأداء الأداة :- لاحظ أخي الكريم أن الزمن المستغرق تقريباً 18 ثانية لفلترة سجلات تتكون من أكثر من مليون و 880 ألف سجل في الجهاز الحالي وفي جهاز آخر استغرق الأمر على نفس عدد السجلات تقريباً 9 ثواني فقط لا غير .😮. حجم الملف المرفق تقريباً 23 ميجا ، وذلك ليس حجم الأداة ، بل حجم الجدول الذي يحتوي 1,886,169 سجل 😁 . ملف الأداة مفتوح المصدر مع الجدول :- Smart Fillter.zip ملف الأداة مفتوح المصدر بدون الجدول :- Smart Fillter No TBL.zip
  2. وعليكم السلام ورحمة الله وبركاته .. ردي متأخر ولكن اعتذر منك ، لم انتبه للإشعار .. وعليكم السلام ورحمة الله وبركاته ،، وإياكم أخي الكريم ,, في الحقيقة ، لم أقم بالتجربة بالربط على برنامج أو جهاز البصمة اللذين ذكرتهم أبداً . لذا فإجابتي ستكون غير دقيقة ، ولكن بنية البرنامج قائمة على قراءة QR باستخدام اي جهاز يقرأ الرموز لأن الجهاز بطبيعة الحال عبارة عن كيبورد ويقوم بادخال القيم بشكل بصري من خلال الرمز . لذافلن يضرك في التجربة اي شيء ، على العكس قد تفيدنا بهذه المعلومة وتكون أجراً لك في ميزان حسناتك
  3. ما شاء الله .. أفكار جميلة لإستغلال الأرقام المفقودة فعلاً .. لفت انتباهي في النموذج الثالث ، عند القيمة الافتراضية لمربع النص MyId = =fncGetNextNumber("Test4","Myid",([txtYear]*1000)+1) هنا نفس المبدأ في الدالة DMax فعند الوصول الى السجل 20259999 سيكون السجل التالي 20260000 رغم ان السنة = 2025 فالتقييد بالتنسيق 1000 سيجعل هذه مشكلة أما الفكرة الجميلة التي قمتم بتنفيذها .. وجهة نظري غير ملزمة ولا ولن ولم تنقص من جمال الفكرة ، وأنما مشاركة لأفكار أخيك الصغير معك
  4. وعليكم السلام ورحمة الله وبركاته .. تواصل مع الأستاذ @ابو جودي ، فالملف مقفل بكلمة مرور على الـ VBA
  5. هذه تجربتي على نفس الإصدار هنا في هذا الموضوع والرد الذي يليه أيضاً توثيق النتيجة
  6. وأخوك واحد من هؤلاء الذين يفضلون الوضع الداكن فعلاً .. جاري التجربة .. شكراً مسبقاً ..
  7. تمت التجربة الآن عند نشر هذا الرد لرقم المهندس يوسف العزير ، وقد تم الإرسال و الاستلام بنجاح ..
  8. حياك الله أستاذ @ناقل ، شكراً لمرورك الكريم . في الحقيقة موضوع المرور على سجلات قد يكون له تبعات كبيرة أهمها على سبيل المثال أن الأداة ستمر مروراً لكل عملية على جميع الارقام سجلاً سجلاً وليس بشكل جماعي . ولكن الأمر ليس بالمستحيل طبعاً .. مهندسنا الغالي ، هذا إطراء سأحسد عليه 😅 شكراً لك على مرورك الأمر يسير ان شاء الله بتمرير الارقام كما تفضلتم بحلقة تكرارية بدلاً من اعتماد مربع النص .. ولكن كما قلت سابقاً اعتقد انه سيكون له تبعات أبعد من مجرد أداة تحقق . في الأداة ليس عليك ان تتدخل يدوياً عند ظهور الرسالة ، فهي وبعد تجربتها على عدة أجهزة تعمل تلقائياً عند ظهور الرسالة بالنقر على مفتاح Tab ثم Enter لانهاء دور الرسالة . اذا تكرمت تزويدي برقم الإصدار لديكم من تطبيق الواتس اب سطح المكتب .
  9. أهلا مهندسنا الغالي .. الحقيقة أنه بالفعل تمت تجربة الأداة على الكثير من الأرقام التي لم يتم حفظها في دليل الهاتف في الجوال . وحتى انني اضطررت للتجربة على رقم الأستاذ موسى شخصياً 😅 ، حيث قمت بحذف الرقم من جهات اتصالي سابقاً ، وقمت بالتجربة بارسال رسائل متعددة له من خلال التطبيق . وهذا رقم الإصدار الحالي لدي :- وسأقوم بدعم النتيجة بتصوير حي دون اي اجتزاء أو تعديل على الفيديو للنتيجة ، وآمل مشاركتي المشاكل التي واجهتموها مصورةً أو بلقطة شاشة . مع ذكر رقم الاصدار المثبت من تطبيق واتس اب سطح المكتب لديكم في أجهزتكم عند التجربة 😊 .
  10. تحديثات وإضافات جديدة لواجهة الأداة 👍 . إضافة و تحسين فكرة إضافة الأسماء ، مع التحكم الكامل . بحيث عند الارسال الى رقم غير مسجل مسبقاً في جهات الاتصال فسيتم اضافته الى جهات الإتصال باسم "غير معروف" ، ولك حرية التعديل لاحقاً . إضافة ميزة الإرسال للمجموعات التي لديك في الواتس اب . من خلال رابط المجموعة فقط . وطبعاً يمكنك إضافة مجموعاتك من خلال النموذج :- إضافة ميزة إمكانية تعديل إسم ( في حال الخطأ ) من خلال النقر المزدوج عليه . أو من خلال النموذج الخاص بإضافة جهات الإتصال . وكذلك الأمر للمجموعات . تحسين فكرة الأرقام المحلية بحيث عند تحديد البلد الإفتراضي في جدول الإعدادات ( Tbl_SendSettings ) في الحقل السجل "DefaultCountryCode" ستتمكن الأداة من الارسال له دون الحاجة لكتابة مفتاح الدولة . في جدول الإعدادات ( Tbl_SendSettings ) ، لك كمبرمج أو مستخدم كامل الصلاحيات بتقييد المستخدم ( لاحقاً ) بأنواع المرفقات ، أو استخدام / منع استخدام التعبيرات أو الإيموجي ؛ أو تقييد حجم الملفات من خلال الجدول وليس من خلال الأكواد . إمكانية التحكم بالفاصل الزمني ( المدة الزمنية للإنتظار بين الرسالة والثانية عند الإرسال الجماعي لجهات اتصال متعددة أو أرقام متعددة ).. إلخ . إضافة ميزة حجب رقم أو جهة اتصال / مجموعة من الإرسال لها من خلال التفعيل عند الإضافة كما في الصورة الأخيرة سابقاً لواجهة إضافة مجموعة جديدة . ملف التحديث بالنسخة الأخيرة له مفتوح المصدر ، ما لم يطرأ أي تعديلات أو إضافات لاحقاً WhatsApp Sender - V4.0.accdb.zip
  11. أخواني وأساتذتي ومعلمينا ( دون استثناء ) أداة بسيطة - مفتوحة المصدر - مشتقة من أداة مرسال والواتس أب 2025 في هذا الموضوع هنا ، لفحص حالة الرقم من انه مسجل على الواتس اب أم لا ، تعتمد على تطبيق واتس أب سطح المكتب . يمكن تطويرها داخل المشاريع لتتلائم مع متطلبات مشروعك . فقط اكتب الرقم مع المفتاح الدولي ، وسيتم فتح التطبيق والكشف مما إذا كان مسجلاً على الواتس أب أم لا . طبعاً الأداة ستعتمد على قراءة رسالة الواتس أب التالية ، وهنا اللغز في الموضوع . صورة واجهة الأداة :- تم إضافة ميزة جديدة وهي ، الفحص لجدول يحتوي على ارقام مخزنة ليتم الفحص الكامل على مجموعة من الأرقام بدلاً من رقم واحد . حيث تم انشاء جدول يضم حقل الرقم وحقل الحالة وحقل تاريخ التحقق وحقل ملاحظات . Check Number 1.1.zip
  12. التحديث الجديد في هذا الرابط
  13. آخر مشاركة عمرها أكثر من سنتين .. يغلق
  14. تحديث واجهة الأداة بشكل جذري عن النسخة الأولى التجريبية 👍 توسيع الأداة لتشمل عدة تنسيقات إضافة الى التحويل من PDF إلى صور ، بحيث تم إضافة :- التحويل من صور إلى ملفات مستندات Word التحويل من صور إلى PDF ( العكس من الفكرة الرئيسية 😁 ) التحويل أيضاً من ملفات المستندات Word إلى ملفات PDF تجزئة وتقسيم ملفات الـPDF إلى صفحات ( كل صفحة في ملف منفصل ) الأداة الآن تعمل بميزة جديدة وهي السحب والإفلات ؛ وهذه صورة للجزء المنفذ لهذه الإضافة الجديدة . إمكانية اختيار مجلد الحفظ والإستخراج ، أو الاعتماد على المجلد( OutFolder ) الذي يتم انشاؤه عند فتح الأداة . 1️⃣ في قسم التحويل من الصور إلى مستندات Word ، تم تمكين المستخدم من :- تحديد اتجاه الصفحة ( رأسي - أفقي ) . تحديد الهوامش الأربعة كما في Word تماماً . تحديد حجم الورقة ( A3 , A4 , A5 , Letter , Legal ) . أيضاً تحديد محاذاة الصور في الورقة ( يمين - وسط - يسار ) . في الزر ، سيتم فتح واجهة لتعديل الإعدادات بشكلها التالي :- 2️⃣ في قسم التحويل الصور أو ملفات Word إلى PDF يتم التعامل مع الصور بضغطها وإزالة كافة إعدادات مايكروسوفت word لتقليل حجم الملف الناتج . 3️⃣ الأداة مستقلة وغير قابلة للدمج الداخلي في أي مشروع ، إلا من خلال الإستدعاء كأداة خارجية . ملف التحديث بالنسختين :- نسخة 64 :- Convert 64.zip نسخة 32 :- Convert 32.zip
  15. حياكم الله أخي الكريم ، ويسعدني مرورك اللطيف وإن شاء الله تحديث جديد قادم ، لكن الأشغال أخرتني شوية
  16. اقتراح بأن يتم تثبيت الموضوع وأغلاقه . بحيث يتم فيه فقط عرض هذه اللقاء دون فتح الباب للحوار
  17. فقط قم بإزالة الجزء من Or لغاية 0 If IsNull(rs!evalu_moubadara_chaksia) Then
  18. وعليكم السلام ورحمة الله وبركاته ,,, أخي الكريم . حتى لا يتم تهميش أي موضوع تطرحه بعدم حصولك على رد لمشكلتك ، نرجو منك ما يلي :- أن يكون الشرح للمشكلة التي تواجهها شرحاً وافياً كافياً .. ( خذ وقتك في التعبير والكتابة والشرح ) إن أمكن لك توضيح المشكلة وتدعيم موضوعك بصورة فهو مناسب أكثر وأوضح لأي شخص يمر من هنا . استخدامك لمسميات الحقول باللغة العربية يجعل الكثيرين ممن يقومون برؤية الملف في حالة غير مشجعة للرد . فالمسميات العربية تسبب المشاكل في كتابة الاستعلامات والأكواد ... إلخ برأيك ، هل هذا الإسم للحقل "رقم الحساب الجار لصاحب (ة) المنصب" منطقي وصحيح ؟؟ الجواب قطعاً لا . لأسباب كثيرة منها طول الأسم باستخدام أكثر من كلمة يفصل بينها فراغ ... إلخ لا أحاول إحباطك في المشاركات ، لكن هدفنا هو حصولك على النتيجة التي تريدها بأسرع وقت . أشكر لك رحابة صدرك و وساعته على ما اقترحته عليك
  19. تمام ، شكراً للإفادة .. جرب هذا التعديل الأخير Public Sub Foksh(frm As Form) Dim db As DAO.Database Dim rs As DAO.Recordset Dim typ As String Dim conditionValue As Variant On Error Resume Next typ = frm.Controls("نص929").Value On Error GoTo 0 If IsNull(typ) Then MsgBox "لم يتم التحقق من قيمة وظيفة الموظف", vbExclamation + vbMsgBoxRight, "" Exit Sub End If Set db = CurrentDb Set rs = db.OpenRecordset("SELECT * FROM tbl_evaluation WHERE loifondamontale = '" & typ & "'", dbOpenDynaset) If rs.RecordCount = 0 Then MsgBox "لا توجد سجلات تطابق الشرط", vbInformation + vbMsgBoxRight, "" rs.Close Set rs = Nothing Set db = Nothing Exit Sub End If rs.MoveFirst Do While Not rs.EOF If IsNull(rs!evalu_moubadara_chaksia) Or rs!evalu_moubadara_chaksia = 0 Then rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update End If rs.MoveNext Loop rs.Close Set rs = Nothing Set db = Nothing End Sub
  20. فعلاً ستواجه مشاكل أثناء صراع الأفكار وتنفيذها في نماذجك .. ولكن بناءً على اصرارك ، فقد ارتأتيت تغيير الوجهة كاملة بحيث نجعل العمل من خلال دالة عامة يتم استدعائها في حدث عند التحميل للنماذج ، ودون أن نؤثر على أكوادك في نماذجك .. جرب وأخبرنا بالنتيجة . الصق الدالة التالية في مديول :- Public Sub Foksh(frm As Form) On Error GoTo ErrorHandler Dim rs As DAO.Recordset Dim typ As String Dim ctrl As Control On Error Resume Next Set ctrl = frm.Controls("نص929") If Err.Number <> 0 Then MsgBox "لم يتم التحقق من قيمة وظيفة الموظف", vbExclamation + vbMsgBoxRight, "" Exit Sub End If On Error GoTo ErrorHandler Set rs = frm.RecordsetClone If rs.RecordCount = 0 Then MsgBox "لا توجد سجلات لعرضها", vbInformation + vbMsgBoxRight, "" GoTo CleanUp End If rs.MoveFirst Do While Not rs.EOF typ = ctrl.Value rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update rs.MoveNext Loop frm.Requery CleanUp: On Error Resume Next rs.Close Set rs = Nothing Set ctrl = Nothing Exit Sub ErrorHandler: MsgBox " : حدث خطأ" & Err.Description, vbCritical + vbMsgBoxRight, "خطأ" Resume CleanUp End Sub واستدعيها في حدث عند التحميل في نموذجيك أول أمر :- Private Sub Form_Load() Call Foksh(Me) . . . . . End Sub
  21. المصيبة أعظم 😅 أعتقد توجهك الى بناء جديد يقوم بتخزين في ورقة منفصل جديدة باستخدام سجلات صفوف أفضل من سجلات الأعمدة ( طريقتك الحالية ) .
  22. ولا يهمك أخي الكريم .. لكن لي نوضيح لك مستقبلاً .. انت تعلم أن التعامل مع النماذج المستمرة يختلفعن النماذج المنفردة ( صحيح ؟؟ ) ناهيك عن موضوع الرول باك الذي تستعمله على العموم جرب هذا التعديل في مرفقك حيث استخدمت نفس الكود تماماً في الزرين في النموذجين .. Private Sub cmdSave_Click() Dim rs As DAO.Recordset Dim typ As String With WrkSpace 'commit any changes .CommitTrans Me.Recordset.Requery 'begin new transaction .BeginTrans End With m_dirty = False Set rs = Me.RecordsetClone rs.MoveFirst Do While Not rs.EOF typ = Me.نص929 rs.Edit If typ = "مهندسين" Then rs!evalu_moubadara_chaksia = 4.5 rs!evalu_itkan_elamel = 4.5 rs!evalu_nachatat_tarbia = 3 rs!evalu_absence = 8 rs!evalu_retard = 4 rs!evalu_tatwir = 4.5 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 Else rs!evalu_moubadara_chaksia = 0 rs!evalu_itkan_elamel = 0 rs!evalu_nachatat_tarbia = 0 rs!evalu_absence = 0 rs!evalu_retard = 0 rs!evalu_tatwir = 0 rs!evalu_absence_prof = 12 rs!evalu_retard_prof = 4 rs!evalu_nadawat_prof = 6 rs!evalu_nachatat_tarbia_prof = 6 rs!evalu_mobadara_prof = 12 End If rs.Update rs.MoveNext Loop Set rs = Nothing m_dirty = False End Sub عدل القيم حسب حاجتك ، فأنا تعديلي كان حسب النموذج ، ولك الباقي حسب ما تراه مناسباً لمشروعك BASE-E1.zip
  23. وعليكم السلام ورحمة الله وبركاته .. تفصد أخي الكريم استعلام تحديث لقيم حقلين في الجدول الأول من الجدول الثاني بشرط الرقم القومي ( بما انه حقل فريد غير متكرر ) ، صحيح ؟ جرب هذا الاستعلام أولاً UPDATE [Copy Of شيت رصد اولى] INNER JOIN [Copy Of 1] ON [Copy Of شيت رصد اولى].[st_kawmy] = [Copy Of 1].[st_kawmy] SET [Copy Of شيت رصد اولى].codeterm = [Copy Of 1].[codeterm], [Copy Of شيت رصد اولى].st_kind = [Copy Of 1].[st_kind]; وأخبرنا بالنتيجة
  24. وعليكم السلام ورحمة الله وبركاته .. اعتقد تنسيق التاريخ في الحقل أو مربع النص له علاقة ، ولتلافي المشكلة وأعتقد مؤقتاً ، جرب التعديل التالي :- DoCmd.OpenReport "Y_N_Report", acViewPreview, , "ddate = #" & Format([DDate], "yyyy-mm-dd") & "# AND NOT IsNull(colour)", , Screen.ActiveControl.Caption
×
×
  • اضف...

Important Information