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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

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

  1. ولم الانتظار ؟ الحلول مطروحة الآن بين يديك ، إبدأ بالتطبيق حالا .. واستعن بالله وجرب .. وإن أخطأت حاول ثانية وثالثة ورابعة .... 🙂 هكذا تعلمنا ممن سبقونا 🙂
  2. آمين يارب وإياكم ..
  3. وعليكم السلام ورحمة الله وبركاته 🙂 تفضل أخي عمر : enable.accdb
  4. تمام مثل ما قال أخي @Mohameddd200300 (حسب علمي) .. 🙂 ولأن هذه الخدمة غير متوفرة بشكل مجاني في الأساس (مثل الواتسأب) ، لذلك لا يوجد لها طرق سلسة وسهلة للمستخدم والمبرمج ، ولكن على الرغم من ذلك هناك محاولات سابقة من عدة مبرمجين للاتصال ببرنامج الرسائل في الهاتف وإرسال نص الرسالة ورقم المستلم عن طريق الأكسس .. ولكنها معقدة نوعا ما .. حيث أنه عليك ربط الهاتف بالكمبيوتر عن طريق الكيبل وذلك لإجراء اتصال بينهما .. عسى أن يتاح هذا الأمر قريبا ..
  5. أنا لم أتابع الموضوع من أوله .. ولكن أحس أنني فهمت الفكرة من خلال شرح العم خالد @متقاعد 🙂 فأحببت مشاركتكم تجربتي في هذا الجانب .. في أحد البرامج التي صممتها عملت فكرة مشابهة لهذا الوصف .. وتكمن الفكرة في وجود تقارير سنوية يتم تسليمها من عدة أقسام لقسم معين .. ولكي يتم اعتماد هذه التقارير بشكل نهائي فإنها تمر بعدة مراحل نسميها نحن (حالة التقرير ) وهي كالتالي : لم يتم التسليم بعد. تم التسليم المبدئي. جار مراجعة التقرير. تم إعادة التقرير للتعديل. تم تسليم التقرير بعد المراجعة. تم الاعتماد النهائي. والتقارير تمر على هذه المراحل حتى تستقر على المرحلة رقم 6 حينها يتم إغلاق المعاملة .. وفي بعض الأحيان تنتقل المعاملة من رقم 5 إلى رقم 3 ثم إلى رقم 5 مجددا ثم إلى رقم 6 ... وهكذا .. والسر الذي وراء جميع ذلك هو قائمة منسدلة من عمودين الأول رقم الحالة والثاني الحالة كنص (عمود الرقم ليسهل التحكم بقيمة القائمة في الكود ) .. وهي نفس القائمة التي أوردتها لكم في الأعلى .. ويتم التحكم في تغيير حالة المعاملة (التقرير) عن طريق زر [التسليم] بمساعدة كود VBA يفهم ماهي المرحلة التي وصلها التقرير فيقوم بتغيير القيمة الموجودة في القائمة المنسدلة للقيمة التي بعدها .. وفي حال أننا أردنا إرجاع القيمة من 5 إلى 3 مثلا فإن مدير البرنامج (الآدمن) له نافذة خاصة من خلالها تظهر له القائمة المنسدلة كاملة يكون بإمكانه نقل الحالة لأي رقم آخر يريده ... مع ملاحظة أنني وضعت حقل آخر في نفس السجل اسمه [تاريخ آخر تعديل] يتم تغيير وقت وتاريخ آخر تعديل في القائمة المنسدلة كل مرة. وبالنسبة لمثال الأخ السائل هنا .. يمكن تطبيق نفس الفكرة تماما بوجود قائمة منسدلة بها جميع المراحل التي تمر بها هذه السجلات ويتم تغيير المرحلة عن طريق زر [تسليم] مثلا ، ويتم التحكم في ظهور هذه المعاملات لدى القسم المحدد عن طريق الاستعلامات 🙂 **************** ( تتمة )****************** فيما يتعلق بعمل سجل للتعديلات التي تمت على المعاملة ومن الذي قام بتسليم المعاملة ومن أرجعها و..و..و..... بالتاريخ .. فهذه عملت لها جدول منفصل خاص بالتعديلات غير مرتبط مع أي جدول آخر وأسميته [سجل التعديلات] ... وهذا الجدول يخزن فيه : [الآيدي ID للسجل]، [عنوان المعاملة]، [اسم المستخدم الحالي]، [اسم الكمبيوتر الذي جرت منه التغييرات]، [تاريخ التغيير]، [القيمة السابقة]، [القيمة الجديدة]، [نوع التغيير] .... ويمكنك إضافة أي شئ آخر تريده للجدول .. وعند كل تغيير في السجل (عند الضغط على زر [تسليم] مثلا) يتم إضافة سجل جديد في جدول [سجل التعديلات] باستخدام دالة بها جملة Insert into تقوم بأخذ البيانات وإرسالها للجدول .. وهكذا يمكنني متابعة التعديلات التي جرت على أي سجل أو معاملة بكل دقة .. هذا ما أحببت أن أضيفه وسلامتكم 🙂
  6. نعم أخي أحمد 🙂 لديك العديد من الأخطاء .. يبدو أنك نقلت الكود كما هو بدون أن تغير فيه القيم الموجودة في برنامجك .. 1 - ليس لديك حقل اسمه [ID] ، الحقل عندك اسمه [IDRep] 2- هذا المفروض يكون اسم الحقل الذي تحفظ فيه رابط الملف .. ولكنه غير موجود ، وتحتاج لإضافة 4 حقول لأن لديك 4 صور .. 3 - مكرر .. تزيله 4 - وجدت أنك كررت الدالة selectFile مرتين في موديولين مختلفين لذلك لم تعمل معك .. الحل أن تحذف واحدة وتبقي الأخرى . 5 - وكذلك لديك 8 مكتبات مفقودة ، يجب عليك أن تصلحها : 6- تابع الأكواد التي نسختها من هنا حتى آخرها وغير أسماء الحقول حسب الحقول الموجودة عندك : 7- الحقول ال4 التي في النموذج هي حقول مرفقات .. بينما المفروض أنها تكون حقول [صور] : 8- أسفل كل حقل من حقول الصور تضيف حقل نصي (تضيفها في الجدول أولا ) وذلك لتخزين مسارات الصور ... وتجعلها مخفية في النموذج .
  7. حسب علمي هذه الروابط تستخدم للإنظمام للمجموعة وليس لمراسلتها .. وهذا ربما قد ينحى بنا متحى آخر.. ولكن لا مانع من التجربة .. 🙂 السؤال هو : هل هناك روابط خاصة بالمراسلة ؟ وكيف الطريقة للحصول على هذه الروابط ؟
  8. حسب التجربة .. موضوع الإرسال للجروبات معتمد على ضغطات المفاتيح SenKeys للتركيز على خانة البحث .. ثم إرسال أسم المجموعة والبحث عنها ثم فتحها وإرسال الرسالة .. وبعد أن جربت تطبيق ذلك بطريقتي .. وجدت أن العملية غير مضمونة النتائج فكثيرا ما يخطئ البرنامج بسبب الاعتماد الكلي على نتائج البحث والتي قد تخطيء لو وجدت أخطاء في كتابة اسم المجموعة .. أو وجدت كلمات مشابهة لاسم المجموعة في محادثة أخرى .. لذلك يعتبر هذا الحل غير مثالي في الوقت الحالي .. وننتظر لحد ما تطلعلنا فكرة أفضل 🙂
  9. شكرا لك أخي @محمد احمد لطفى .. 🙂 لم أطلع عليه بعد ولكن إن شاء الله نستفيد منه لدمج الأفكار مع بعضها 🙂
  10. هذه الدالة موجودة هنا .. يجب نقل هذا الجزء لبرنامجك : وبالنسبة لهذه الجزئية : تكرر الكود الخاص بإضافة الملف لكل زر عندك .. فقط تغير هذا الجزء ليتم حفظ كل ملف في مكانه المناسب : عفوا 🙂🌹
  11. اللهم آمين يارب العالمين🌹 أخي طاهر هنا شرحت طريقة إرسال تقرير من الأكسس مباشرة : بارك الله فيك أخي أبو أمين 🙂 طريقة الإرسال التي ذكرتها هي نفس طريقة الإرسال الجماعي التي في البرنامج .. الأرقام مخزنة في الجدول ويرسل لها جميعها مرة واحدة .. والدالة التي أعطيتكم إياها هي الأداة التي يمكنك أن تبدع بها في كيفية إرسال الرسائل بآلاف الطرق والكيفيات المختلفة حسب كيفية عمل برنامجك الخاص.. 😉
  12. نورت المكان عمي قاسم واستجاب الله دعواتك 🙂 نعم عمي قاسم بالضبط .. تحفظ الملف PDF بجانب البرنامج بشكل مؤقت .. ثم ترسل الرابط لدالة إرسال الواتسأب .. وبعد الإرسال تحذف الملف صحيح أن الموضوع يأخذ وقت لو كانت قائمة المرسل إليهم كبيرة .. ولكن هذا ما توصلنا إليه إلى الآن .. ولعله تتكرم علينا شركة الواتسأب بدوال API مباشرة للإرسال في النسخة المجانية .. 🙂 وشخصيا استخدمت هذه الطريقة في أحد برامجي .. وهذا بشكل مختصر الكود الذي استخدمه : Dim SaveToPath As String Dim SaveFullName As String SaveToPath = CurrentProject.Path & "\" SaveFullName = SaveToPath & "ReportName.pdf" DoCmd.OutputTo acOutputReport, "ReportName", "*.pdf", SaveFullName, False, , , acExportQualityPrint SendToWhatsApp "PhoneNumber", "الرسالة", SaveFullName, Document Kill SaveFullName ' MsgBox " تم الإرســــــال ", vbMsgBoxRight, "" عمي أبو خليل كلماتك هي وسام فخر واعتزاز لتلميذكم الصغير 🙂 جزاك الله خيرا على الكلمات المحفزة والدعوات الطيبة .. ولا حرمنا الله خيركم 🙂
  13. السلام عليكم أخي @bidheel2009 🙂 إن كان هذا البرنامج من تصميمك ياريت لو تسوق له بشكل جيد .. ضع بعض الصور مثلا .. أو اشرح مميزات البرنامج .. أو الجهود التي بذلتها فيه .. يعني كلمتين حلوين يشدوا القارئ .. 🙂
  14. للنسخة العادية من الواتسأب غير متاح .. ولكن للنسخة التجارية المدفوعة يمكن عن طريق دوال ال Api الخاصة بشركة الواتسأب .. هذه يمكنك فعلها بسهولة .. قبل مناداة الدالة التي ذكرتها .. قم بتجميع البيانات التي تريد إرسالها للأشخاص في متغير واحد (بحيث تتغير الرسالة لكل شخص) ثم أرسله لدالة الواتسأب لإرسالها بالشكل النهائي .. ( يحتاجلك تتعلم هذه المهارات سهلة 😉👌🏼 ) هذه لا علم لي بها بعد .. 🙂
  15. :: إضـــــافـــة :: هذا هو الموديول الذي يمكنك نقله إلى برنامجك الخاص ومناداته باسم الدالة .. Option Compare Database Option Explicit Enum AttacmentsType Image = 1 Sticker = 2 Document = 3 End Enum #If VBA7 Or Win64 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare PtrSafe Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As LongPtr) As LongPtr Public Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer #End If Private Const VK_NUMLOCK = &H90 Public Sub SendToWhatsApp(txtPhone As String, txtMSG As String, Optional txtAttchmentPath As String = "", Optional AttachmentType As AttacmentsType = Image) '---------------------------------------(التحقق من اكتمال البيانات) If Len(txtMSG & "") = 0 Then MsgBox "يرجى كتابة الرسالة": Exit Sub If txtAttchmentPath <> "" Then If Len(Dir(txtAttchmentPath, vbDirectory)) = 0 Then MsgBox "المرفق غير موجود .. تأكد من الرابط": Exit Sub End If txtMSG = Replace(txtMSG, vbCrLf, " %0a ") txtMSG = Replace(txtMSG, Chr(10), " %0a ") txtMSG = Replace(txtMSG, Chr(13), " %0a ") '---------------------------------------(بداية الإرسال) Dim Path As String Path = "whatsapp://send?phone=" & txtPhone & "&text=" & txtMSG CreateObject("Shell.Application").Namespace(0).ParseName(Path).InvokeVerb "Open" ' إرسال الرسالة Sleep 2000 SendKeys "~" Sleep 500 SendKeys "~" ' إرسال المرفق إن وجد If txtAttchmentPath <> "" Then SendKeys "+{TAB}" SendKeys "~" Sleep 1000 Select Case AttachmentType Case Is = 1 ' صورة SendKeys "{UP}" ' لإرسال الصور ' SendKeys "{UP}" ' لإرسال الملصقات ' SendKeys "{UP}" ' لفتح الكاميرة ' SendKeys "{UP}" ' لإرسال مستند ' SendKeys "{UP}" ' لإرسال جهة إتصال Case Is = 2 ' ملصق SendKeys "{UP}" ' لإرسال الصور SendKeys "{UP}" ' لإرسال الملصقات ' SendKeys "{UP}" ' لفتح الكاميرة ' SendKeys "{UP}" ' لإرسال مستند ' SendKeys "{UP}" ' لإرسال جهة إتصال Case Is = 3 ' مستند SendKeys "{UP}" ' لإرسال الصور SendKeys "{UP}" ' لإرسال الملصقات SendKeys "{UP}" ' لفتح الكاميرة SendKeys "{UP}" ' لإرسال مستند ' SendKeys "{UP}" ' لإرسال جهة إتصال End Select SendKeys "~" Sleep 1000 SendKeys txtAttchmentPath, True SendKeys "~" Sleep 2000 SendKeys "~" Sleep 1000 SendKeys "~" End If 'If NumLock is off, turn it on If GetKeyState(VK_NUMLOCK) = 0 Then 'Send NumLock key press to turn it on SendKeys "{NUMLOCK}" End If '---------------------------------------( إعادة التركيز لبرنامج الأكسس) SetForegroundWindow Application.hWndAccessApp ' MsgBox " تم الإرســــــال ", vbMsgBoxRight, "" End Sub وهكذا تنادي الدالة : SendToWhatsApp "96899445566", "السلام عليكم", "C:\Users\User\Desktop\123.jpg", Image
  16. اعرض الملف 🎁 :: مرسال الواتسأب :: 📨 :: الإصدار الثاني 2.0 :: مطور :: 🧬🏹 السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والرائعة (مرسال الواتسأب) مع المرفقات مرسال الواتسأب مع المرفقات | سلسلة هدايا الأكسس | 03| 🎁 وهو عبارة عن برنامج صغير لإرسال الرسائل للواتسأب مع المرفقات .. :: من مميزات هذا الإصدار :: - إرسال رسائل فردية أو جماعية عن طريق برنامج الواتسأب . - لا يحتاج لبرنامج الإنترنت إكسبلورر لفتح الواتسأب. - لا يغلق مفتاح الـ NumLock بعد الإرسال. -تم اختصار الكود في موديول واحد ودالة واحدة تقوم بعملية الإرسال بعدة خيارات . - لو أردت تطبيق الكود في برنامجك الخاص ستحتاج لنقل الموديول إلى برنامجك + سطر برمجي واحد فقط لعملية الإرسال. :: شرح البرنامج :: :: لتحميل البرنامج :: صاحب الملف Moosak تمت الاضافه 30 مار, 2023 الاقسام قسم الأكسيس
  17. Version 1.0.0

    358 تنزيل

    السلام عليكم ورحمة الله وبركاته يسرني اليوم أن أقدم لكم هذه الهدية المتميزة والرائعة (مرسال الواتسأب) مع المرفقات مرسال الواتسأب مع المرفقات | سلسلة هدايا الأكسس | 03| 🎁 وهو عبارة عن برنامج صغير لإرسال الرسائل للواتسأب مع المرفقات .. :: من مميزات هذا الإصدار :: - إرسال رسائل فردية أو جماعية عن طريق برنامج الواتسأب . - لا يحتاج لبرنامج الإنترنت إكسبلورر لفتح الواتسأب. - لا يغلق مفتاح الـ NumLock بعد الإرسال. -تم اختصار الكود في موديول واحد ودالة واحدة تقوم بعملية الإرسال بعدة خيارات . - لو أردت تطبيق الكود في برنامجك الخاص ستحتاج لنقل الموديول إلى برنامجك + سطر برمجي واحد فقط لعملية الإرسال. :: شرح البرنامج :: :: لتحميل البرنامج :: من المرفقات
  18. أتفق معك تماما عمي المهندس خالد @متقاعد 🙂 وكان جوابي السابق لأخي @ابو هاله النبلسي عن طريقة استخدام الأداة وعن الصياغة .. ولم يكن عن المنطق .. أما لو تطرقنا للمنطق وطبقنا فكرتك عمي خالد فهنا الأمر يتطلب إضافة معيار جديد للقيمة الفريدة كالـ ID مثلا .. وتطبيقه بالأداة سيكون هكذا : والدالة الناتجة هكذا : DLookUp("[First Name]","[SampleTable]","[BirthDate] >=#"& [Forms]![SampleForm]![TxtBox1] &"# And [BirthDate] <=#"& [Forms]![SampleForm]![TxtBox2] &"# And [ID] =90 ") وهذا ينطبق على المعامل Like .. الحل يكمن في إضافة المعيار الفريد .. 🙂
  19. تذكرت الآن شيء يغنيك عن الإضافة اليدوية أخي @ابو هاله النبلسي 🙂 يمكنك استخدام هذه الطريقة .. بدل استخدام Between استخدم المعيارين <= و >= بهذه الطريقة وستعطيك نفس نتيجة المعامل Between .. هكذا : ووهذه هي الدالة الناتجة : DSum("[Salary]","[SampleTable]","[BirthDate] >=#"& [Forms]![SampleForm]![TxtBox1] &"# And [BirthDate] <=#"& [Forms]![SampleForm]![TxtBox2] &"# ") 🙂
  20. مشاركة خفيفة مع العم @ابوخليل 🙂 طريقة الحصول على تاريخ أول يوم وآخر يوم في الأسبوع بأسهل طريقة بناءا على تاريخ اليوم ()Date : startWeek = DateAdd("d", -(Weekday(Date) - 1), Date) endWeek = DateAdd("d", 6, DateAdd("d", -(Weekday(Date) - 1), Date)) ولمعرفة أول يوم وآخر يوم في الأسبوع لتاريخ معين (غير تاريخ اليوم) .. قم باستبدال Date بالتاريخ الذي تريده .
  21. آمين يارب العالمين .. وإياكم أخي @ابو هاله النبلسي 🙂
  22. لاختيار التاريخين من نموذج ستقوم بعمل تعديلات على الدالة يدويا هكذا : الدالة التي ستعطيك إياها الأداة : DLookUp("[CreationDate]","[SubjectsF]","[CreationDate] Between #"& [Forms]![Formena]![txt1] &"#") والدالة بعد التعديل اليدوي : DLookUp("[CreationDate]","[SubjectsF]","[CreationDate] Between #"& [Forms]![Formena]![txt1] &"# and #"& [Forms]![Formena]![txt2] &"#") وهذا شكلها :
×
×
  • اضف...

Important Information