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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    203

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

  1. وإياكم أخي الكريم .. تقبل الله منا ومنكم صالح الأعمال والطاعات ، ومبارك عليكم الشهر الفضيل
  2. أهلاً بشمهندس محمد ، في حقيقة الأمر هناك مشكلة في الطريقة التي استخدمها حالياً مع Gmail لعدم توافقها مع سيرفر مايكروسوفت لما يفرضه من قيود محكمة وغريبة جداً بهذا الشكل ، لكن من قال أنني لا أسعى بأن تكون الأداة متكاملة 😁 ... فعلياً في الوقت الحالي ، جاري العمل على حل مشكلة استقبال سيرفر الياهو للرسائل المرسلة باعتبارها Spam ، ولكن هنا الأمر أيضاً مفروض جبرياً من نفس سيرفر الياهو ، ولكن حلها تقريباً شبه مكتمل الأوجه والتنفيذ ، أو للمستخدم المستقبل اعتبار البريد الوارد غير مزعج وبالتالي ستعود الرسائل التالية الواردة منه في صندوق الوارد مباشرة ، وهذا ما أشجعه حقيقة لعدم كسر قيود الحماية أو التجاوز عنها أما بخصوص البريد المرسل من مايكروسوفت عموماً ، فالفكرة قيد العمل إن شاء الله ، وقد تم إنهاء 70% من مرحلة التجارب ومتابعة الأخطاء . والنتيجة :-
  3. حياك الله أخي منتصر .. في الحقيقة اعتقد أن هذه مشكلة تخص الياهو نفسه . السبب في عدم اهتمامي لموقع الـ Yahoo هو حتى أنه حالياً لا يقوم بفتح حساب جديد 😅😅 .. ولا يقبل تسجيل الدخول الى حسابي رغم انه يقول لي انه مستخدم بالفعل . أما ملاحظتك الثانية والمهمة ، وأشكرك على طرحها . فقد تركتها في حقيقة الأمر لغير الإلزام بالجدول حصراً ، وقد نوهت للقارئ أنه يستطيع اختيار أي جدول آخر يريده في مشروعه شريطة أن يقوم بإضافة حقل الإسم أولاً ثم الحقل الإيميل . يعني العمود الأول للإسم والثاني للإيميل ، والكود تلقائياً سيتعامل مع الحقل الثاني كمرسل له .
  4. وعليكم السلام ورحمة الله وبركاته .. بدايةً وللتأكيد مما فهمت ، انت تريد فتح التقرير بناءً على الشرطين ، بحيث يتم فتح التقرير من الزر في النموذج الفرعي 🙄 !!! هكذا ... ؟؟؟ saad.zip أم أنا فهمت الفكرة بشكل خاطئ 😅
  5. تفضل أخي الكريم .. أولاً وجدت خطأ في اسم النموذج مصدر الشرط وهو رقم الحريف ليصبح في جميع الشروط التي يطلبها :- [forms]![F_BL]![ref_client] بدلاً من :- [forms]![BL]![ref_client] قمت بتعديل الاستعلام R_Solde_Finale_par_client ، ليصبح كالتالي :- SELECT T_Client.Ref_Client, R_Total_vente_client_solde.Total_Vente AS TV, R_Total_Recette_client_solde.Total_Recette AS TRC, R_Total_Retour_client_solde.Total_retour AS TRT, (Nz([TV],0)-Nz([TRC],0)-Nz([TRT],0)) AS Net FROM R_Total_Retour_client_solde RIGHT JOIN ((R_Total_Recette_client_solde RIGHT JOIN T_Client ON R_Total_Recette_client_solde.Ref_client = T_Client.Ref_Client) LEFT JOIN R_Total_vente_client_solde ON T_Client.Ref_Client = R_Total_vente_client_solde.ref_client) ON R_Total_Retour_client_solde.Ref_Client = T_Client.Ref_Client; والسبب هو أنه في الاستعلام النهائي أنت لم تقم بإضافة الحقل Ref_Client إليه الآن في النموذج في مربع النص Texte45 ، أصبح مصدره :- =DLookUp("Net","R_Solde_Finale_par_client","Ref_Client = " & [ref_client]) وتستطيع أيضاً إضافة الدالة NZ لتلافي القيم الفارغة لتصبح مثلاً :- =Nz(DLookUp("Net","R_Solde_Finale_par_client","Ref_Client = " & [ref_client]),0) النتيجة :- ملفك بعد التعديل :- E G P_test.zip
  6. وعليكم السلام ورحمة الله وبركاته .. لمحاولة توصيل الفكرة بشكل أوسع للأخوة الذين سيقرأون موضوعك هذا ، دعني اسألك كم سؤال :- في الاستعلام R_Solde_Finale_par_client سيطلب منك ادخال رقم Ref ن ولنفترض اخترت القيمة 1 . فستكون النتيجة في الاستعلام = R_Solde_Finale_par_client TV TRC TRT Net 42,812,000.00 31,801,050.00 1,010,950.00 10000000 الآن انت تريد ان يتم عرض قيم محددة من هذا الاستعلام !! في أي مربعات نص ؟؟
  7. تم إضافة زرين جديدين لإضافة إيميلات متعددة لـ :- النسخة الكربونية Cc - نسخة إلى النسخة الكربونية المخفية Bcc - نسخة مخفية بحيث من خلال نفس النموذج الفرعي تستطيع اختيار أكثر من ايميل لترسل لهم نسخة من البريد الصادر ، كما هو الحال سابقاً من الزر الموجود عند خانة المرسل له . الملف المرفق مفتوح المصدر .. EmailSender 2026.zip كيف نحصل على SMTPPassword المقدم من Gmail ؟ إليك الطريقة خطوة بخطوة ببساطة . في متصفحك ، ادخل إلى ( إعدادات حساب Google ) . تحقق أولاً وقبل كل شيء من تفعيل ميزة ( التحقق بخطوتين ) أو ( 2-Step Verification ) في حسابك . ابحث في خانة البحث عن ( كلمة مرور التطبيق ) أو ( كلمات مرور التطبيقات )، او ( App Password ) ، حسب لغة الموقع لديك . ادخل كلمة المرور الخاصة بالإيميل الذي تريد استخدامه كإيميل مرسل . في خانة ( اسم التطبيق ) أو ( App Name ) ، أدخل اسم للتطبيق ، مثلاً ( SenderMailer ) . ثم انقر زر ( إنشاء أو Creat ) . الآن سيزودك الموقع بكلمة من 16 حرف ، انسخها والصقها في الحقل SMTPPassword . في المشروع ، سيتم انشاء إستعلام بإسم Qur_Foksh تلقائي . كل ما عليك فعله هو إضافة الأسماء والإيميلات الى الجدول Tbl_Emails ، ثم في الاستعلام إضافة حقل الإسم أولاً ثم حقل الايميل ثانياً ، كي يظهر معكم الإيميلات التي تم تسجيلها في النظام للإرسال داخل النموذج أو في نفس الاستعلام اختر الجدول الذي يحتوي الأيميلات ، وقم بإضافة حقلي الإسم والإيميل فقط.
  8. مش عارف إن كان قصدك صح ولا لأ كدة .. بس انا ما واجهتش المشكلة اللي انت بتتكلم عنها . وقد تكون ناتجة عن إعدادات الويندوز في جهازك . بحيث اضبط تنسيق الوقت والتاريخ في الويندوز .
  9. بخصوص هذه النقطة ، راجع هذه المشاركة هنا .
  10. في العمليات الحسابية داخل أي معادلة أو مشروع .. من الأفضل أن يكون بدلاً من القيم الفارغة = استخدام الصفر 0 . لأننا عندما نتعامل مع جمع خليتين إحداهما رقم والأخرى فارغة فقد تتضارب العمليات الرياضية وتخطئ ويصبح ناتج الحقل أو الخلية قيمة غير صحيحة كما حصل معك . فليس من منطق الرياضيات أن تكون قيمة الصفر سالبة إلا أن كانت قيمة A2 كخلية = A1 + "-" حينها سينتج عنها 0- إذا كانت قيمة A1 = 0 هذا من وجهة نظر غير ملزمة ، والحديث يختلف بعد إرسال الملف .
  11. العفو ، وجزيل الشكر لكم معلمي الفاضل أبو خليل على دعمكم المتواصل .. ونرجو من الله أن يوفقنا على دربكم وخطاكم
  12. العفو بشمهندس محمد ، وجزاكم الله خيراً إلى يوم الدين لكم ولوالديكم ولأمة محمد أجمعين ..
  13. مميزات التحديث الجديد :- واجهة رسومية متطورة وجميلة وتحاكي الحداثة والتطور . إنشاء ديناميكي للجداول ، بحيث ما عليك سوى نقل النموذج والمديول فقط . إمكانية اختيار أكثر من بريد إلكتروني مستلم ، أو حتى بريد واحد بحيث تم دعم الإرسال المنفرد والجماعي كحزمة . وهنا الجدير بالذكر لتجربة النموذج المنبثق الغير موجود . دعم للمرفقات بكامل الأنواع . دعم الأرسال كنسخة مكربنة أو نسخة مخفية ( Cc , Bcc ) . لتلافي مشاكل الحظر الناتجة عن الأرسال الكبير بالدفعات ، تم إضافة فكرة مؤقت الانتظار بالثواني لكل عدد إيميلات تحدده من الواجهة . إمهال المستخدم مدة 5 ثواني لتأكيد عملية الإرسال . والهدف منها في حال الرغبة بعدم الإرسال لتصحيح أو تعديل قبل الأرسال . دعم رسائل الخطأ بالتوضيح الصريح لكل خطأ داخل جدول الأرشفة الذي يقوم بتخزين جميع الإرسالات التي تمت . تم إضافة نموذج لإدخال الإعدادات المستخدمة في الخدمة . .. والعديد من الميزات التي ستكتشفونها بأنفسكم .. دعم الواجهة بالكامل باللغة العربية . وللتذكير بآلية ضبط الإعدادات في الجدول :- كيف نحصل على SMTPPassword المقدم من Gmail ؟ إليك الطريقة خطوة بخطوة ببساطة . في متصفحك ، ادخل إلى ( إعدادات حساب Google ) . تحقق أولاً وقبل كل شيء من تفعيل ميزة ( التحقق بخطوتين ) أو ( 2-Step Verification ) في حسابك . ابحث في خانة البحث عن ( كلمة مرور التطبيق ) أو ( كلمات مرور التطبيقات )، او ( App Password ) ، حسب لغة الموقع لديك . ادخل كلمة المرور الخاصة بالإيميل الذي تريد استخدامه كإيميل مرسل . في خانة ( اسم التطبيق ) أو ( App Name ) ، أدخل اسم للتطبيق ، مثلاً ( SenderMailer ) . ثم انقر زر ( إنشاء أو Creat ) . الآن سيزودك الموقع بكلمة من 16 حرف ، انسخها والصقها في الحقل SMTPPassword . في المشروع ، سيتم انشاء إستعلام بإسم Qur_Foksh تلقائي . كل ما عليك فعله هو إضافة الأسماء والإيميلات الى الجدول Tbl_Emails ، ثم في الاستعلام إضافة حقل الإسم أولاً ثم حقل الايميل ثانياً ، كي يظهر معكم الإيميلات التي تم تسجيلها في النظام للإرسال داخل النموذج أو في نفس الاستعلام اختر الجدول الذي يحتوي الأيميلات ، وقم بإضافة حقلي الإسم والإيميل فقط :- الملف المرفق مفتوح المصدر .. EmailSender 2026.zip
  14. وعليكم السلام ورحمة الله وبركاته.. أعتقد سيكون لديك طريقين للعمل عند التسميع في ملف اكسل . 1. فتح ملف اكسل وإبقائه في الخلفية مفتوحاً ( حتى لو بواجهة مخفية ) . وهذا سيشكل عبئ كبير على الذاكرة مستقبلاً.. 2. أن يتم فتح ملف اكسل كلما تم تحديث لمربع نص . طبعاً هذا يعتمد على عدد الحقول المستهدف تحديثها في اكسل ، وهل الفكرة قد تكون في أكثر من نموذج يتم تحديث قيم محددة لخلية محددة ؟؟؟؟؟ الكثير من التساؤلات يجب توضيحها قبل الشروع بالتنفيذ 😇
  15. الفكرة قيد التطوير والتوسع ، بعد مشاورات ومقترحات الأستاذ @Moosak ، التي فتحت لي باب التطوير و التوسع الأكبر ، بأن يتم جعل الفكرة كجزء يمكن إضافته لأي مشروع مهما كان تخصصه .
  16. تعود سالماً لأهلك إن شاء الله ..
  17. مقصدي أن الطريقة التقليدية التي نستخدمها عادةً بوضع Me.Combo2.Requery في حدث AfterUpdate . ولكن بعد مراجعة الكلاس وتحفته الفنية ، لاحظت أنه يقوم بأكثر من مجرد Requery ؛ فهو يقوم بمسح القيم القديمة وبناء جملة SQL ديناميكية لفك الارتباط باسم النموذج .
  18. طيب بالعودة إلى ملفك وفكرتك ، انت تستعمل مفتاح Tab للإنتقال 5 مرات .. لذا جرب استبدال الأقواس [tab] بهذه الأقواس {tab} .
  19. وعليكم السلام ورحمة الله وبركاته .. جرب هذا التعديل أخي الفاضل ، لأنني أستخدم تطبيق واتس اب سطح المكتب ، وليس واتس اب ويب .. كود إرسال مرتبات.xlsm
  20. .. ما شاء الله ، فكرة جميلة ونظيفة ولا تشوبها شائبة في التنفيذ . بس استخدام Requery الشيء الجميل في الموضوع هو أنك إذا أردت تغيير المنطق ، ففقط تغيره في مكان واحد وهو الكلاس ، وليس في 50 نموذجاً مثلاً . جزاك الله خيراً لهذه المشاركة الجميلة والقيمة ..
  21. تم نقل الرد إلى هذا الموضوع المنفرد
  22. العفو أستاذنا الجليل ابو خليل ، لكم ذلك إن شاء الله 😇 . ليتك جربت أولاً الطريقة قبل ردك هذا بهذا الوصف 😇 . وصدقني لو سألت صديقك شات جي بي تي عن مثلاً:- أنا أرى أنه وبجهودك وأفكارك ، يمكن ان يكون ناتج 1+1=3 بطرق تحايلية ، إلا أن صديقي يخالفنا الرأي تماماً. وهذا أزعجني بتشكيكه هذا. وحينها سيأتيك بإجابات من كوكب الغزالين بأنه يمكن تحقيق 1+1=3 وللتجربة ، قمت بإرسال إيميل الى البريدين المسجلين في ملفك المرفق لتجربتك ، فتحقق من وصولهما إذا أردت
  23. عن تجربتي الشخصية سأتحدث . حيث قمت سابقاً بتنفيذ الفكرة لمشروع آخر ليرسل الإيميلات من بريده في Gmail إلى أي ايميل تريده ؛ دون إدخال أي وسيط أو موقع خارجي . حيث سيكون تعاملك مع خدمات جوجل مباشرة قمت بإنشاء جدول جديد باسم tbl_EmailSettings . ويحتوي الحقول التالية :- IDMail = حقل ترقيم تلقائي . SenderEmail = حقل نصي ، ويمثل أيميلك الذي تريد استخدامه كإيميل مرسل . SMTPServer = حقل نصي ، ويمثل الخدمة المستخدمة في Gmail لإرسال البريد الإلكتروني . وتكون عادة = smtp.gmail.com SMTPPort = حقل رقمي ، ويمثل المنفذ الذي سنستخدمه للإيميلات الصادرة . وهو عادة لـ Gmail يكون 465 . SMTPPassword = حقل نصي ، وهو الحقل المهم جداً هنا والذي ستكون قيمته كلمة مرور التطبيق الذي سنقوم بإنشائه من خلال بريدك الإلكتروني الذي سجلت به في الحقل SenderEmail . أما كيف نحصل عليه فسيكون الشرح تالياً . UseSSL = حقل من نوع Yes/No . وهو مهم إلى حد ما . والسبب أنه جميع خدمات البريد الحديثة (Gmail, Yahoo, Hotmail) تشترط وجود تشفير SSL . لذا فقيمته بالنسبة لك ستكون دائماً True . الآن كيف نحصل على SMTPPassword المقدم من Gmail ؟ إليك الطريقة خطوة بخطوة ببساطة . في متصفحك ، ادخل إلى ( إعدادات حساب Google ) . تحقق أولاً وقبل كل شيء من تفعيل ميزة ( التحقق بخطوتين ) أو ( 2-Step Verification ) في حسابك . ابحث في خانة البحث عن ( كلمة مرور التطبيق ) أو ( كلمات مرور التطبيقات )، او ( App Password ) ، حسب لغة الموقع لديك . ادخل كلمة المرور الخاصة بالإيميل الذي تريد استخدامه كإيميل مرسل . في خانة ( اسم التطبيق ) أو ( App Name ) ، أدخل اسم للتطبيق ، مثلاً ( SenderMailer ) . ثم انقر زر ( إنشاء أو Creat ) . الآن سيزودك الموقع بكلمة من 16 حرف ، انسخها والصقها في الحقل SMTPPassword . الآن في الجدول المخصص للأعدادات ، سيكون لديك الحقول المهمة وقيمها كالتالي :- SMTPServer = عنوان الخادم وهو smtp.gmail.com SMTPPort وهو المنفذ = 465 SMTPPassword = كلمة المرور التي حصلنا عليها من 16 حرف ( يفضل بدون مسافات ) UseSSL = نعم أو علامة صح SenderEmail = إيميلك الذي سجلت به والذي ستستخدمه للإرسال الآن في زر الإرسال المخصص لكل ايميل بشكل فردي ، سنستخدم الكود البسيط التالي :- Dim result As String Dim strRecipient As String Dim strMessageBody As String strRecipient = Trim(Nz(Me.B2.Value, "")) strMessageBody = Nz(Me.Fonda.Value, "") If strRecipient = "" Then MsgBox "يرجى إدخال إيميل المستلم أولاً", vbExclamation + vbMsgBoxRight, "" Me.B2.SetFocus Exit Sub End If result = SendSmartEmail(strRecipient, "رسالة تجريبية", strMessageBody) If result = "Success" Then MsgBox "تم الإرسال بنجاح", vbInformation + vbMsgBoxRight, "" Else MsgBox "فشل في الإرسال", vbCritical + vbMsgBoxRight, "خطأ" End If وفي زر الإرسال الجماعي ، سنستخدم الكود التالي :- Dim rs As DAO.Recordset Dim result As String Dim counter As Integer Dim strTo As String Dim strMsg As String Set rs = Me.RecordsetClone If rs.RecordCount = 0 Then MsgBox "لا توجد سجلات للإرسال إليها في هذا النموذج", vbInformation + vbMsgBoxRight, "" Exit Sub End If If MsgBox("هل أنت متأكد من إرسال إيميلات لجميع السجلات الحالية؟", vbQuestion + vbYesNo + vbMsgBoxRight, "تأكيد الإرسال") = vbNo Then Exit Sub counter = 0 rs.MoveFirst Do Until rs.EOF strTo = Nz(rs!Gmail, "") strMsg = Nz(rs!Fonda, "") If strTo <> "" Then result = SendSmartEmail(strTo, "تنبيه بريدي", strMsg) If result = "Success" Then counter = counter + 1 End If End If rs.MoveNext Loop MsgBox "تمت عملية الإرسال بنجاح" & vbCrLf & _ "عدد الإيميلات المرسلة: " & counter, vbInformation + vbMsgBoxRight, "" Set rs = Nothing وملاحظة بسيطة ، وهي تستطيع تغيير موضوع عنوان البريد الذي سيصل لأي شخص ترسل له ( بشكل منفرد ) بتغيير قيمة "رسالة تجريبية" داخل زر الإرسال . أو من خلال الزر المخصص للإرسال الجماعي بتغيير قيمة "تنبيه بريدي" ليكون هو العنوان لموضوع البريد . وهذا ملف تجريبي بعد الإضافات التي ذكرتها . فقط يرجى ملئ الجدول بالإيميل و كلمة المرور التي تتكون من 16 حرف فقط . Nouveau.zip الفكرة و المشاركة كانت تتبع الموضوع التالي هنا ، وتم فصلها لإفرادها وكي تعم الفائدة على من يمر باحثاً عن فكرة إرسال بريد من آكسيس دون قيود . التحديث الجديد في هذه المحادثة هنا :- التحديث الجديد في هذه المحادثة هنا :- التحديث الجديد في هذه المحادثة هنا :-
  24. العفو يا صديقي .. يبقى خليني أحاول أمتعك بالتجربة بنفسك إنت والأصدقاء والأخوة ، والتي تم دعمها بالتأثيرات الصوتية أيضاً .. الإصدار المتوافق مع 64 :- Connect 4 - 64.zip الإصدار المتوافق مع 32 :- Connect 4 - 32.zip
×
×
  • اضف...

Important Information