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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    179

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

  1. 🤭 أخجلتم تواضعنا أخي منتصر شكراً لإطراءك ومرورك اللذين أسرّاني بنجاح التجربة جهودكم مشكورة في أفكاركم السابقة والتي هي فعلاً جميلة ، والتي يمكن الإستفادة منها بضبطها ضمن جدول الإعدادات عند إنشاء المشاريع لاحقاً
  2. اخي وائل ، ربي يبارك فيك. وشكراً لمرورك 💐
  3. وعليكم السلام ورحمة الله وبركاته .. بداية أهلاً بك معنا في عالمك المتواضع هنا .. قد اطلعت على الملف الآن ، وأول ما لفت انتباهي أنك ارسلت المشروع كاملاً متكاملاً وبجميع عناصر التي للأسف كانت باللغة العربية !!! لا أريد أن أكسر من مجاديفك أو أقلل من قيمة البداية الجميلة التي بدأتها ، وخصوصاً في العلاقات بين الجداول . خذ مني نصيحة أخذتها من أساتذتي هنا بأن :- أبتعد عن التسميات العربية للعناصر ومكونات الجداول والنماذج والتقارير . استخدام أكثر من كلمة للتسميات كافة ( وجود مسافة بين الكلمات ) ؛ حيث الأصح في بناء مشروع سليم هو استخدام إما إشارة Under Score "_" ، او أن تجعل الإسم بدون فراغات ولكن لتميز بين كلماته اجعل أول حرف من كل كلمة = حرف كبير = طبعاً للتسميات الإنجليزية . أدرج بيانات أكثر ولو بقليل من مجرد صنفين ، رغم وجود حركات كثيرة لها . لا تبخل في الشرح اذا كان طلبك متشعباً ( كثير الأحداث ) . فأسرف بالتوضيح ولا تبخل = من اين يبدأ التتبع أو البيع أو أين تسجل كل حركة ... إلخ من توضيح تراه مناسباً و وافياً . أعجبتني أيضاً فكرة ان الجداول الفرعية تحتوي على مفاتيح القيم الأساسية ( مثل اسم الصنف ، جهات التوريد ، المواقع ... ) فهي تسهل عليك لاحقاً الإستعلامات ( من وجهة نظري طبعاً ) . ومتأملين منك أن تعيد النظر في ملاحظاتي التي هي ليست إلا اقتراحات - وأنت صاحب الشأن - في النهاية وقد اكون اخوك الصغير الذي لا يفضل التعامل مع المسميات العربية لأنها مربكة ، وشكراً لتفهمك
  4. باااارك الله فيكم مهندسنا الغالي .. والحمد لله على نجاح أول تجربة بنتيجة إيجابية من خلالكم
  5. وعليكم السلام ورحمة الله تعالى وبركاته .. أحد الكتب الإلكترونية التي شاركه أحد الأخوة سابقاً تعلم آكسيس.pdf
  6. وعليكم السلام ورحمة الله وبركاته .. استخدم هذه المعادلة كفكرة مبدأية في الخلية O3 ، ثم اسحب للتطبيق حتى X3 ( في نطاق الجدول 2 ) =IFERROR(INDEX($B$3:$B$22,AGGREGATE(15,6,ROW($B$3:$B$22)-ROW($B$3)+1/(COUNTIF($E$3:$N$3,$B$3:$B$22)=0),COLUMNS($O$3:O3))),"") جرب وأخبرنا بالنتيجة
  7. أخواني وأساتذتي ومعلمينا ( دون استثناء ) بعد محاولات في فهم المشكلة التي أرّقت الكثيرين من مستخدمي آكسيس ( مطورين ومبرمجين أو مستخدمين عاديين ) ، كنا نلاحظ أنه ومع تحديد لغة إدخال عربية لعناصر مثل مربعات النص أو غيرها . فأن آكسيس يقوم بإجبار الويندوز على إضافة لغة لوحة مفاتيح خاصة بالعربية التي تم إنشاء قاعدة البيانات عليها . وقد قمت بطرح فكرة بسيطة تقليدية مبنية على باتش يعمل بتحديد اللغة العربية التي يريدها المستخدم حسب دولته في هذا الموضوع تثبيت لغة لوحة المفاتيح في ويندوز . إلى أن تم فهم آلية آكسيس وعلاقته المتينة في الذاكرة التي يحجزها عند تشغيله ؛ فيتعامل معها كمساحته الخضراء داخل ويندوز ويفعل بها ما يحلو له . ولكن وبفضل الله تم كسر هذه المساحة الخضراء وجعلها مساحة خضراء مزروعة بحصريات منتديات أوفيسنا . الفكرة أداة تعمل عند حسب رغبتك عزيزي القارئ ( مع الويندوز أو بشكل يدوي ) تقوم على مراقبة تخطيطات لوحات المفاتيح الحالية ، وبالتالي لا تسمح لأي برنامج بأن يقوم بالتعديل عليها كيفما يشاء دون الحاجة إلى الخروج من النظام أو اغلاق آكسيس أو حتى التدخل والتعديل في مشاريع آكسيس الموجودة . لنتعرف أولاً على شكل و واجهة الأداة :- شرح ما تفعله الأداة بمكوناتها :- :- هذا الجزء سيعرض لك لغات لوحات المفاتيح التي تم تثبيتها في جهازك . :- هذا الزر وظيفته إزالة اي تخطيط تحدده في القائمة السابقة . :- هذا الزر وظيفته إخفاء مراقب لوحات المفاتيح بجوار الساعة . :- السماح للتطبيق بالعمل عند تشغيل ويندوز . :- مساحة مخصصة لعرض الأحداث . ✔ صورة توضيحية لعمل الأداة :- ✔ لإجراءاتكم في التجربة AccessLayoutMonitor.zip
  8. وعليكم السلام ورحمة الله وبركاته ,, لو استخدمت خاصية البحث لوجدت العديد من الأمثلة ، على العموم راجع هذه المشاركة للهندسة @ابو جودي
  9. اعلم أن هذا التعديل قد يفي بالغرض ، ولكن مشكلتي هنا هي أن المستخدم أو المطور ( كلاهما ) سيكون مجبراً على اضافة الكود داخل جميع النماذج ............ إلخ من تعديلات قد تكون غير مجدية . لكني أبحث عن حل يقوم فعلاً بإزالة التخطيط الجديد عند اضافته ، وهنا بيت القصيد .
  10. في الوقت الحالي ، انا متابع بتركيز على النهاية وليس الذي ما بين اليدين حالياً . لذا ولأحيطكم علماً بما خرجت به من كثرة التجارب ، آكسيس لا يخضع لأي تطويع أو مراقبة أو قيود تعتمد على الريجستري أو حتى Local Group Policy Editor ، فهنا سيكون في جميع الحلول القصرية حتى إلغاء حق التعديل على إضافة لغات وتخطيطات أخرى من طرف المستخدم ( لو أراد ذلك ) .... ولهذا متابع بتركيز في أي نقاش حتى نخرج بحل جذري . وللعلم عند إضافة اي تخطيط جديد فإنه لا يسجل في الريجستري بتاتاً ولا في أي مسار داخل الريجستري ، ويبقى متاحاً في الذاكرة المؤقته لذا لن يتم اكتشافه بأي شكل تقريباً إلا بعد تسجيله في الريجستري ، وهنا اعتقد المشكلة العويصة السوداء .
  11. السلام عليكم أخي الكريم ، وأهلاً بك في عالمنا الإلكتروني أوفيسنا .. أود لفت انتباهك إلى أن زر ، تم إيجاده كي يتمكن صاحب الموضوع من تعليم موضوعه عند إيجاده للحل المناسب بأنه وجد الحل . وهذا الزر يستخدم عادةً للإجابة التي رأى أنها حققت مطلبه ( بغض النظر عن الصحة أو تعدد الإجابات ) . وهنا يقع الكثير من الأخوة الأعضاء المنتسبين في مشكلة بسيطة ، هي أنه يقوم بالنقر على الزر لإجابته وليست للإجابة التي حلت مشكلته ( مشاركة الأخوة والأساتذة ) . لذا متأملاً منك تصويب الخطأ الغير مقصود باختيار الإجابة التي حلت مشكلتك . سيتم الغاء إجابتك لنفسك وأنت عليك تصويب الوضع
  12. تحديث للفكرة السابقة بحيث تم تحديث معالجة أخطاء التوافق مع بعض إصدارات ويندوز 10 فما فوق . attrib +r "%~f0" @echo off title Save My Layout Keyboard. Created By Foksh - 2025 mode con:cols=75 lines=35 setlocal enabledelayedexpansion for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a" set "blue=%ESC%[1;34m" set "green=%ESC%[1;32m" set "cyan=%ESC%[1;36m" set "red=%ESC%[1;31m" set "yellow=%ESC%[1;33m" set "magenta=%ESC%[1;35m" set "reset=%ESC%[0m" echo. echo %blue%***************( Officena.Net )***************%reset% echo %green%*** ***%reset% echo %cyan%*** %yellow%FFFFF%red%F %magenta%OOO %blue%KK KK %green%SSSS %cyan%HH HH %cyan%***%reset% echo %yellow%*** %red%FF %magenta%O O %blue%KK KK %green%SS %cyan%HH HH %yellow%***%reset% echo %red%*** %magenta%FFFFF %blue%O O %green%KKK %cyan%SS %yellow%HHHHHH %red%***%reset% echo %magenta%*** %blue%FF %green%O O %cyan%KK KK %yellow%SS %red%HH HH %magenta%***%reset% echo %blue%*** %green%FF %cyan%OOO %yellow%KK KK %red%SSSSS %magenta%HH HH %blue%***%reset% echo %green%*** ***%reset% echo %cyan%********************%yellow%2 %red%0 %magenta%2 %blue%5%cyan%*******************%reset% echo. echo Select the Arabic country to add its keyboard layout: echo 1 - Egypt echo 2 - Saudi Arabia echo 3 - Jordan echo 4 - Iraq echo 5 - Morocco echo 6 - UAE echo 7 - Syria echo 8 - Lebanon echo 9 - Tunisia echo 10 - Algeria echo 11 - Kuwait echo 12 - Bahrain echo 13 - Oman echo 14 - Qatar echo 15 - Libya echo 16 - Sudan echo 17 - Yemen echo X - Remove startup task set /p choice=Enter the number of your choice (1-17) or 'X': if /i "%choice%"=="X" ( echo. echo Removing startup task... schtasks /Delete /TN "KeyboardShutdownFix" /F 2>nul del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\KeyboardFix.bat" 2>nul del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RunHidden.vbs" 2>nul echo Startup task removed successfully! echo. echo Closing automatically in: timeout /t 1 /nobreak >nul & echo 3... timeout /t 1 /nobreak >nul & echo 2.. timeout /t 1 /nobreak >nul & echo 1. exit /b ) set "localeID=" set "localeName=" if "%choice%"=="1" set localeID=00000C01& set localeName=ar-EG if "%choice%"=="2" set localeID=00000401& set localeName=ar-SA if "%choice%"=="3" set localeID=00002C01& set localeName=ar-JO if "%choice%"=="4" set localeID=00000801& set localeName=ar-IQ if "%choice%"=="5" set localeID=00001801& set localeName=ar-MA if "%choice%"=="6" set localeID=00003801& set localeName=ar-AE if "%choice%"=="7" set localeID=00002801& set localeName=ar-SY if "%choice%"=="8" set localeID=00003001& set localeName=ar-LB if "%choice%"=="9" set localeID=00001C01& set localeName=ar-TN if "%choice%"=="10" set localeID=00001401& set localeName=ar-DZ if "%choice%"=="11" set localeID=00003401& set localeName=ar-KW if "%choice%"=="12" set localeID=00003C01& set localeName=ar-BH if "%choice%"=="13" set localeID=00002001& set localeName=ar-OM if "%choice%"=="14" set localeID=00004001& set localeName=ar-QA if "%choice%"=="15" set localeID=00001001& set localeName=ar-LY if "%choice%"=="16" set localeID=00002C01& set localeName=ar-SD if "%choice%"=="17" set localeID=00002401& set localeName=ar-YE if not defined localeID ( echo. echo Invalid selection. Exiting... timeout /t 3 /nobreak >nul exit /b ) echo Applying keyboard settings immediately... reg delete "HKCU\Keyboard Layout\Preload" /f >nul 2>&1 reg delete "HKCU\Keyboard Layout\Substitutes" /f >nul 2>&1 reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f >nul 2>&1 reg add "HKCU\Keyboard Layout\Preload" /v 2 /t REG_SZ /d %localeID% /f >nul 2>&1 reg add "HKCU\Keyboard Layout\Substitutes" /v %localeID% /t REG_SZ /d %localeID% /f >nul 2>&1 set psFile=%TEMP%\UpdateLang.ps1 echo $langList = Get-WinUserLanguageList > "%psFile%" echo $langList.Clear() >> "%psFile%" echo $langList.Add("en-US") >> "%psFile%" echo $langList.Add("%localeName%") >> "%psFile%" echo Set-WinUserLanguageList $langList -Force >> "%psFile%" powershell -ExecutionPolicy Bypass -File "%psFile%" >nul 2>&1 set "choiceBat=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\KeyboardFix.bat" set "vbsFile=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RunHidden.vbs" ( echo @echo off echo mode con:cols=75 lines=12 echo setlocal enabledelayedexpansion echo for /f %%%%a in ^('echo prompt $E^^^| cmd'^) do set "ESC=%%%%a" echo set "blue=%%ESC%%[1;34m" echo set "green=%%ESC%%[1;32m" echo set "cyan=%%ESC%%[1;36m" echo set "red=%%ESC%%[1;31m" echo set "yellow=%%ESC%%[1;33m" echo set "magenta=%%ESC%%[1;35m" echo set "reset=%%ESC%%[0m" echo echo. echo echo %%blue%%**********************************************%%reset%% echo echo %%green%%*** ***%%reset%% echo echo %%cyan%%*** %%yellow%%FFFFF%%red%%F %%magenta%%OOO %%blue%%KK KK %%green%%SSSS %%cyan%%HH HH %%cyan%%***%%reset%% echo echo %%yellow%%*** %%red%%FF %%magenta%%O O %%blue%%KK KK %%green%%SS %%cyan%%HH HH %%yellow%%***%%reset%% echo echo %%red%%*** %%magenta%%FFFFF %%blue%%O O %%green%%KKK %%cyan%%SS %%yellow%%HHHHHH %%red%%***%%reset%% echo echo %%magenta%%*** %%blue%%FF %%green%%O O %%cyan%%KK KK %%yellow%%SS %%red%%HH HH %%magenta%%***%%reset%% echo echo %%blue%%*** %%green%%FF %%cyan%%OOO %%yellow%%KK KK %%red%%SSSSS %%magenta%%HH HH %%blue%%***%%reset%% echo echo %%green%%*** ***%%reset%% echo echo %%cyan%%********************%%yellow%%2 %%red%%0 %%magenta%%2 %%blue%%5%%cyan%%*******************%%reset%% echo echo. echo setlocal enabledelayedexpansion echo setlocal enabledelayedexpansion echo set "localeID=%localeID%" echo set "localeName=%localeName%" echo reg delete "HKCU\Keyboard Layout\Preload" /f ^>nul 2^>^&1 echo reg delete "HKCU\Keyboard Layout\Substitutes" /f ^>nul 2^>^&1 echo reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f ^>nul 2^>^&1 echo reg add "HKCU\Keyboard Layout\Preload" /v 2 /t REG_SZ /d !localeID! /f ^>nul 2^>^&1 echo reg add "HKCU\Keyboard Layout\Substitutes" /v !localeID! /t REG_SZ /d !localeID! /f ^>nul 2^>^&1 echo powershell -ExecutionPolicy Bypass -Command ^ "$langList = Get-WinUserLanguageList; $langList.Clear(); $langList.Add('en-US'); $langList.Add('!localeName!'); Set-WinUserLanguageList $langList -Force" ^>nul 2^>^&1 echo exit ) > "%choiceBat%" echo Set WshShell = CreateObject("WScript.Shell") > "%vbsFile%" echo WshShell.Run "cmd /c call ""%choiceBat%""", 0, False >> "%vbsFile%" echo. echo Keyboard settings applied successfully! echo. echo English (US) set as default. echo Arabic layout for selected country added as secondary. echo. echo A silent startup script has been created for your selection. echo. echo Closing automatically in: timeout /t 1 /nobreak >nul & echo 3... timeout /t 1 /nobreak >nul & echo 2.. timeout /t 1 /nobreak >nul & echo 1. exit /b Foksh Layout V2.zip
  13. تحياتي وإحترامي لك أخي منتصر على إطراءك الجميل . وهذا ما تعلمناه منكم أساتذتنا الكبار ومعلمينا في هذا المنتدى فكرة جميلة أيضاً قمت بطرحها ، وهنا أنت تعتمد على اجبار المستخدم على تسجيل الخروج من الويندوز ، وهذا ما لا كنت ارغب بتطبيقه في فكرة التثبيت لمخططات لوحات المفاتيح . ومع تجربتي لفكرتي على بعض إصدارات ويندوز التي لم تكن بحوزتي كان هناك بعض الأخطاء في عدم إظهار وتطبيق الحفاظ على التخطيطات الخاصة بلغات لوحة المفاتيح ، وتم إصلاحها والحمد لله .
  14. تم تحديث الفكرة بشكل جديد ، ودعم أكبر لمختلف إصدارات ويندوز 10 وما فوق . قريباً
  15. وعليكم السلام ورحمة الله وبركاته .. أخي الكريم بدايةً اهلاً وسهلاً بك في المنتدى عضواً جديداً ، ونتمنى ان تجد ما تبحث عنه بسهولة . بدايةً استعمل خاصية البحث لإيجاد المواضيع التي تتحدث عن مشكلتك بل طرحها ، علك تجد ضالتك بسرعة وسهولة .. أما بخصوص طلبك ، فإليك هذه الدالة البسيطة :- Private Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) Dim dbs, prp As Property Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_err: If Err = conPropNotFoundError Then Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ChangeProperty = False Resume Change_Bye End If End Function ويتم استدعائها في أي حدث تريده كحدث عند فتح أول نموذج لك في مشروعك بالشكل التالي لقفل مفتاح الشيفت :- ChangeProperty "AllowBypassKey", DB_BOOLEAN, False أو في زر لإعادة تفعيل مفتاح الشيفت بالإستدعاء التالي :- ChangeProperty "AllowBypassKey", DB_BOOLEAN, True
  16. تم نقل اختيار الإجابة لإجابة الأستاذ @عبدالله بشير عبدالله ، وليست لتعليقي أخي الكريم .. ونعلم إنها سهواً ، وتم تصحيح اختيار الإجابة
  17. تم التفعيل أستاذنا الكريم شكراً لتفاعلك
  18. ههههههه سؤال قوي ، حبة الدوا ما بتعرف راسها من رجليها ..
  19. وعليكم السلام ورحمة الله وبركاته .. باعتقادي أن الطريقة التي تم تسجيل فيها وقت الحضور ، و وقت الخروج لكل موظف هي بحد ذاتها غير سليمة ( لم أقل غير صحيحة ) . فالأصل ان يتم تسجيل الحضور والخروج بشرطين . رقم الموظف وتاريخ اليوم . هذا اذا كان الموظف لا يسجل حضور في تاريخ ويسجل خروج في تاريخ اليوم التالي ( كأن يكون هناك شفت أو وردية ليلية ) . ولكن لتلبية طلبك ، جرب هذا الاستعلام :- SELECT T1.emp_name AS [اسم الموظف], T1.emp_ID AS السجل, T1.StartDate AS التاريخ, T1.StratTime AS [وقت الدخول], (SELECT EndTime FROM Tbl1 WHERE emp_ID = T1.emp_ID AND StartDate = T1.StartDate AND EndTime IS NOT NULL) AS [وقت الخروج], Format(DateDiff("n",T1.StratTime,(SELECT EndTime FROM Tbl1 WHERE emp_ID = T1.emp_ID AND StartDate = T1.StartDate AND EndTime IS NOT NULL))\60,"00") & ":" & Format(DateDiff("n",T1.StratTime,(SELECT EndTime FROM Tbl1 WHERE emp_ID = T1.emp_ID AND StartDate = T1.StartDate AND EndTime IS NOT NULL)) Mod 60,"00") AS [عدد ساعات العمل] FROM Tbl1 AS T1 WHERE (((T1.StratTime) Is Not Null)); عذراً ، معلمي الفاضل @ابوخليل ، صدقاً لم أنتبه الى ردك ، حيث كنت في الصفحة ولم ألحظ الإشعار بوجود رد .. لكن ما قمت بطرحه وهو جوهر السبيل الصحيح فقد كان تلخيصاً لخبرتك التي نتعلم منها فعلاً ..
  20. أستاذ عبدالله ، جزاك الله خيراً على لفت انتباهي ، ولكن لتشاركني ضحكتك بصوت عالي كما فعلت أنا الآن ، هو أنني قرأتها على أنها العمود المسؤول وليس عمود المسؤول نفسه ، لانني قرأت أسماء الأوراق وربطت الأمر بحيث يتم نقل لكل ورقة بيانات اسمها حسب المدينة . اما خلاف ذلك فهنا سأقف في صمت لمحاولة الفهم المتضادة في الطلب نفسه . عدة صفحات = المسؤول ما علاقة ؟؟؟؟؟ ما الرابط بين الصفحات المسماه بأسماء المدن و عمود المسؤول 🙄 في لهجتنا نقول هذا السؤال طعج مخي 😂 أي أن تفكيري كان يسير في خط مستقيل ولكن هذا السؤال قام بلويه وثنيه وكسره هههههههه ننتظر التوضيح ما لم يكن لديك حل آخر تتحفني به ، فأنت في مجالك هنا - وتبارك الله عليكم جميعاً - من المميزين في قسم الأكسل .
  21. تم اكتشاف السبب الرئيسي للمشكلة التي يعاني منها الكثير من المطورين ، في هذا الرد هنا .
×
×
  • اضف...

Important Information