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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    179

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

  1. وعليكم السلام ورحمة الله تعالى وبركاته .. أحد الكتب الإلكترونية التي شاركه أحد الأخوة سابقاً تعلم آكسيس.pdf
  2. وعليكم السلام ورحمة الله وبركاته .. استخدم هذه المعادلة كفكرة مبدأية في الخلية 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))),"") جرب وأخبرنا بالنتيجة
  3. أخواني وأساتذتي ومعلمينا ( دون استثناء ) بعد محاولات في فهم المشكلة التي أرّقت الكثيرين من مستخدمي آكسيس ( مطورين ومبرمجين أو مستخدمين عاديين ) ، كنا نلاحظ أنه ومع تحديد لغة إدخال عربية لعناصر مثل مربعات النص أو غيرها . فأن آكسيس يقوم بإجبار الويندوز على إضافة لغة لوحة مفاتيح خاصة بالعربية التي تم إنشاء قاعدة البيانات عليها . وقد قمت بطرح فكرة بسيطة تقليدية مبنية على باتش يعمل بتحديد اللغة العربية التي يريدها المستخدم حسب دولته في هذا الموضوع تثبيت لغة لوحة المفاتيح في ويندوز . إلى أن تم فهم آلية آكسيس وعلاقته المتينة في الذاكرة التي يحجزها عند تشغيله ؛ فيتعامل معها كمساحته الخضراء داخل ويندوز ويفعل بها ما يحلو له . ولكن وبفضل الله تم كسر هذه المساحة الخضراء وجعلها مساحة خضراء مزروعة بحصريات منتديات أوفيسنا . الفكرة أداة تعمل عند حسب رغبتك عزيزي القارئ ( مع الويندوز أو بشكل يدوي ) تقوم على مراقبة تخطيطات لوحات المفاتيح الحالية ، وبالتالي لا تسمح لأي برنامج بأن يقوم بالتعديل عليها كيفما يشاء دون الحاجة إلى الخروج من النظام أو اغلاق آكسيس أو حتى التدخل والتعديل في مشاريع آكسيس الموجودة . لنتعرف أولاً على شكل و واجهة الأداة :- شرح ما تفعله الأداة بمكوناتها :- :- هذا الجزء سيعرض لك لغات لوحات المفاتيح التي تم تثبيتها في جهازك . :- هذا الزر وظيفته إزالة اي تخطيط تحدده في القائمة السابقة . :- هذا الزر وظيفته إخفاء مراقب لوحات المفاتيح بجوار الساعة . :- السماح للتطبيق بالعمل عند تشغيل ويندوز . :- مساحة مخصصة لعرض الأحداث . ✔ صورة توضيحية لعمل الأداة :- ✔ لإجراءاتكم في التجربة AccessLayoutMonitor.zip
  4. وعليكم السلام ورحمة الله وبركاته ,, لو استخدمت خاصية البحث لوجدت العديد من الأمثلة ، على العموم راجع هذه المشاركة للهندسة @ابو جودي
  5. اعلم أن هذا التعديل قد يفي بالغرض ، ولكن مشكلتي هنا هي أن المستخدم أو المطور ( كلاهما ) سيكون مجبراً على اضافة الكود داخل جميع النماذج ............ إلخ من تعديلات قد تكون غير مجدية . لكني أبحث عن حل يقوم فعلاً بإزالة التخطيط الجديد عند اضافته ، وهنا بيت القصيد .
  6. في الوقت الحالي ، انا متابع بتركيز على النهاية وليس الذي ما بين اليدين حالياً . لذا ولأحيطكم علماً بما خرجت به من كثرة التجارب ، آكسيس لا يخضع لأي تطويع أو مراقبة أو قيود تعتمد على الريجستري أو حتى Local Group Policy Editor ، فهنا سيكون في جميع الحلول القصرية حتى إلغاء حق التعديل على إضافة لغات وتخطيطات أخرى من طرف المستخدم ( لو أراد ذلك ) .... ولهذا متابع بتركيز في أي نقاش حتى نخرج بحل جذري . وللعلم عند إضافة اي تخطيط جديد فإنه لا يسجل في الريجستري بتاتاً ولا في أي مسار داخل الريجستري ، ويبقى متاحاً في الذاكرة المؤقته لذا لن يتم اكتشافه بأي شكل تقريباً إلا بعد تسجيله في الريجستري ، وهنا اعتقد المشكلة العويصة السوداء .
  7. السلام عليكم أخي الكريم ، وأهلاً بك في عالمنا الإلكتروني أوفيسنا .. أود لفت انتباهك إلى أن زر ، تم إيجاده كي يتمكن صاحب الموضوع من تعليم موضوعه عند إيجاده للحل المناسب بأنه وجد الحل . وهذا الزر يستخدم عادةً للإجابة التي رأى أنها حققت مطلبه ( بغض النظر عن الصحة أو تعدد الإجابات ) . وهنا يقع الكثير من الأخوة الأعضاء المنتسبين في مشكلة بسيطة ، هي أنه يقوم بالنقر على الزر لإجابته وليست للإجابة التي حلت مشكلته ( مشاركة الأخوة والأساتذة ) . لذا متأملاً منك تصويب الخطأ الغير مقصود باختيار الإجابة التي حلت مشكلتك . سيتم الغاء إجابتك لنفسك وأنت عليك تصويب الوضع
  8. تحديث للفكرة السابقة بحيث تم تحديث معالجة أخطاء التوافق مع بعض إصدارات ويندوز 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
  9. تحياتي وإحترامي لك أخي منتصر على إطراءك الجميل . وهذا ما تعلمناه منكم أساتذتنا الكبار ومعلمينا في هذا المنتدى فكرة جميلة أيضاً قمت بطرحها ، وهنا أنت تعتمد على اجبار المستخدم على تسجيل الخروج من الويندوز ، وهذا ما لا كنت ارغب بتطبيقه في فكرة التثبيت لمخططات لوحات المفاتيح . ومع تجربتي لفكرتي على بعض إصدارات ويندوز التي لم تكن بحوزتي كان هناك بعض الأخطاء في عدم إظهار وتطبيق الحفاظ على التخطيطات الخاصة بلغات لوحة المفاتيح ، وتم إصلاحها والحمد لله .
  10. تم تحديث الفكرة بشكل جديد ، ودعم أكبر لمختلف إصدارات ويندوز 10 وما فوق . قريباً
  11. وعليكم السلام ورحمة الله وبركاته .. أخي الكريم بدايةً اهلاً وسهلاً بك في المنتدى عضواً جديداً ، ونتمنى ان تجد ما تبحث عنه بسهولة . بدايةً استعمل خاصية البحث لإيجاد المواضيع التي تتحدث عن مشكلتك بل طرحها ، علك تجد ضالتك بسرعة وسهولة .. أما بخصوص طلبك ، فإليك هذه الدالة البسيطة :- 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
  12. تم نقل اختيار الإجابة لإجابة الأستاذ @عبدالله بشير عبدالله ، وليست لتعليقي أخي الكريم .. ونعلم إنها سهواً ، وتم تصحيح اختيار الإجابة
  13. تم التفعيل أستاذنا الكريم شكراً لتفاعلك
  14. ههههههه سؤال قوي ، حبة الدوا ما بتعرف راسها من رجليها ..
  15. وعليكم السلام ورحمة الله وبركاته .. باعتقادي أن الطريقة التي تم تسجيل فيها وقت الحضور ، و وقت الخروج لكل موظف هي بحد ذاتها غير سليمة ( لم أقل غير صحيحة ) . فالأصل ان يتم تسجيل الحضور والخروج بشرطين . رقم الموظف وتاريخ اليوم . هذا اذا كان الموظف لا يسجل حضور في تاريخ ويسجل خروج في تاريخ اليوم التالي ( كأن يكون هناك شفت أو وردية ليلية ) . ولكن لتلبية طلبك ، جرب هذا الاستعلام :- 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)); عذراً ، معلمي الفاضل @ابوخليل ، صدقاً لم أنتبه الى ردك ، حيث كنت في الصفحة ولم ألحظ الإشعار بوجود رد .. لكن ما قمت بطرحه وهو جوهر السبيل الصحيح فقد كان تلخيصاً لخبرتك التي نتعلم منها فعلاً ..
  16. أستاذ عبدالله ، جزاك الله خيراً على لفت انتباهي ، ولكن لتشاركني ضحكتك بصوت عالي كما فعلت أنا الآن ، هو أنني قرأتها على أنها العمود المسؤول وليس عمود المسؤول نفسه ، لانني قرأت أسماء الأوراق وربطت الأمر بحيث يتم نقل لكل ورقة بيانات اسمها حسب المدينة . اما خلاف ذلك فهنا سأقف في صمت لمحاولة الفهم المتضادة في الطلب نفسه . عدة صفحات = المسؤول ما علاقة ؟؟؟؟؟ ما الرابط بين الصفحات المسماه بأسماء المدن و عمود المسؤول 🙄 في لهجتنا نقول هذا السؤال طعج مخي 😂 أي أن تفكيري كان يسير في خط مستقيل ولكن هذا السؤال قام بلويه وثنيه وكسره هههههههه ننتظر التوضيح ما لم يكن لديك حل آخر تتحفني به ، فأنت في مجالك هنا - وتبارك الله عليكم جميعاً - من المميزين في قسم الأكسل .
  17. تم اكتشاف السبب الرئيسي للمشكلة التي يعاني منها الكثير من المطورين ، في هذا الرد هنا .
  18. بفضل الله وكرمه ،تم اكتشاف السبب الرئيسي لمشكلة فرض لوحة المفاتيح عند فتح معظم مشاريع آكسيس على أجهزة المطورين . السبب وعن تجربة مؤكدة هو استخدام المصمم لخيار لمربعات النص عند تصميمه لقاعدة بياناته . فيضطر آكسيس للإحتفاظ بأصل اللغة التي تم تعريفها حسب لغة الترميز في نسخة الويندوز المشغل كما في الصورة :- وتأكيداً على ما تم اكتشافه :- أولاً ، قم بتغيير هذه الخاصية لمربعات النص ، من :- إلى :- ، وهو الخيار الإفتراضي في آكسيس لمربعات النص والعناصر التي تقبل الإدخال . ثانياً ، قم بحذف اي لغات مفاتيح باستخدام الأداة المرفقة في هذا الموضوع هنا ، وتأكد من أنه يوجد لديك لغتين فقط ( العربية حسب دولتك ، والإنجليزية ) ، ثم قم بفتح نفس النموذج الذي تم تغيير الخاصية من العربية إلى System ، وستجد أنه لن ولن ولن يقوم بإضافة أي لغات تخطيط مدمجة في ملف قاعدة البيانات . وإلى هنا وأترك لك التجربة . والنتيجة ستكون مرضية لك بعد معرفة السبب . فإذا عُرف السبب .. بطُل العجب اما عن إزالة لوحات المفاتيح ، فالأداة وبعد تجربتها مراراً وتكراراً تعمل لكفاءة باسترجاع اي لغة عربية قمت باختيارها بمجرد أن تعيد تشغيل الويندوز .
  19. وعيكم السلام ورحمة الله وبركاته ,, جرب هذه الفكرة البسيطة ، في زر داخل الورقة "2025" ، تم استخدام الكود التالي :- Sub Btn_Tr_Click() Dim wsSource As Worksheet Dim lastRow As Long, i As Long Dim cityName As String Dim wsTarget As Worksheet Dim sourceRow As Range Dim targetRow As Range Dim targetLastRow As Long Dim isDuplicate As Boolean Dim col As Variant Dim keyCols As Variant Dim copiedCount As Long, skippedCount As Long Dim skippedList As String Dim pasteType As XlPasteType Dim userChoice As VbMsgBoxResult Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False userChoice = MsgBox("هل ترغب في الترحيل مع التنسيق الكامل" & vbCrLf & _ "اضغط 'نعم' للترحيل مع التنسيق ، أو 'لا' للترحيل بالقيم فقط", vbYesNoCancel + vbQuestion + vbMsgBoxRight, "") If userChoice = vbCancel Then GoTo Cleanup If userChoice = vbYes Then pasteType = xlPasteAll Else pasteType = xlPasteValues End If Set wsSource = ThisWorkbook.Sheets("2025") lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row keyCols = Array(1, 2, 3, 4, 5, 6) For i = 3 To lastRow cityName = Trim(wsSource.Cells(i, 2).Value) If cityName <> "" Then On Error Resume Next Set wsTarget = ThisWorkbook.Sheets(cityName) On Error GoTo 0 If Not wsTarget Is Nothing And wsSource.Cells(i, 2).Value = wsTarget.Name Then Set sourceRow = wsSource.Range(wsSource.Cells(i, 1), wsSource.Cells(i, 10)) isDuplicate = False For targetLastRow = 3 To wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row Set targetRow = wsTarget.Range(wsTarget.Cells(targetLastRow, 1), wsTarget.Cells(targetLastRow, 10)) isDuplicate = True For Each col In keyCols If sourceRow.Cells(1, col).Value <> targetRow.Cells(1, col).Value Then isDuplicate = False Exit For End If Next col If isDuplicate Then Exit For Next targetLastRow If Not isDuplicate Then targetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1 sourceRow.Copy wsTarget.Range("A" & targetLastRow).PasteSpecial Paste:=pasteType Application.CutCopyMode = False copiedCount = copiedCount + 1 End If Else skippedCount = skippedCount + 1 skippedList = skippedList & "- " & cityName & vbCrLf End If End If Next i MsgBox "? تم الترحيل بنجاح" & vbCrLf & _ copiedCount & ":عدد الصفوف المنسوخة " & vbCrLf & _ skippedCount & ": عدد الصفوف التي تم تجاهلها " & IIf(skippedCount > 0, vbCrLf & ": المدن التي تم تجاهلها " & vbCrLf & skippedList, ""), vbInformation + vbMsgBoxRight, "" Cleanup: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True End Sub TR 2025.zip
  20. حمد لله على سلامتكم أستاذنا الغالي .. افتقدناكم
  21. وعليكم السلام ورحمة الله وبركاته ,, أخي الفاضل رغم أن عملك ليس كاملاً بالطريقة التي تتبعها ، ولكنني سأفترض أن كل ملف PDF له اسم = رقم المعاملة . وأن هذه الملفات موجودة في مجلد اسمه Foksh بجانب قاعدة البيانات . لذا جرب هذه الفكرة :- Private Sub رقم_المعاملة_DblClick(Cancel As Integer) Dim pdfPath As String pdfPath = CurrentProject.Path & "\Foksh\" & Me.رقم_المعاملة.Value & ".pdf" If Dir(pdfPath) <> "" Then Application.FollowHyperlink pdfPath Else MsgBox "الملف غير موجود", vbInformation + vbMsgBoxRight, "" End If End Sub
×
×
  • اضف...

Important Information