بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 02/12/26 in مشاركات
-
عن تجربتي الشخصية سأتحدث . حيث قمت سابقاً بتنفيذ الفكرة لمشروع آخر ليرسل الإيميلات من بريده في 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 الفكرة و المشاركة كانت تتبع الموضوع التالي هنا ، وتم فصلها لإفرادها وكي تعم الفائدة على من يمر باحثاً عن فكرة إرسال بريد من آكسيس دون قيود .4 points
-
اعرض الملف أداة إنشاء مربعات التحرير والسرد المتتالية {سلسلة الأدوات المساعدة المخصصة} لا يخفى على أي شخص تعامل مع مربعات التحرير والسرد المتتالية مقدار العمل والوقت الذي يحتاجه في - تحديد معايير تصفية البيانات الخاصة بكل مربع تحرير وسرد وفقاً لما تم تحديده في المربعات التي تسبقه بناءً على مرجعية إسم مربع التحرير والنموذج - عند تغيير إسم النموذج قد يؤدي ذلك إلى ضرورة تعديل جملة الإستعلام الخاصة بكل مربعات التحرير والسرد - الأكواد التي يجب كتابتها لحدث بعد التحديث لكل مربع تحرير وسرد ليتم تصفية أي قيم في المربعات التالية وتحديث القوائم بناءً على ماسيتم إختياره هذا هو بالضبط ما ستقوم هذه الأداة بمعالجته وبطريقة سهلة للغاية فلن يتطلب الأمر إلى أي معرفة برمجية مجرد نسخ سطرين (سطرين فقط) وتعيين معايير تصفية بشكل بسيط كل مانحتاجه للتعرف على خطوات الإستفادة من الأداة سنجده في الملف المرفق أرجو أن يتم قراءة جميع الملاحظات بتمعن وفي حال وجود أي أسئلة أو إستفسارات فباب النقاش مفتوح تحياتي,,, صاحب الملف منتصر الانسي تمت الاضافه 02/10/26 الاقسام قسم الأكسيس1 point
-
اهاااا نعم هذا صحيح وهنا يكمن جمال ماتقوم به الأداة فهي تختصر الكثير من الجهد والوقت وتريل أي مخاوف من ظهور الأخطاء التي قد نتفاجأ بها نتيجة أننا قمنا ولأي سبب بتعديل بسيط في إسم النموذج أو إسم مربع التحرير الذي يعتمد عليه لتصفية مربع التحرير الذي يليه1 point
-
مقصدي أن الطريقة التقليدية التي نستخدمها عادةً بوضع Me.Combo2.Requery في حدث AfterUpdate . ولكن بعد مراجعة الكلاس وتحفته الفنية ، لاحظت أنه يقوم بأكثر من مجرد Requery ؛ فهو يقوم بمسح القيم القديمة وبناء جملة SQL ديناميكية لفك الارتباط باسم النموذج .1 point
-
وعليكم السلام ورحمة الله وبركاته .. جرب هذا التعديل أخي الفاضل ، لأنني أستخدم تطبيق واتس اب سطح المكتب ، وليس واتس اب ويب .. كود إرسال مرتبات.xlsm1 point
-
.. ما شاء الله ، فكرة جميلة ونظيفة ولا تشوبها شائبة في التنفيذ . بس استخدام Requery الشيء الجميل في الموضوع هو أنك إذا أردت تغيير المنطق ، ففقط تغيره في مكان واحد وهو الكلاس ، وليس في 50 نموذجاً مثلاً . جزاك الله خيراً لهذه المشاركة الجميلة والقيمة ..1 point
-
شكرا الف استاذنا المبدع الكريم على هذا الاثراء اداة جميلة احترافية تختصر الكثير من الوقت والجهد .. خاصة الأحداث الخاصة بالمربعات المعاناة .. هي في كثرة الحاجة اليها وتكرارها في كثير من النماذج1 point
-
لا ابدا ليس هناك ضرر .. الاختصار والاحكام نلجأ اليه غالبا في حالات منها ان تكون داخل اجراء أو حدث واحد .. وتكون الاكواد فيه طويلة وكثيرة جدا ويمكن اختصارها الى الأفضل .. بشرط ان تكون افضل في السرعة والأداء او ربما عدة احداث طويلة ومكررة يمكن جمعها في دالة واحدة ومناداتها بسطر واحد والفائدة من هذه هي سهولة التعديل مستقبلا او التطوير حيث سيكون التعديل في مكان واحد بدلا اماكن عديدة متفرقة .1 point
-
شكرا جزيلا استاذنا .. معلومة جديدة .. وحقيقة ليتك تفرد هذه المشاركة بموضوع وعنوان جديد يخصها لتفردها ومن اجل سهولة البحث والوصول اليها على فكرة الباسوورد 16 حرف هو المتبع الآن في مواقع بوابات رسائل الـــ sms من اجل ربط التطبيقات بالبوابة للارسال من خلالها ويسمونه Token1 point
-
عفوا .. اقصد ان الدالة تقوم بحماية الحقول بينما هي محمية بالفعل لجعل الحقول قابلة للتحرير اعتقد ستصبح الدالة هكذا Private Sub Add_New_Record() Me.comresearch_01 = Null dateoftrans.Locked = False Me.stat.Locked = False Me.F_DATAILS.Locked = False DoCmd.GoToRecord , , acNewRec End Sub1 point
-
السلام عليكم وجدت لكم صيدا سمينا لمن يواجه صعوبة في استخدام شجرة الحسابات اسميتها الحرة .. لأنها لا تستخدم اداة ActiveX TreeView تعتبر مشكلة أداة ActiveX TreeView في الإصدارات الحديثة من Microsoft Access (خاصة مع ظهور النسخ 64-بت) من أكثر التحديات شيوعاً، لأن الأداة القديمة (MSCOMCTL.OCX) غير مستقرة، تسبب مشاكل في "المكتبات" (DLLs)، ولا تدعم بنية 64-بت بشكل أصيل. هذا هو الخيار "الاحترافي" حالياً. بدلاً من أداة خارجية، يتم استخدام وحدات نمطية (Class Modules) برمجها مطورون لتغيير شكل النماذج العادية لتشبه الشجرة تماماً باستخدام عناصر التحكم الأصلية (مثل الـ Labels والـ Textboxes) تعتبر أداة Jan Karel Pieterse (المعروفة بـ JKP TreeView) واحدة من أرقى الحلول البرمجية التي تعتمد على "الفئات" (Class Modules) لتعويض أداة ActiveX، لأنها لا تعتمد على ملفات خارجية، بل تُبنى بالكامل داخل كود VBA إليكم المثال العملي تم فيه إنشاء شجرة حسابات احترافية بدون الاعتماد على ActiveX ولمن أراد التوسع والاستفادة يوجد امثلة ومرفقات متنوعة مجانية خاصة بأكسس اصدارات قديمة وأكسل وورد .. في هذا الرابط Treeview 26-5.rar1 point
-
1 point