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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    117

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

  1. تصدقني لو قلتلك اني مبارح لغاية ما صليت الفجر ونمت ييجي الساعة 6 وانا عملت فورمات 3 مرات لضمان إجابتي اللي كنت متأكد منها مسبقاً ، وبعد ما صحيت وصليت الجمعة في آخر لحظة 🥺 ورجعت نمت تااااني 😴 ، ولسه بحاول أخزي الشيطان وأصحصح كده ، ولما شفت ردك قلت لأ لازم يعرف ويتأكد ، وقلت نلعب وماله بس أما أفوقله 😁😁 دحنا حنلعب لعب 🤣🤣
  2. يا اهلا ومرحباً 😈 انا مضطر أخالفك الرأي تماااااااماً في النقطة دي وبكل ثقة ، هي هتشتغل معاك وتعمل اللي انت عاوزة أصدي اللي انا عاوزه هههههههه وتغير اللغة زي ما كلنا عاوزين يا هندسة حتى لو فيها حروف عربية 100% ... ولو عايز تتأكد فرمت وحمل أوفيس وجرب من غير ما تجيب سيرة اللغة العربية في أي حتة في الويندوز 😁😁😁 شوف ده وركز في كمية الثقة اللي فيه 😎 دي ثقة مش غرور وأعوذ بالله 😇🤗🤗🤗😇
  3. بسيطة أخي الكريم , بعد هذه الجملة MsgBox "تم تحديث السجل بنجاح", vbInformation قم بإضافة أمر تحديث للنموذج كالتالي DoCmd.Requery ولا تنسى تغيير نص الرسالة في كود الإستعادة ,, نسيت تغييره 😅
  4. من غير ما تلعب ، الفكرة موجودة عندي ولكن نبحث عن ما هو مختلف 😎 ..
  5. وعليكم السلام ورحمة الله وبركاته .. اخي الكريم لاحظ ان الاصدار 1 أكبر وأحدث من الإصدار 0.2 . فمن الطبيعي انه يكون الاصدار اللي في ملف التكست اللي انت عدلته والخاص بك يحتوي على اصدار أعلى من تلك التي في الجدول .
  6. أخي الكريم احذف الحدث اللي في زر الاستعادة ، واستبدله بالتالي VBA Dim strSQL As String Dim RecordNumber As Long RecordNumber = Me![الرقم].Value strSQL = "UPDATE الإجمالية " & _ "SET [سبب الحذف] = '" & Null & "', [محذوف] = False " & _ "WHERE [الرقم] = " & RecordNumber & ";" DoCmd.RunSQL strSQL MsgBox "تم تحديث السجل بنجاح", vbInformation DoCmd.Close acForm, "Frm_Delete"
  7. ولا يهمك ، سأطبق الفكرة وارسلها هنا
  8. حتى نتلافى الخطأ في الفهم .. جرب انشاء هذا الاستعلام وشوف النتيجة صحيحة أو لا بعد اختيار الفصل والصف والدرجات ( عربي ) الموضوع عليها علامة صح !!! SELECT Tbl_degree_Detail.Stud_id, Tbl_student.Studentname, Tbl_degree_Detail.draseid, Tbl_degree_Detail.Elsaf, Tbl_degree_Detail.Ara, Tbl_degree_Detail.[ashra%_ar], Tbl_student.Stucod FROM Tbl_student INNER JOIN Tbl_degree_Detail ON Tbl_student.id_student = Tbl_degree_Detail.Stud_id WHERE (((Tbl_degree_Detail.draseid)=[Forms]![frm_Reports]![drase]) AND ((Tbl_degree_Detail.Elsaf)=[Forms]![frm_Reports]![ComboSaf]) AND ((Tbl_degree_Detail.[ashra%_ar])=True));
  9. وعليكم السلام ورحمة الله وبركاته .. ما هو المطلوب أخي الكريم !!! قرأت الموضوع 3 مرات ولم اتوصل للمطلوب وبعد هذه الخطوة !!!!!
  10. ههههههه علمت ذلك بطريق غير مباشر لاحقاً ، وقد تأكدت بعد أن رأيت مرفقك .. جزاك الله كل خير على التوضيح .. سأحاول لاحقاً اعتماد فكرتك ( بعد إذنك طبعاً ) والإعتماد على الدروب بوكس فقط 🤗
  11. انت تعرف اني احترم كل الآراء هنا .. ولكن !! خد بالك انا كبرتها كتيييييير هههههههههههه ( أمزح الله يرحم والديك ) جرب وبعدين احكيلي وناقشني في النقطة دي هذا النموذج لن يظهر إلا عندما تكون اللغة الإدارية غير العربية ، وبالتالي لم أجد انها من صلاحيات المستخدم بقدر ما هي صلاحيات المبرمج ، فما تطرقت لهذه الفكرة ,, الرسائل المكتوبة بالعربي لن تظهر للمستخدم أبداً أبداً أبداً أبداً إلا اذا المبرمج وقع امر استدعاء دالة التحقق من اللغة ( وكأننا لم نفعل شيئاً حينها ) ما تخافش انا خدت بالي من كل الإحتمالات لأنني جربت الفكرة على 16 نسخة ويندوز للآن ، ومن بينهم جهازين تم عمل فورمات لهم وتنزيل ويندوز جديدة ولم يتم اختيار اللغة العربية ، وبعد تثبيت أوفيس 2016 و 2019 على كل منهما قمت بتشغيل الملف ولم تظهر أي مشكلة قد تخطر ببالكم إجمالاً .. لو تم ايقاف الجزء المسؤول عن اغلاق النموذج في الحدث عند التحميل ، وحاولت تغير اللغة فلن يتم تغييرها أبداً ، لأن الهدف هو ان يكون الترميز لغة عربية وليس الهدف البلد ، ولكن إضافة الفكرة كانت كرغبة في عدم التقيد ببلد محدد للمبرمج 😉
  12. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم حياك الله مراراً وتكراراً .. ما شاء الله نشيط اليوم سأنصحك نصيحة قد تفيدك مستقبلاً في حال كانت لديك رغبة في تطوير مهاراتك في اكسيس . حاول الإبتعاد عن اسماء الحقول العربية ، أما فيما تبقى فأنا مسامحك .. بالنسبة لفكرتك قمت بتعديل بسيط بإضافة طابعي على نموذج الحذف الجديد .. هذا الملف بعد التعديل جربه بعد إضافة سجلات لتجربته حدف السجل.accdb
  13. باعتقادي لأنك تستعمل حقل الترقيم التلقائي ( AutoNumber ) . أما فيما يخص الترقيم فهنا أمامك طريقان :- أن كان الترقيم ليس مفتاح اساسي مشترك ومرتبط مع جداول أخرى ( وبالنسبة لي هذا لا اشجعه ولا اعتمده في الترقيم الفريد للموظفين أو الزبائن أو العملاء ... إلخ ) أي بمعنى آخر هو فقط مجرد حقل لا تستخدمه للربط فأمر الترقيم غير مهم لأنهك هنا ستضطر لعمل ضغط وإصلاح للقاعدة كلما حذفت سجل للمحافظة على تسلسل الترقيم التالي ، يعني لو عندك 10 سجلات وحذفت السجل 10 ، سيكون التالي 11 في كلا الحالتين ، ولو حذفت الـ 10 كاملة وأضفت سجل فسيكون الأول أيضاً ترقيمه 11 .. إذا لا مفر من أتباع نهج وطريق آخر ,, أما اذا كان حقل الترقيم مفتاح أساسي ( وكما أخبرتك سابقاً أنني لا أشجع هذه الفكرة ) ، لا انصحك بالتلاعب بالترقيم لأن ذلك يؤثر على سير العلاقات بين الجداول ( خصوصاً إن كان هذا الحقل ذو علاقة رأس بأطراف مع جدول آخر ) .. أتمنى أن تكون الفكرة قد توضحت لك .. ولكن إجابةً لسؤالك راجع هذا الموضوع ، قد تجد ضالتك فيه .
  14. اخي الكريم ، حتى تتضح لك الصورة أكثر ، ولا نخوض في موضوع ثاني ونخالف قواعد المنتدى .. نستطيع تقسيم العملية إلى أجزاء وطباعة كل جزء بشكل منفصل لفهم كيفية حساب القيمة النهائية ، على سبيل المثال :- حساب مجموع القروض (Loan_Made) للسنة السابقة :- Dim LoanMadePreviousYear As Double LoanMadePreviousYear = Nz(DSum("[Loan_Made]", "[tbl_Loans]", "Year([Auto_Date])=" & Me.txtYear - 1 & " And [Loan_ID] > 0 And [Nr] >= 6"), 0) Debug.Print "LoanMadePreviousYear: " & LoanMadePreviousYear حساب مجموع المدفوعات (Payment_Made) للسنة الحالية :- Dim PaymentMadeCurrentYear As Double PaymentMadeCurrentYear = Nz(DSum("[Payment_Made]", "[tbl_Loans]", "Year([Auto_Date])=" & Me.txtYear & " And [Loan_ID] > 0 And [Nr] > 5"), 0) Debug.Print "PaymentMadeCurrentYear: " & PaymentMadeCurrentYear حساب القيمة المتبقية (Remaining) :- Me.Remaining = LoanMadePreviousYear - PaymentMadeCurrentYear Debug.Print "Remaining: " & Me.Remaining ستظهر لك النتيجة بهذا الشكل .. LoanMadePreviousYear: 65000 PaymentMadeCurrentYear: 0 LoanMadePreviousYear: 65000 Remaining: 65000 أرجو أن تكون الصورة قد توضحت لك ,, وأكتفي بهذا القدر حتى لا نتعدى الصلاحيات .
  15. اخي الكريم انت فهمتني غلط .. العائد من الأمر هو ما تطلبه منه بأن يتم إحضار نتيجته .. وليس كما فهمت ، يعني من الممكن ان المبلغ العائد = 650000 ولكنه لا يتم اظهاره مثلاً في مربع نص ، أو هو جزء من عملية حسابية تريد نتيجتها .... الخ
  16. أخي الكريم فضلاً لا أمراً ، يجب لفت انتباهك لضرورة متابعة مواضيعك التي تطرحها بإغلاق الموضوع باختيارك افضل إجابة عند حصولك على الحل المناسب والذي يلبي حاجاك ومطلبك .
  17. بسيطة اخي الكريم ، بوضحها لك اول ما اوصل الكمبيوتر ، لإني اليوم انشغلت شوي 😇
  18. تم التخلص من المديول ، ودمج الفكرة داخل نموذج البداية ، والذي اعتمدت في تصميمه على ما يلي :- ⏱️ جعلته يبدو كرسالة بمحتوى عربي بدلاً من الرسائل الإنجليزية والتي قد تربك المستخدم أو من كانت خبرته باللغة الإنجليزية ليست بالقوية . ⏱️ من خلال الكود أصبح بإمكان المبرمج اختيار البلد الذي يريد أن تكون له اللغة العربية في اللغة الإدارية ( Unicode ) . arabicSettings = GetArabicCountrySettings("Jo") ⏱️ من خلال التعديل الجديد عندما يفتح النموذج اذا كانت اللغة الإدارية تدعم العربية فسيتم اغلاق النموذج المرفق وفتح النموذج الخاص بالمشروع بك ( التعديل من الكود ) ⏱️ تم دعم بلدان الدول العربية ( كافة إلى حد ما وما استطعت من الحصول على LocalID الخاص بها .. ) الكود الكامل للنموذج بعد التحديث :- '********************************************** '*** *** '*** FFFFFF OOO KK KK SSSS HH HH *** '*** FF O O KK KK SS HH HH *** '*** FFFFF O O KKK SS HHHHHH *** '*** FF O O KK KK SS HH HH *** '*** FF OOO KK KK SSSSS HH HH *** '*** *** '********************************************** Option Compare Database Option Explicit #If VBA7 Then Private Declare PtrSafe Function GetUserDefaultUILanguage Lib "kernel32" () As Long Private Declare PtrSafe Function GetACP Lib "kernel32" () As Long #Else Private Declare Function GetUserDefaultUILanguage Lib "kernel32" () As Long Private Declare Function GetACP Lib "kernel32" () As Long #End If Private Type ArabicCountry LocaleName As String LocaleID As String CountryName As String countryCode As String End Type Private Const MSG_RESTART_SOON As String = "The computer will restart in 15 seconds" Private Const MSG_SAVE_FILES As String = "Please save all open files" Private Const MSG_CANT_RUN As String = "Your project cannot run without changing the system local to Arabic" Private arabicSettings As ArabicCountry Private Function IsArabicLanguage() As Boolean Dim CodePage As Long CodePage = GetACP() IsArabicLanguage = (CodePage = 1256) End Function Private Function GetArabicCountrySettings(ByVal countryCode As String) As ArabicCountry Select Case UCase(countryCode) Case "AE", "UAE", "EMIRATES" With GetArabicCountrySettings .LocaleName = "ar-AE" .LocaleID = "00003801" .CountryName = "United Arab Emirates" .countryCode = "971" End With Case "BH", "BAHRAIN" With GetArabicCountrySettings .LocaleName = "ar-BH" .LocaleID = "00003C01" .CountryName = "Bahrain" .countryCode = "973" End With Case "DZ", "ALGERIA" With GetArabicCountrySettings .LocaleName = "ar-DZ" .LocaleID = "00001401" .CountryName = "Algeria" .countryCode = "213" End With Case "EG", "EGYPT" With GetArabicCountrySettings .LocaleName = "ar-EG" .LocaleID = "00000C01" .CountryName = "Egypt" .countryCode = "20" End With Case "IQ", "IRAQ" With GetArabicCountrySettings .LocaleName = "ar-IQ" .LocaleID = "00000801" .CountryName = "Iraq" .countryCode = "964" End With Case "JO", "JORDAN" With GetArabicCountrySettings .LocaleName = "ar-JO" .LocaleID = "00000409" .CountryName = "Jordan" .countryCode = "962" End With Case "KW", "KUWAIT" With GetArabicCountrySettings .LocaleName = "ar-KW" .LocaleID = "00003401" .CountryName = "Kuwait" .countryCode = "965" End With Case "LB", "LEBANON" With GetArabicCountrySettings .LocaleName = "ar-LB" .LocaleID = "00003001" .CountryName = "Lebanon" .countryCode = "961" End With Case "LY", "LIBYA" With GetArabicCountrySettings .LocaleName = "ar-LY" .LocaleID = "00001001" .CountryName = "Libya" .countryCode = "218" End With Case "MA", "MOROCCO" With GetArabicCountrySettings .LocaleName = "ar-MA" .LocaleID = "00001801" .CountryName = "Morocco" .countryCode = "212" End With Case "OM", "OMAN" With GetArabicCountrySettings .LocaleName = "ar-OM" .LocaleID = "00002001" .CountryName = "Oman" .countryCode = "968" End With Case "QA", "QATAR" With GetArabicCountrySettings .LocaleName = "ar-QA" .LocaleID = "00004001" .CountryName = "Qatar" .countryCode = "974" End With Case "SA", "SAUDI" With GetArabicCountrySettings .LocaleName = "ar-SA" .LocaleID = "00000401" .CountryName = "Saudi Arabia" .countryCode = "966" End With Case "SD", "SUDAN" With GetArabicCountrySettings .LocaleName = "ar-SD" .LocaleID = "00002C01" .CountryName = "Sudan" .countryCode = "249" End With Case "SY", "SYRIA" With GetArabicCountrySettings .LocaleName = "ar-SY" .LocaleID = "00002801" .CountryName = "Syria" .countryCode = "963" End With Case "TN", "TUNISIA" With GetArabicCountrySettings .LocaleName = "ar-TN" .LocaleID = "00001C01" .CountryName = "Tunisia" .countryCode = "216" End With Case "YE", "YEMEN" With GetArabicCountrySettings .LocaleName = "ar-YE" .LocaleID = "00002401" .CountryName = "Yemen" .countryCode = "967" End With Case Else With GetArabicCountrySettings .LocaleName = "ar-SA" .LocaleID = "00000401" .CountryName = "Saudi Arabia" .countryCode = "966" End With End Select End Function Private Sub ChangeLanguage() On Error GoTo ErrorHandler Dim fso As Object Dim txtFile As Object Dim filePath As String filePath = Environ$("TEMP") & "\ChangeToArabic.bat" Set fso = CreateObject("Scripting.FileSystemObject") Set txtFile = fso.CreateTextFile(filePath, True) With txtFile .WriteLine "@echo off" .WriteLine "chcp 1256" .WriteLine "reg add ""HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language"" /v Default /t REG_SZ /d " & arabicSettings.LocaleID & " /f" .WriteLine "reg add ""HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language"" /v InstallLanguage /t REG_SZ /d " & arabicSettings.LocaleID & " /f" .WriteLine "reg add ""HKCU\Control Panel\International"" /v LocaleName /t REG_SZ /d " & arabicSettings.LocaleName & " /f" .WriteLine "reg add ""HKCU\Control Panel\International"" /v Locale /t REG_SZ /d " & arabicSettings.LocaleID & " /f" .WriteLine "reg add ""HKCU\Control Panel\International"" /v sLanguage /t REG_SZ /d ARA /f" .WriteLine "reg add ""HKCU\Control Panel\International"" /v sCountry /t REG_SZ /d " & arabicSettings.CountryName & " /f" .WriteLine "reg add ""HKCU\Control Panel\International"" /v iCountry /t REG_SZ /d " & arabicSettings.countryCode & " /f" .WriteLine "reg add ""HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage"" /v ACP /t REG_SZ /d 1256 /f" .WriteLine "reg add ""HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage"" /v OEMCP /t REG_SZ /d 1256 /f" .WriteLine "reg add ""HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage"" /v MACCP /t REG_SZ /d 10004 /f" .WriteLine "reg add ""HKCU\Keyboard Layout\Preload"" /v 1 /t REG_SZ /d " & arabicSettings.LocaleID & " /f" .WriteLine "control.exe intl.cpl,, /f:""C:\Windows\System32\intl.cpl""" .WriteLine "timeout /t 5" .WriteLine "shutdown /r /t 15 /c ""سيتم إعادة تشغيل الجهاز بعد ( 15 ثانية ) لتطبيق إعدادات اللغة العربية"" /f" End With txtFile.Close Dim shellApp As Object Set shellApp = CreateObject("Shell.Application") shellApp.ShellExecute filePath, "", "", "runas", 0 ' MsgBox MSG_RESTART_SOON & vbCrLf & MSG_SAVE_FILES, vbInformation Exit Sub ErrorHandler: Resume Next End Sub Private Sub Btn_Yes_Click() If Not IsArabicLanguage() Then ChangeLanguage Else MsgBox "اللغة الإدارية الحالية في جهازك هي فعلاً اللغة العربية", vbInformation, arabicSettings.CountryName & " : اللغة العربية الحالية" End If End Sub Private Sub Btn_No_Click() MsgBox MSG_CANT_RUN, vbCritical DoCmd.Close acForm, Me.Name End Sub Private Sub Form_Load() arabicSettings = GetArabicCountrySettings("Jo") Txt_ConteryName.Value = arabicSettings.CountryName If IsArabicLanguage() Then DoCmd.Close acForm, Me.Name MsgBox "استبدل هذه الرسالة بكود فتح النموذج الرئيسي", , "عندما تكون اللغة = العربية" Else Btn_Yes.Visible = True Btn_No.Visible = True End If End Sub PALESTINE الملف المرفق مفتوح المصدر 👈 [ LanguageCheck V 2.0.accdb ]
  19. اخي الكريم العائد لك هنا هو نتيجة MySQL ( الإستعلام ) على سبيل المثال من باب التوضيح لهذا السطر :- Dim i As Integer For i = 1 To 5 Debug.Print "Current value of i: " & i Next i فأن النتيجة للحلقة التكرارية هذه ستكون في Ctrl+G = Current value of i: 1 Current value of i: 2 Current value of i: 3 Current value of i: 4 Current value of i: 5 المقصود هو انه يمكنك استدعاءها حيثما تريد لرؤية نتيجة ما تريد وللتحقق من النتيجة التي عاد لك بها .. لا أعلم إن كان شرحي لها هو ما تقصده .
  20. وما المانع في ذلك ، بما انه لكل سجل رقم ID فريد !!!!!
  21. اخي الكريم @بوكفوس عبدالسلام وعليكم السلام ورحمة الله وبركاته .. الموضوع بسيط جداً اخي ولا يحتاج لماكرو لتحديد الشرط بهذا الأسلوب ، جعلت الشرط الذي تريده في الاستعلام الخارجي ، وجعلت مصدر سجلات النموذج نفس الاستعلام بدون شرط ، ولكنه استعلام داخلي .. تفضل الملف بعد التعديل :- الشهادة الإدارية.accdb
  22. أهلا أستاذ @kanory >> يسعدني مرورك العطر أولاً ثانيا لم أتابع الموضوع الذي أشرت إليه لأني فعلاً لم ابحث عن هذه المواضيع في المنتدى .. وثالثاً وهو المهم .. لا يتم استخدام اي ايميل او باسوورد لأي حساب داخل الأكواد .. يلزم المبرمج رابط الملف النصي فقط لإضافته في جدوله .. والباقي عمل الكود .. دعمت الفكرة بأن يكون التحميل من ملف خارجي يتم استخراجه من داخل الجدول المرفق في ملفي . ( فكرة جديدة ) في فكرتي لم ولن ولا اعتمد على برامج تلزم المبرمج بتثبيت برامج في جهاز العميل . لا يوجد روابط داخل الأكواد ، كلها يتم استدراجها وجلبها إل الجدول بشكل خفي منحت المستخدم فكرة الكشف التلقائي عن التحديثات حال وجودها . ففي الجدول هناك حقل Auto_Check من خلاله يستطيع المبرمج استغلاله بحيث :- Private Sub Form_Load() DoEvents If Check_Auto = -1 Then Me.TimerInterval = 1000 Else Me.TimerInterval = 0 End If End Sub Private Sub Form_Timer() Me.TimerInterval = 0 CheckForUpdate End Sub التعامل مع معلومات التنزيل للتحديث بإحترافية ( بحيث يتم عرض شريط تحميل حقيقي لحجم الملف الذي تم تحميله وعرض سرعة الإنترنت والوقت المتبقي لإكمال عملية التحديث ) والعديد موجود في الملف الذي يتم استخراجه لتنفيذ عملية التحديث الصامت بالنسبة لفكرتي مختلفة تماماً إلا أنها في الهدف متشابهة .
  23. نرجو من الأخ @محمد التميمي ، متابعة مواضيعه بإغلاقها باختيار أفضل إجابة كي لا تبقى معلقة - عند إيجاده الحل طبعاً .
  24. ما رأيك بهذا الإقتراح ، لتلافي استخدام DCount المتكرر .. On Error GoTo Ops Dim recordCount As Long recordCount = DCount("[Id]", "[Add_Custorm_QR]") If recordCount = 0 Then Me.cmdPrevious.Enabled = False Me.cmdFirst.Enabled = False Me.cmdLast.Enabled = False Me.cmdNext.Enabled = False Me.cmDelete.Enabled = False Else Me.cmDelete.Enabled = True Me.cmdPrevious.Enabled = (txtRec > 1) Me.cmdFirst.Enabled = (txtRec > 1) Me.cmdLast.Enabled = (txtRec < recordCount) Me.cmdNext.Enabled = (txtRec < recordCount) End If Exit Sub Ops: MsgBox "Error: " & Err.Description & " (" & Err.Number & ")" Exit Sub استخدامت المتغير txtRec لمقارنة المواضع بدل ما يتم استدعاء DCount المتكرر
  25. بالعكس استاذنا الفاضل @Eng.Qassim ، يسعدني تعدد الإجابات وطرح الأفكار المتنوعة 😇 . لا تشغل بالك ، انتهى الأمر بأجابتك وإجابتي كأنهما واحد 🤗 .
×
×
  • اضف...

Important Information