بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation since 11/22/25 in all areas
-
وعليكم السلام ورحمة الله وبركاته الى جانب الحلول التي ارفقها استاذنا الفاضل hegazee اليك حل اخر بالكود في حدث الورقة Private Sub Worksheet_Change(ByVal Target As Range) Dim rngF As Range, rngG As Range Dim rngB As Range, rngC As Range Dim pos As Variant Set rngF = Me.Range("F2") ' Set rngG = Me.Range("G2") Set rngB = Me.Range("B2:B1000") Set rngC = Me.Range("C2:C1000") If Not Intersect(Target, rngF) Is Nothing Then Application.EnableEvents = False pos = Application.Match(rngF.Value, rngB, 0) If Not IsError(pos) Then rngG.Value = Application.Index(rngC, pos) Else rngG.Value = "" End If Application.EnableEvents = True End If rngG.Select End Sub data.xlsb3 points
-
عذرا لم انتبه ان قي طلبك طباعة متعددة الطريقة الاولى زر print all اكتب كود الشركة بداية الطباعة في الخلية P2 ونهاية الطباعة في Q2 الطريقة السابقة لطباعة الارقام المتسلسلة وراء بعضها الطريقة الثانية عن طريق فورم زر طباعة خسب الاختيار وهي تغنيك عن كل الازرار وعن الطريقة الاولى حيث يمكن الطباعة لموظف واخد او الطباعة للكل او الطباعة المتعددة خسب الاختيار سواء الارقام متصلة ام منفصلة اختر ما تراه متاسب لطلبك مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025 (1).xlsm3 points
-
و عليكم السلام ورحمة الله و بركاته https://www.officena.net/ib/topic/64613-أبغي-قائمة-منسدلة-مرتبطة-بقائمة-منسدلة-أخري-فى-نفس-ورقة-العمل/2 points
-
تم تعديل المشروع بطريقة مختلفة تماما عن ما كنت افكر به سابقا يمكننا القول الآن ان العمل احترافي الوصف للتعديل الجديد : 1- يدعم فترتين مختلفتين مفتوحتين 2- لا يوجد حد فاصل بين الصباح والمساء .. كل فترة تعمل بشكل مستقل من خلال شاشة واحدة 3- الفترة تبدأ قبل وقت الدخول بساعة وتنتهي بعد وقت الانصراف بساعة ايضا .. 4- لا يمكن التوقيع خارج الوقت المعتبر للفترة .. 5- اذا لم يوقع الموظف خروج .. عند الحضور من الغد يسجل حضور ويبقى حقل خروج الأمس فارغا 6- تم التطبيق على شاشة توقيت الانترنت وعلى شاشة التوقيت المحلي الضوابط : مهم جدا : 1- ادخال البيانات الصحيحة كاملة في فورم التحكم : وقت الحضور الصباحي/وقت الحضور المسائي/ عدد ساعات العمل الصباحي والمسائي والوقت الاضافي ان وجد اكسس هو من يحدد وقت الخروج بناء على وقت الحضور + ساعات العمل 2- تعيين الفترات للموظفين في فورم الأسماء عند انتقال الموظف من الصباح الى المساء فقط يتم تغيير وقته في فورم الاسماء . اذا اردنا ان يعمل الموظف في الفترتين كليهما عليك تسجيله بمعرف جديد ................................. جرب كثيرا ووافني بالنتيجة اذا كل شيء تمام خبرني كي اهديكم المخرج النهائي ChkInOut_NetUp3.rar2 points
-
اعجني الموضوع من اول انشغالي بالاكسيس تيقنت ان الاكسيس من اضغف الحمايات لكني قكرة بان اسال الذكاء الصناعي سالت CHATGPT عن فكرة مجنونة لم يفكر بها احد لحماية الجداول ادعوا اخواني لتجربة الفكر المقترحة وانا ساجربها معكم مع توفر الوقت لدي سارفق الاجابة والسؤال الذي سالته انقر هنا2 points
-
2 points
-
وعليكم السلام تفضل هذا الملف ربما يفيدك ويكون به المطلوب ان شاء الله وبالتوفيق المحطة.xlsm2 points
-
السلام عليكم ورحمة الله وبركاته هذه دعوة كريمة لتجربة الأداة الجديدة والفريدة من نوعها : دكتور ال VBA وضائف الأداة : 1- تحويل الكود إلى صيغة متوافقة مع النواتين 32 و 64 بت. 2- تصحيح الأخطاء البرمجية في الكود. 3- تنسيق وترتيب الكود شكليا. 4- كتابة التعليقات وشرح للكود باللغتين العربية والإنجليزية. 5- إضافة صائد الأخطاء للكود وذلك لتعقب الأخطاء البرمجية. 6- إضافة ترقيم لأسطر الكود. يمكنك اختيار واحد من هذه الوظائف أو تختار من بينها ما تريده. الأداة مخصصة لأكواد ال VBA وتعتمد على قدرات الذكاء الاصطناعي لإعطاء نتائج دقيقة ومبهرة .. 😁✌🏻 اختصر على نفسك الوقت والجهد واعمل بذكاء 😉👌🏻 رابط الأداة : https://vba-code-doctor-471932697586.us-west1.run.app/ يمكنك فتحها في الهاتف أو الحاسوب على راحتك 😎🌷 جربوها وعطوني رأيكم 😇✌🏻1 point
-
جزاك الله خيرا جربتها على كود اعمل عليه فعلا الآن النتيجة ممتازة .. خاصة الترتيب والتعليق ايضا التصحيح فقد اضاف لي اغلاق وانهاء مجموعة السجلات ولكني حين نقلته الى الفورم .. ظهر لي خطأ في سطر DlookUp لم احقق في السبب لم ابحث عن المشكلة وقتها حيث كنت اعمل على تحقيق فكرة في رأسي .. ورجعت الى كودي الأصل على ان اعود واجري تجارب اوسع وضعت الموقع في شريط المفضلة لتكون هذه التحفة قريبا مني ..1 point
-
اعرض الملف دليل شجرة حسابات لنشاط صناعي دليل شجرة حسابات لنشاط صناعي - حسب داتا ونظام برنامج سماك 6 صاحب الملف salahmosaed تمت الاضافه 29 نوف, 2022 الاقسام قسم الإكسيل1 point
-
للاسف المشكلة .. لا يمكن التعامل معها .. على طريقتنا الحالية الى وهي دخول اليوم الجديد اتضح لي الآن ان طريقتنا الحالية محكمة للفترة الواحدة فقط وحيث اني وعدتك بتحقيق طلبك على اكمل وجه .. لذا اعتذر عن اطالة مدة انتظارك وقد المحت في ردي عليك في مشاركة سابقة ان الطريقة يجب ان تتم بشكل مختلف وهي اعتماد الحقل الواحد هذه الطريقة لا يعيبها عندي حسب وجهة نظري القاصرة الا الاضطرار لاستخدام العديد من الاستعلامات لاستخراج التقارير اللازمة ولكنها في الوقت نفسه اكثر مرونة واقل في استخدام الجمل البرمجية لن يكون هناك ضوابط في وقت التوقيع .. سيكون التوقيع مفتوحا لجميع الفترات ويمكننا ايضا استخدام النظام المفتوح او المقفل ( سأوضح هذا لاحقا ) انتظرني ..1 point
-
نعم ملاحظتك صحيحة يوجد خلل في الدالة .. سوف اعالجه وحقيقة لم اجرب بعدما انهيت التعديلات في نقاشنا الأخير1 point
-
السلام عليكم : من رخصة استاذنا المحترم Foksh وهذه مشاركة بسيطة تتضمن اربع ارقام يمكنك اختيار احدها 222.accdb1 point
-
1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته .. بما أنك تريد الفلترة على فلترة أخرى أو بدونها . خطر ببالي فكرة كالآتي ، لمنع التكرار في الحدثين لمربعي النص ، قمت بدمج الفكرة في دالة استعلام بسيط ، واستخدام الدالة Like ليكون البحث والفلترة حتى لو بجزء مطابق من النص :- Private Sub ApplyFilter() Dim filterCondition As String filterCondition = "" If Nz(Me.Combo7, "") <> "" Then filterCondition = "[namee] Like '*" & Me.Combo7 & "*'" End If If Nz(Me.Text9, "") <> "" Then If filterCondition <> "" Then filterCondition = filterCondition & " AND " filterCondition = filterCondition & "[town] Like '*" & Me.Text9 & "*'" End If Me.Filter = filterCondition Me.FilterOn = (filterCondition <> "") Me.Requery End Sub وبالتالي ، للحدثين بعد التحديث لمربعي النص ، استدعيها نفسها بهذا الشكل :- Private Sub Combo7_AfterUpdate() ApplyFilter End Sub Private Sub Text9_AfterUpdate() ApplyFilter End Sub وكإضافة ، قمت بإنشاء زر لإلغاء الفلترة وعرض السجلات كاملة . من خلال الزر :- Private Sub Command20_Click() Me.Combo7 = Null Me.Text9 = Null Me.FilterOn = False Me.Requery End Sub ملفك بعد التطبيق :- Database6.zip1 point
-
اخي الكريم محمد حسن جرب الآن ووافني بنتيجة التجربة ChkInOut_NetUp5.rar1 point
-
الف شكر لحضرتك استاذنا الغالي، وشكرا علي دعمك وسعة صدرك وشكرا لدعمكم.1 point
-
1 point
-
تفضل المرفق بعد التعديل بطلبك . ولا تنسى تمت الاجابة Bader770-1.rar1 point
-
1 point
-
على حسب فهمي ومحاولة لقائمة متلاصقه كل زر له تفريع نموذج فرعي كان فيه ازار مع سجلات من راس نموذج وتذليل نموذج او كان تقرير كود بسيط جدا فقط اخذ الاحداثيات + تفاعل عند الضغط تحميل المرفق https://www.mediafire.com/file/lkx9vqjwaf8peh8/Menu-1.rar/file1 point
-
3 سجلات بناءً على ماذا ؟؟؟؟؟؟؟؟؟ انظر لنتيجة الشرط على سبيل المثال 936/2025 من الجدول الأول :- TAB1 innow oprate note_E Awarding SERR 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025.05.28 7071 سجل واحد . والجدول الثاني لنفس الفلترة :- TAB2 innow nooprat oprate MRNo Date Of Recipt id 2025-05-22 9:56:58 AM 2200021005 936/2025 1264/2025 2025.05.22 8222 2025-05-22 10:06:07 AM 2200021007 936/2025 1265/2025 2025.05.22 8223 سجلين اثنين . والجدول الثالث بنفس الفلترة :- TAB3 inday orderNO elcNO oprate id 2025-05-27 7:29:01 AM 5594/2025 5300221097 936/2025 8629 2025-05-27 7:29:55 AM 5595/2025 5300221100 936/2025 8630 2025-05-27 7:30:25 AM 5596/2025 5300221102 936/2025 8631 3 سجلات . فما هو الشرط الذي سيتم عرض 3 سجلات فقط ( بناءً على معرفتك بالسجلات وماهيتها ) ؟؟؟؟؟؟؟؟ فهم السؤال بالنسبة لي = الجواب كاملاً وليس نصفه . جربت هذا الإستعلام :- SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, TAB2.innow AS T2_innow, TAB2.nooprat, TAB2.MRNo, TAB2.[Date Of Recipt], TAB2.id AS T2_id, NULL AS inday, NULL AS orderNO, NULL AS elcNO, NULL AS T3_id FROM TAB1 INNER JOIN TAB2 ON TAB1.oprate = TAB2.oprate WHERE TAB1.oprate = '936/2025' UNION ALL SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, NULL AS T2_innow, NULL AS nooprat, NULL AS MRNo, NULL AS [Date Of Recipt], NULL AS T2_id, TAB3.inday, TAB3.orderNO, TAB3.elcNO, TAB3.id AS T3_id FROM TAB1 INNER JOIN TAB3 ON TAB1.oprate = TAB3.oprate WHERE TAB1.oprate = '936/2025'; والذي كانت نتيجته كمثال على نفس الفلترة = Query2 innow oprate note_E Awarding SERR T2_innow nooprat MRNo Date Of Recipt T2_id inday orderNO elcNO 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-22 9:56:58 AM 2200021005 1264/2025 2025-05-22 9:56:59 AM 8222 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-22 10:06:07 AM 2200021007 1265/2025 2025-05-22 10:06:07 AM 8223 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:29:01 AM 5594/2025 5300221097 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:29:55 AM 5595/2025 5300221100 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:30:25 AM 5596/2025 5300221102 ومع ذلك لم أفهم شرطك أو المطلوب .1 point
-
1 point
-
1 point
-
تفضل استاذ @Abdelaziz Osman 'طلبك حسب ما فهمت . اختار الاوردر من النموذج ثم افتح التقرير من الزر وطالع التقرير. ووافني بالرد . اليك المرفق بطلبك. quirytreble-1.rar1 point
-
وعليكم السلام ورحمة الله وبركاته .. كمطلب أول :- جرب هذا الإستعلام .. SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, TAB2.innow AS T2_innow, TAB2.nooprat, TAB2.MRNo, TAB2.[Date Of Recipt], TAB2.id AS T2_id, TAB3.inday, TAB3.orderNO, TAB3.elcNO, TAB3.id AS T3_id FROM (TAB1 LEFT JOIN TAB2 ON TAB1.oprate = TAB2.oprate) LEFT JOIN TAB3 ON TAB1.oprate = TAB3.oprate WHERE (((TAB1.oprate)=[أدخل قيمة للفلترة]));1 point
-
أخي الكريم بداية ، أهلاً بك مرة أخرى في المنتدى ،، ثانياً لتلافي حذف أي موضوع ، ليس عليك تكرار فتحه بموضوع جديد مستقل ، بل يكفي ان تستخدم اسلوب النداء "للرفع" أو "Up" . ثالثاً ، ولضيق الوقت ، سأرفق لك ملف من مكتبتي ، جربته ولعله تستفيد منه بالشكل الصحيح . Menu-1.zip1 point
-
جميل ورائع وهذة الادوات التي نحتاجها فعلا لانها تحل مشكلة انا افضّل تكون الاداة مستقلة عن القاعدة الاساسية حيث اقوم بارساله للعميل اولا واطلب منه تشغيلة واذا كانت اللغه هي العربية تفتح نافذه فيها معلومات احتاجها انا مثلا سيريال الجهاز نسخة الاوفيس نسخة الويندوز وهل هو 64 او 32 وهكذا .. واذا كانت اللغه انجليزية تفتح نافذتك الجميله لتحويل اللغه من قبل المستخدم ايضا لو تستطيع دمج اداة تقوم بتمكين محتوى الاكسس و active بشكل دائم ايضا هذي مشكلة شكرا لافكارك الجميلة وننتظر التحديث1 point
-
جزيت خيرا .. ما على كريم تشرط .. أعانك الله ووفقك1 point
-
اولا اود شكرك على نقطة الاسماء المحجوزة بالاكسس فعلا صح ثانيا الحل اللى حضرتك ارسلته هو ده المطلوب بالفعل جزاك الله كل خير الف مليون شكر1 point
-
وعليكم السلام ورحمة الله وبركاته .. بدايةً لا تقترف خطأ كبيراً بتسمية المكونات بأسماء محجوزة لآكسيس مثل ، Form أو Group . ثم ان الفكرة بسيطة جداً .. انظر الفكرة التالية في المرفق :- FAST_CA.zip1 point
-
بسيطة إستخدم هذا الإستعلام من أي قاعدة بيانات أخرى SELECT MSysObjects.Flags, MSysObjects.Name, MSysObjects.Type FROM MSysObjects IN 'D:\HideTBL V1-64.accde' WHERE ( ((MSysObjects.Name) NOT LIKE "MSys*") AND ((MSysObjects.Type) = 1) ); وذلك على إفتراض أن الملف موجود تحت القرص D مباشرة وإلا قم بتعديل المسار تحياتي1 point
-
1 point
-
الفترتين منفصلتين تماما عند التوقيع وما ينطبق على واحدة ينطبق على الاخرى فدعونا نتحدث عن واحدة منها : تعتمد الفكرة على وجود وقت الدخول + ساعات العمل + الوقت الاضافي ان وجد من خلال البيانات اعلاه نستخرج : 1- وقت الخروج الرسمي 2- صنع وقت احتياطي قبل وقت الدخول ووقت احتياطي بعد وقت الخروج بمقدار ساعة مثلا لكل واحد منهما اي ساعة متاحة قبل وساعة متاحة بعد هذان الوقتان + معرف الفترة .. هي معايير قبول التوقيع من عدمه النتيجة : لو كان حضور الصباح الساعة التاسعة صباحا والخروج الساعة الخامسة مساء ففي الامكان جعل الفترة المسائية تبدأ في الساعة الرابعة مساء . ولن يحدث تضارب بينهما كل ذلك من خلال فورم واحد وشاشة واحدة للجميع لا بأس يمكننا اضافة حقل يحمل القيمة كرقم1 point
-
السلام عليكم ساحاول ان انشيء تطبيق على الاكسيس مثل هذا التطبيق وهذا التطبيق قد يكون مفيد للشركات الصناعية لفحص جودة المنتج فكرة التطبيق جميلة ويمكن الاستغناء عن الاتصال بالنت وتنزبل نموذج ذكاء صناعي محلي اذا توفر الوقت لدي ونجح البرنامج ساقوم بنشره هنا1 point
-
نعم وجهة نظر صحيحة سأعالجها في التعديل القادم ان شاء الله لم تعطني رأيك حول الفكرة العامة التي توصلت اليها اخيرا بجعل كل فترة حرة .. حتى لو تداخلت اوقات الفترتين سأشرح الفكرة لتسهيل ايجاد وجهات النظر1 point
-
عجيبة اجهزتك هذه .. انا لم اغير القاعدة .. هي هي من اول مشاركة على كل حال قمت بتجديدها ونقلها الى قاعدة بيانات جديدة انا اعمل على اوفيس 2010 .. والافضل ان تعمل على مثله ايضا .. ChkInOut_NetUp4.rar1 point
-
وعليكم السلام ورحمة الله وبركاتة كود طباعة الكل Sub PrintAll() Dim ws As Worksheet Dim dropdownCell As Range Dim validationFormula As String Dim optionsRange As Range Dim cell As Range Dim originalValue As Variant Dim counter As Integer Set ws = ActiveSheet Set dropdownCell = ws.Range("D4") originalValue = dropdownCell.Value If dropdownCell.Validation.Type = 3 Then validationFormula = dropdownCell.Validation.Formula1 If Left(validationFormula, 1) = "=" Then validationFormula = Mid(validationFormula, 2) End If Set optionsRange = ws.Range(validationFormula) counter = 0 For Each cell In optionsRange If cell.Value <> "" Then dropdownCell.Value = cell.Value Application.Calculate DoEvents ws.PageSetup.PrintArea = "C3:J54" ws.PrintOut counter = counter + 1 Application.StatusBar = "تم طباعة " & counter & " من " & optionsRange.Cells.Count End If Next cell dropdownCell.Value = originalValue Application.StatusBar = "" MsgBox "تمت طباعة " & counter & " عنصر بنجاح!", vbInformation Else End If End Sub مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025.xlsm1 point
-
1 point
-
السادة الأفاضل الكرام ، الأساتذة ( @kanory ، @عمر ضاحى ، @Barna ) الذين ساهموا بمشاركتهم بالتجربة والإفادة بالنتيجة .. بدايةً شكراً لكم لمشاركتكم ، وأعلم أنكم بخبرتكم قادرون على تحقيق المطلوب بشتى السُبل والطـُرق . كانت البداية بأن الملف بصيغة ACCDB ؛ أي أنني تركت لمن يرغب بالمشاركة - باب التجربة مفتوحاً - بأكواد أو استعلامات أو أي طريقة يراها مناسبة لتحقيق المطلوب . 💥 ولكن كمطور فطبعاً لن يتم تسليم أي مشروع لأي عميل بهذا الشكل - الغير محمي - وبالتالي لا بد من حماية وتشفير الملف وتقفيله بعد إتمام المشروع بصيغة ACCDE مع باقي الإحتياط التي يتخذها المصمم والمطور والمبرمج ، صحيح ؟ ☢ وهنا جاءت الفكرة التي رغبت بتجربتها وتنفيذها ، بحيث سيكون التنفيذ والإختبار على ملف مقفل فقط بحفظه بصيغة ACCDE لم أضع كلمة مرور - له - على محرر الأكواد . لذا أرجو منكم الإفادة بالتجربة على نفس الملف ولكن بصيغة ACCDE . مع العلم أن المكون هو جدول واحد و سجل واحد فقط . ولن يهمني كثيراً اسم الجدول بقدر ما يهمني السجل الذي يحتويه الجدول كبيانات كما أرجو أن يتم ذكر الطريقة التي تم بها التعرف على هذا السجل والجدول . ولن أطلب أي أكواد بقدر ما يهمني الطريقة ذاتها . HideTBL V1-32.zip HideTBL V1-64.zip1 point
-
السلام عليكم ورحمة الله راجع المعادلات في الأعمدة المخفية من العمود B إلى العمود K من شيت "دفتر اليومية" لأن منها ظهر المشكل، وقمت بتصحيح هذه المعادلات بالسحب إلى الأسفل حسب ما فهمت في الملف المرفق. اليومية_034849.rar1 point
-
السلام عليكم ورحمة الله إليك هذا الحل باستعمال "الذكاء الاصطناعي" (بالمعادلات وبالأكواد -بتصرف-) أرجو أن يفي الغرض المطلوب... ملف العمل.xlsm1 point
-
السلام عليكم ورحمة الله لست أدري إن كنت قد فهمت المطلوب. ألق نظرة على الملف المرفق عبدالحي توزيع نسب (1).xlsx1 point
-
🎯 الفكرة الأساسية الفصل يعني أن يكون لديك ملف قاعدة بيانات (Back-End) يحتوي فقط على الجداول والاستعلامات. وملف آخر (Front-End) يحتوي على النماذج، التقارير، الأكواد (Modules). المستخدمون يتعاملون مع الـ Front-End فقط، بينما الجداول تبقى في الـ Back-End. 🛠️ خطوات الفصل إنشاء ملف Back-End افتح قاعدة البيانات الأصلية. من قائمة Database Tools → Move Data → Access Database. سيقوم Access بإنشاء ملف جديد يحتوي على الجداول فقط. إنشاء ملف Front-End احتفظ بالملف الأصلي كـ Front-End. بعد عملية الفصل، ستجد أن الجداول أصبحت "Linked Tables" مرتبطة بالـ Back-End. الربط (Linking) من الـ Front-End، اذهب إلى External Data → Linked Table Manager. اختر الجداول المراد ربطها وحدد موقع ملف الـ Back-End. Access ينشئ جداول مرتبطة (Linked Tables) بنفس الأسماء، لكن أي تعديل أو إدخال بيانات يتم تخزينه في الـ Back-End. ⚡ ملاحظات مهمة الاستعلامات: إذا كانت الاستعلامات بسيطة (Select)، يمكن أن تبقى في الـ Front-End. أما الاستعلامات المعقدة أو التي تعتمد على حجم بيانات كبير، يفضل نقلها إلى الـ Back-End لتحسين الأداء. الأمان والصيانة: بهذه الطريقة، إذا أردت تحديث النماذج أو الأكواد، توزع نسخة جديدة من الـ Front-End فقط، دون المساس بالبيانات. يمكن وضع الـ Back-End على شبكة مشتركة (Shared Folder) ليستخدمه أكثر من موظف. إعادة الربط التلقائي: يمكنك كتابة كود VBA صغير في الـ Front-End يقوم بالتحقق من وجود الـ Back-End وإعادة الربط تلقائيًا إذا تغيّر المسار. هذا يحل مشكلة اختلاف المسارات بين الأجهزة. 🔑 مثال كود VBA لإعادة الربط Function RelinkTables() Dim db As DAO.Database Dim tdf As DAO.TableDef Dim strPath As String strPath = "C:\Data\MyBackend.accdb" ' مسار ملف الـ Back-End Set db = CurrentDb For Each tdf In db.TableDefs If Len(tdf.Connect) > 0 Then tdf.Connect = ";DATABASE=" & strPath tdf.RefreshLink End If Next tdf MsgBox "تم إعادة ربط الجداول بنجاح!" End Function ✨ بهذه الطريقة يصبح عندك فصل واضح بين البيانات و الواجهة، مما يسهل الصيانة، التوزيع، والتحكم في الأمان. واليك مرفق استاذنا @at_aziz ليوضح لك عملية اعادة الربط . Aziz-1.rar1 point
-
اولا شكرا لدعاؤك لي ثانيا الكود في الملف السابق يقوم بترتيب الصفحات ذات الارقام وبالتالي ستجد الصفحات الاخرى ذات الحروف وليس الارقام مستثناة وتجدها بجانب بعضها ولكن هناك احتمال الرغبة في استثناء صفخة او صفحات رقمية مثلا تريد استثناء صفخة 4 من الترتيب . هنا سيتم التعديل على الكود باظافة مصفوفة لتجميع الصفخات المستثناة كل ما عليك فعلة هو التعديل في هذا الجزء من الكود حيث اضفت لك صفحات افتراضية في الكود وليس في المصتف مثل "ملخص", "إعدادات", "تعليمات يمكنك تعديلها باي اسم او اظافة صفحات اخرى باي عدد تشاء excludedSheets = Array("الرييييسية", "تجميع", "ملخص", "إعدادات", "تعليمات") اليك الملف بالتعديل ترتيب الصفحات1.xlsm تحياتي1 point
-
تم التخلص من المديول ، ودمج الفكرة داخل نموذج البداية ، والذي اعتمدت في تصميمه على ما يلي :- ⏱️ جعلته يبدو كرسالة بمحتوى عربي بدلاً من الرسائل الإنجليزية والتي قد تربك المستخدم أو من كانت خبرته باللغة الإنجليزية ليست بالقوية . ⏱️ من خلال الكود أصبح بإمكان المبرمج اختيار البلد الذي يريد أن تكون له اللغة العربية في اللغة الإدارية ( 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 ]1 point
-
اخى الكريم الملف يعمل بكل كفاءة فقط عليك تحديث برنامج فك الضغط لديك وعموماً تفضل البرنامج مرة اخرى The-Magic-Form-اليوزرفورم السحرى.rar1 point
-
السلام عليكم و رحمة الله وبركاته شاهدت فى بعض المنتديات الاجنبية خرائط جغرافية لدول مصممة على الاكسل فقررت أعمل واحدة لمصر . فى المرفق قف على اسم المنطقة فى الخلية وانظر للخريطة . يا رب يكون مفيد تحياتى Egypt_map Mokhtar.rar1 point