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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

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

  1. وعليكم السلام 🙂 عليك بهذا :
  2. 😅😅😅😂😂 منك السموحة الغالي 😅✋🏻 لها محل ونص ، ووقرت في صميم القلب بعد 😅 بس القصد إيصال المعلومة بشكل صحيح للمتلقي .. خصوصا اللي ما بيقرأ الردود .. أفكر في المستقبل البعيد 😁..
  3. أهلا أهلا أهلا بكبير المعلمين وحامل المسك 😊 زين بخرت المكان قبل لا نروح فيها 😂 أشكرك على المرور والتعليق أستاذنا @jjafferr الحقيقة وأنا أنشيء هذا الموضوع وأعمل البرنامج والتجارب عليه وأعالج الأخطاء اللي ظهرت لي ، دارت في بالي الكثير من الأفكار والمقترحات اللي يمكن تطبيقها على نفس الفكرة ، ومنها ضمنها تشغيل وحدة نمطية في ال BE بدل الفورم ( مثل ما ذكرت ) ولكن رأيت أن الفورم أسهل حتى في استدعاء البيانات من الجدول ، وفي النهاية الفكرة فيها إضافة كائنات أخرى غير الجداول في قاعدة البيانات ( موديول ، ماكرو ، .... الخ ) . وكذلك دمجها مع الكثير من الأفكار اللي تم طرحها سابقا في المنتدى مثل ( إعادة الإتصال التلقائي ) ، و ( إنشاء إختصار وأيكونة في سطح المكتب ) ، وووو وغيرها .. فقررت أخلي المجال مفتوح لإبداعات الشباب أنت الآن نورتني لفكرة الحصول على مكان الFE مباشرة قبل التحديث واستخدامه للتبديل ، فكرة عبقرية ولكن ما خطرت في بالي لأن الوضع معي في العمل هو أنني أنصب ال FE بنفسي للمستخدمين وما أخليهم يعبثو بموقعه لأنهم لو تورطوا وما عرفو يربطوه بال BE بيرجعولي في النهاية 😁 لحد الحين النقطتين 1 و 2 الحمدلله ما صارت معي ، الشبكة أمورها طيبة .. بالنسبة للنقطة هذي طبعا العمل كله على المبرمج ، فقط الرسالة اللي تطلع أول شي أنا مقرر ألغيها تماما في برامجي ، فقط وضعتها هنا على سبيل التجربة علشان أحس أن الكود شغال 😅 ، وإلا فالمستخدم ما بيحس أصلا بأنه تغير شي ، كله بالصامت . وبإذن الله ممكن أطور الكود ليأخذ عنوان ال FE لكل مستخدم على حده . هو يصلح .. بس تضل الطريقة اللي ذكرتها تحمل في طياتها البلاوي 😅🖐🏼️
  4. لعلك تريد ربط موضوعك بهذا الموضوع : 🙂 إذا كان كذلك .. فالجواب : لا ، ليست هناك حاجة لربط جدول الإصدار ببقية الجداول . 🙂
  5. تفضل أخي هذه أهم أوامر التعامل والتنقل بين السجلات والتعامل مع التقارير .. 🙂 خذ منها ما تريده .. وادمج الأوامر التي تريدها في زر واحد : أولا حذف السجل Private Sub DeleteBtn_Click() On Error GoTo Err_DeleteBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdDeleteRecord Exit_DeleteBtn_Click: Exit Sub Err_DeleteBtn_Click: MsgBox Err.Description Resume Exit_DeleteBtn_Click End Sub إضافة سجل جديد Private Sub AddNewBtn_Click() On Error GoTo Err_AddNewBtn_Click DoCmd.GoToRecord , , acNewRec Exit_AddNewBtn_Click: Exit Sub Err_AddNewBtn_Click: MsgBox Err.Description Resume Exit_AddNewBtn_Click End Sub السجل التالي Private Sub NextBtn_Click() On Error GoTo Err_NextBtn_Click DoCmd.GoToRecord , , acNext Exit_NextBtn_Click: Exit Sub Err_NextBtn_Click: MsgBox Err.Description Resume Exit_NextBtn_Click End Sub السجل السابق Private Sub PreviousBtn_Click() On Error GoTo Err_PreviousBtn_Click DoCmd.GoToRecord , , acPrevious Exit_PreviousBtn_Click: Exit Sub Err_PreviousBtn_Click: MsgBox Err.Description Resume Exit_PreviousBtn_Click End Sub السجل الأول Private Sub FirstBtn_Click() On Error GoTo Err_FirstBtn_Click DoCmd.GoToRecord , , acFirst Exit_FirstBtn_Click: Exit Sub Err_FirstBtn_Click: MsgBox Err.Description Resume Exit_FirstBtn_Click End Sub السجل الأخير Private Sub LastBtn_Click() On Error GoTo Err_LastBtn_Click DoCmd.GoToRecord , , acLast Exit_LastBtn_Click: Exit Sub Err_LastBtn_Click: MsgBox Err.Description Resume Exit_LastBtn_Click End Sub البحث عن سجل Private Sub FinedRecBtn_Click() On Error GoTo Err_FinedRecBtn_Click Screen.PreviousControl.SetFocus DoCmd.RunCommand acCmdFind Exit_FinedRecBtn_Click: Exit Sub Err_FinedRecBtn_Click: MsgBox Err.Description Resume Exit_FinedRecBtn_Click End Sub تكرار السجل Private Sub DublicateRecBtn_Click() On Error GoTo Err_DublicateRecBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.RunCommand acCmdRecordsGoToNew DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdPaste Exit_DublicateRecBtn_Click: Exit Sub Err_DublicateRecBtn_Click: MsgBox Err.Description Resume Exit_DublicateRecBtn_Click End Sub حفظ السجل Private Sub SaveRecBtn_Click() On Error GoTo Err_SaveRecBtn_Click DoCmd.RunCommand acCmdSaveRecord Exit_SaveRecBtn_Click: Exit Sub Err_SaveRecBtn_Click: MsgBox Err.Description Resume Exit_SaveRecBtn_Click End Sub طباعة السجل الحالي Private Sub PrintRecBtn_Click() On Error GoTo Err_PrintRecBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.PrintOut acSelection Exit_PrintRecBtn_Click: Exit Sub Err_PrintRecBtn_Click: MsgBox Err.Description Resume Exit_PrintRecBtn_Click End Sub التراجع عن التسجيل Private Sub UndoRecBtn_Click() On Error GoTo Err_UndoRecBtn_Click DoCmd.RunCommand acCmdUndo Exit_UndoRecBtn_Click: Exit Sub Err_UndoRecBtn_Click: MsgBox Err.Description Resume Exit_UndoRecBtn_Click End Sub طباعة سجل محدد Private Sub Print_Click() On Error GoTo Err_PrintReportBtn_Click Dim stDocName As String stDocName = "ReportName" DoCmd.OpenReport stDocName, acViewPreview, , "ID=" & [ID] DoCmd.RunCommand acCmdPrint Exit_PrintReportBtn_Click: Exit Sub Err_PrintReportBtn_Click: MsgBox Err.Description Resume Exit_PrintReportBtn_Click End Sub طباعة تقرير Private Sub PrintReportBtn_Click() On Error GoTo Err_PrintReportBtn_Click Dim stDocName As String stDocName = "ReportName" DoCmd.OpenReport stDocName, acNormal Exit_PrintReportBtn_Click: Exit Sub Err_PrintReportBtn_Click: MsgBox Err.Description Resume Exit_PrintReportBtn_Click End Sub معاينة تقرير Private Sub VeiwReportBtn_Click() On Error GoTo Err_VeiwReportBtn_Click Dim stDocName As String stDocName = "ReportName" DoCmd.OpenReport stDocName, acPreview Exit_VeiwReportBtn_Click: Exit Sub Err_VeiwReportBtn_Click: MsgBox Err.Description Resume Exit_VeiwReportBtn_Click End Sub فتح تقرير Private Sub OpenReportBtn_Click() On Error GoTo Err_OpenReportBtn_Click Dim stDocName As String stDocName = "ReportName" DoCmd.OpenReport stDocName, acViewReport Exit_OpenReportBtn_Click: Exit Sub Err_OpenReportBtn_Click: MsgBox Err.Description Resume Exit_OpenReportBtn_Click End Sub حفظ تقرير بصيغة Private Sub SendReportToBtn_Click() On Error GoTo Err_SendReportToBtn_Click Dim stDocName As String stDocName = "ReportName" DoCmd.OutputTo acReport, stDocName Exit_SendReportToBtn_Click: Exit Sub Err_SendReportToBtn_Click: MsgBox Err.Description Resume Exit_SendReportToBtn_Click End Sub
  6. في الحقيقة لا أخفيك أمرا أنني قرأت ردك أكثر من 4 مرات ولم أفهم ما تقصده .. !! ولكن كأنني فهمت أنك تتكلم عن أخذ نسخة احتياطية قبل البدء بالتحديث .. وهذا ممكن طبعا بإضافة تحديث بسيط على الكود .. أما فيما يتعلق بالشبكة .. فياليت لو توضح أكثر بلغة بسيطة .. أو يترجم لنا حبيبنا جعفر 😄 وجزيل الشكر وأعظمه للجميع على المرور 😊🌹
  7. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته اليوم جئتكم بفكرة جديدة وإبداعية لتحديث نسخة الواجهات FE لدى المستخدمين بدون الاستعانة بملفات وبرامج خارجية 🙂 وذلك بالاستعانة بملفي الواجهات FE وملف قاعدة البيانات ( الجداول ) BE فقط 😊 وقد قمت بشرح الفكرة ومحاولة تبسيطها قدر الإمكان من خلال الشرح الآتي مستعيناً بالله وتوفيقه .. :: أصل المشكلة :: أولاً : من المعلوم أنه يفضل أن يكون البرنامج مقسم إلى ملفين ( الواجهات FE - وقاعدة الجداول BE ) وذلك لكي يعمل عليه أكثر من مستخدم. FE: هي اختصار لـ Front End النهاية الأمامية .. أي ملف الواجهات و BE: هي اختصار لـ Back End النهاية الخلفية .. وهو ملف الجداول ملف الـ BE غالبا ما يكون مخزن في السيرفر بطريقة يمكن لجميع المستخدمين من الوصول إليه حيث أن البيانات جميعها يتم تخزينها فيه. ويتم توزيع ملفات الـ( FE) على أجهزة المستخدمين ، وهي محور حديثنا لهذا اليوم الرائع الجميل .. 😊 مختصر الكلام : أنه كثيرا ما يعاني مصممو البرامج من إعادة توزيع ملفات الواجهات ( FE ) على أجهزة المستخدمين عندما تكون هناك تحديثات جديدة على البرنامج أو معالجة لأخطاء في البرنامج ... الطريقة والفكرة التي سنتحدث عنها اليوم تقوم بحل هذه المعاناة وجعل البرنامج يقوم بتوزيع الـ (FE) نيابة عنك أوتوماتيكيا وبدون أي جهد يطلب من المستخدمين .. 😉 :: شرح الفكرة وآلية العمل :: الفكرة التي سأطرحها قائمة على الاتصال بملف الجداول الـ (BE) والاستعانة به ليقوم بتوزيع ملف التحديث الجديد على أجهزة المستخدمين بعد أن يستبدل القديم بالجديد .. حيث أننا سنحتاج إلى : 1 - جدول في قاعدة الـ (BE) ومتصل بنسخة الـ (FE) كذلك، لتخزين روابط مواقع كل ملف ( FE - BE - New Update ). 2- ماكرو Autoexec وضيفته تشغيل الكود الذي سيفحص وجود تحديثات جديدة من عدمه عند بدء تشغيل البرنامج ، ويوضع في نسخة الـ (FE). 3- سنحتاج لإضافة نموذج في نسخة الجداول الـ (BE) مهمته تشغيل الكود الذي سيحدث نسخة الـ (FE). والكود يعمل عند حدث (عند التشغيل - ON OPEN ). 4- سنحتاج لجدول (محلي) يبقى في نسخة الواجهات الـ (FE) فيه حقل تاريخ عبارة عن سجل واحد يكتب فيه تاريخ الإصدار للنسخة الحالية. وهذا شرح مصور مبسط لآلية العمل : الصورة (1) : محتويات الملفات الأساسية المستخدمة في العمل. الصورة (2) : المرحلة الأولى : فحص وجوود تحديثات جديدة من خلال ملف الواجهات FE الصورة (3) : رسالة تأكيد للبدء في التحديث الصورة (4) : الخطوة الثالثة : إغلاق ال(FE) وفتح ال(BE) الصورة (5) : إستبدال النسخة القديمة بالجديدة وإعادة تشغيل البرنامج 🙂 هذا كل شيء ببساطة 😅🖐️ :: الأكواد المستخدمة :: أولاً : الكود المستخدم في ملف الواجهات الـ (FE) : Public Sub UpdateUsersFE(CurrentVerDate As Date, NewVerDate As Date, _ txtOldFEPath As String, txtNewFEPath As String, _ txtBEPath As String, txtBEUpdateForm As String, _ DoTheUpdaet As Boolean) On Error Resume Next ' ************************************************** Check If the Manager Send The Update Order If DoTheUpdaet = True Then ' Continue The Code Else MsgBox "لا يوجد تحديث جديد" Exit Sub End If ' ************************************************** Check Version Date If CurrentVerDate < NewVerDate Then ' Continue The Code ' MsgBox "سوف يتم التحديث إن شاء الله" ' Exit Sub Else ' MsgBox "لديك آخر إصدار" Exit Sub End If ' *************************************************** Confermation Msg. If MsgBox("لديك تحديث جديد للبرنامج، متابعة؟", vbYesNo, "Apply New Update?") = vbYes Then Else: Exit Sub End If ' ************************************************** Open the BE and the Update Form Dim objAdb As Object Set objAdb = CreateObject("Access.Application") objAdb.OpenCurrentDatabase (txtBEPath) objAdb.DoCmd.OpenForm txtBEUpdateForm objAdb.Visible = False ' ************************************************** Close FE Database DoCmd.Quit Set objAdb = Nothing End Sub Public Function testUpdate() Dim BackEndPath As String, FrontEndPath As String, UpdatePath As String, CurrentVerDate As Date, NewVerDate As Date, StartUpdating As Boolean CurrentVerDate = DFirst("[VersionDate]", "[FE_Tbl_Version]") NewVerDate = DFirst("[LastUpdateDate]", "[BE_Tbl_Updates]") BackEndPath = DFirst("[BackEndPath]", "[BE_Tbl_Updates]") FrontEndPath = DFirst("[FrontEndPath]", "[BE_Tbl_Updates]") UpdatePath = DFirst("[UpdatePath]", "[BE_Tbl_Updates]") StartUpdating = DFirst("[StartUpdating]", "[BE_Tbl_Updates]") Call UpdateUsersFE(CurrentVerDate, NewVerDate, FrontEndPath, UpdatePath, BackEndPath, "BE_Frm_StartUpdating", StartUpdating) End Function ثانياً : الكود المستخدم في ملف الجداول الـ (BE) : #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If Private Sub Form_Open(Cancel As Integer) Call UpdateFE End Sub Public Sub UpdateFE() Dim FrontEndPath As String, NewUpdatePath As String FrontEndPath = DFirst("[FrontEndPath]", "[BE_Tbl_Updates]") NewUpdatePath = DFirst("[UpdatePath]", "[BE_Tbl_Updates]") 'On Error Resume Next '********************************************************************(Waite for 3 seconds until FE Closed ) Sleep 3000 '********************************************************************(Copy the New Update to the User PC) Dim fs As Object Set fs = CreateObject("Scripting.FileSystemObject") 'Kill FrontEndPath 'Sleep 1000 fs.CopyFile NewUpdatePath, FrontEndPath, True '********************************************************************(Open the new FE for the user) 'Sleep 1000 Dim objAdb As Object Set objAdb = CreateObject("Access.Application") objAdb.OpenCurrentDatabase (FrontEndPath) objAdb.Visible = True objAdb.DoCmd.RunCommand acCmdAppMaximize '*********************************************************************(Close BE) DoCmd.Quit Set objAdb = Nothing End Sub :: (مهم جدا ) قبل التجربة والتطبيق :: ستجدون في المرفقات ثلاثة ملفات: - ملف الواجهات القديم (FE-MyApplication) - ملف الجداول (BE-MyApplicationDatabase) -وملف الواجهات المحدث (FE-NewUpdateV2.0) أولاً : يجب إعادة ربط ملفي الواجهات (القديم + التحديث ) بملف الجداول (يدوياً ) .. وهي خطوة مهمة للعمل .. ( يمكنك عملها أوتوماتيكيا بالأكواد في برنامجك لاحقاً ، لم أشأ تعقيد الأمور هنا 😅) ثانياً : يجب عليك تحديث روابط أماكن الملفات الثلاثة في جدول (BE_Tbl_Updates) وذلك من خلال النموذج (FE_Frm_UpdateInfo) الموجود في نسخة الواجهات. والآن يمكنك الانطلاق والبدء في تجربة البرنامج 😉👊 قم بتشغيل البرنامج FE-MyApplication وانتظر لترى النتيجة 😊👌 ملاحظة : لإعادة التجربة مرة أخرى بعد التحديث ، قم بتأخير تاريخ النسخة الأمامية من جدول (FE_Tbl_Version) إلى تاريخ سابق للتاريخ المخزن في قاعدة البيانات . *************************************************************** هذا كل شيء ولا تنسوا أن تنوروني بآرائكم ومقترحاتكم ولا تنسوني من صالح دعواتكم 😊 :: التحميل :: FrontEnd Updator V1.0.rar
  8. اعرض الملف 📟 آلة حاسبة 📟 - هدية مميزة مفتوحة المصدر 🎁 السلام عليكم ورحمة الله وبركاته يطيب لي أن أقدم لكم هذا العمل البسيط وهو عبارة عن 🙂 :: آلة حاسبة :: أهديكموها مفتوحة المصدر 😊🎁 ومن مميزاتها : تم إضافة خاصية الحساب عن طريق مفاتيح الكيبورد 😊 ولا تنسونا من صالح دعواتكم 🙂 صاحب الملف Moosak تمت الاضافه 06 يون, 2022 الاقسام قسم الأكسيس  
  9. Version 1.0.0

    140 تنزيل

    السلام عليكم ورحمة الله وبركاته يطيب لي أن أقدم لكم هذا العمل البسيط وهو عبارة عن 🙂 :: آلة حاسبة :: أهديكموها مفتوحة المصدر 😊🎁 ومن مميزاتها : تم إضافة خاصية الحساب عن طريق مفاتيح الكيبورد 😊 ولا تنسونا من صالح دعواتكم 🙂
  10. أهلا بك أخي أبا الحسن .. 🙂 يحتاج تقسم قاعدة البيانات أولا لكي تعمل لديك هذه التقنية .. أما بالنسبة لباقي السؤال .. فيمكن أن يضاف شرط في الكود بأولوية نسخة الجوجل درايف .. أو أن يضاف حقل في الجدول به ترتيب حسب الأولوية ليتعرف عليه الكود ..
  11. إذا كنت تشتغل على نسخة أقدم من 2010 شيل رقم 2 وحتشتغل معاك تمام إن شاء الله.. يعني بدل Dim Rs Recordset2 تخليها Dim Rs Recordset وما تحتاج لإضافة أي مكتبات إضافية ..
  12. حيالله مهندسنا العزيز 😊 هذا الاختصار يشغل لك أداة اسمها snipping tool وهي من ضمن أدوات ويندوز ، ووضيفتها أخذ لقطة لجزء من الشاشة أو شاشة كاملة أو لنافذة معينة ( بمعنى انها تسهل لك الموضوع ) ، وبعدها ممكن تعمل لصق للصور في أي مكان بشكل عادي أو تفتح محرر للصور خاص بويندوز لتحرير الصورة .. 🙂 ولمعرفة المزيد: https://en.m.wikipedia.org/wiki/Snipping_Tool
  13. قريبا إن شاء الله .. 😊 طريقة إبداعية جديدة وحصرية لتحديث نسخة الواجهات FE لدى المستخدمين بدون برامج أو أدوات خارجية .. أكسس فقط .. 😉👌🏼 :: ترقبوا ::
  14. أول شي خليني أخبرك سر خطير لتصوير الشاشة 😏👌🏼 جرب تضغط : شعار الويندوز + S + SHIFT ثانيا : زين تعطينا تعليمات التشغيل 😅
  15. تفضل أخي عمر .. 🙂 المشكلة كانت في مصدر القوائم المنسدلة .. كانت مختلفة عن الحقول الرئيسية في النموذج .. application.rar
  16. أريدك انت ترفع الملف المعدل .. مثل ما ذكرت سابقا 👍🏼😏 ودعنا نتعلم من خبراتك 😌🌹
  17. والموضوع اللي يقصده أخونا @rockjone33 هذا هو : 🙂
  18. هات ما عندك .. 😏 وعلى فكرة في المثال اللي تقصده أنا بنيته على هذي الفكرة : 😉 وهو نفس كود المهندس جعفر تقريبا بس محول إلى دالة عامة . 🙂
  19. هناك عدة أفكار ممكن تطبقها وخذ منها ما تراه مناسباً حسب خيالك الواسع 🙂 كود دالة تفحص إذا كانت الجداول المرتبطة متصلة أم لا : الشرح : عندما يكون البرنامج مقسم لنسختين FE و BE وضيفة الكود أن تعطيه اسم أحد الجداول المرتبطة فيفحصه إذا كان متصل أم لا ويعطيك النتيجة True / False Private Function TableLinkOkay(strTableName As String) As Boolean 'Function accepts a table name and tests first to determine if linked 'table, then tests link by performing refresh link. 'Error causes TableLinkOkay = False, else TableLinkOkay = True Dim CurDB As dao.Database Dim tdf As TableDef Dim strFieldName As String On Error GoTo TableLinkOkayError Set CurDB = DBEngine.Workspaces(0).Databases(0) Set tdf = CurDB.TableDefs(strTableName) TableLinkOkay = True If tdf.Connect <> "" Then '#BGC updated to be more thorough in checking the link by opening a recordset 'ACS 10/31/2013 Added brackets to support spaces in table and field names strFieldName = CurDB.OpenRecordset("SELECT TOP 1 [" & tdf.Fields(0).Name & "] FROM [" & tdf.Name & "];", dbOpenSnapshot, dbReadOnly).Fields(0).Name 'Do not test if nonlinked table End If TableLinkOkay = True TableLinkOkayExit: Exit Function TableLinkOkayError: TableLinkOkay = False GoTo TableLinkOkayExit End Function وتناديه أو تستدعيه بهذه الصورة : TableLinkOkay("strTableName") كود دالة للتأكد ما إذا كان الملف أو المجلد المعطى موجود أم لا : الشرح : هذه الدالة تعطيها مسار الملف أو المجلد الذي تريد فحص وجوده ، ثم تعطيك نتيجة من نوع : True or False Public Function IsFileExists(txtPath As String) As Boolean ' To check whether a given file or folder exists or not If Len(Dir(txtPath, vbDirectory)) = 0 Then IsFileExists = False Else IsFileExists = True End If End Function وتستدعيه هكذا : IsFileExists(txtPath) كود لفحص حالة الإتصال بالإنترنت ( متصل / غير متصل ) : #If VBA7 Then Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" _ (ByRef dwFlags As Long, _ ByVal dwReserved As Long) As Boolean #Else Private Declare Function InternetGetConnectedState Lib "wininet.dll" _ (ByRef dwFlags As Long, _ ByVal dwReserved As Long) As Boolean #End If Function Is_Connected() As Boolean Dim IEStat As Long Is_Connected = (InternetGetConnectedState(IEStat, 0&) <> 0) End Function Public Sub TestInternetConnection() If Is_Connected() = True Then MsgBox "Connected" Else MsgBox "Not Connected" End If End Sub طريقة الاستدعاء : Connected() هذه تعطيك نتيجة نعم/ لا على الإتصال TestInternetConnection() وهذه تظهر لك رسالة تخبرك إن كان متصل أم لا
  20. تم حل مشكلة الأرقام العشرية (ولله الحمد) قبل أن أرى مشاركتك عمي @jjafferr 😅🖐️ والملف أرفقته في المشاركة الأصلية 🙂 عمي @jjafferr طلعلي هذا في الملف مالك 😅
  21. فعلا هناك مشكلة في الفاصلة إذا تلاها صفر .. باب الاجتهاد فيها مفتوح 👍🏼😁 تم حل هذا الإشكال 👍🏼
  22. فكرة جميلة يمكن إضافتها بإذن الله .. 🙂 سرني مرروكم جميعاً 😊🌹
×
×
  • اضف...

Important Information