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

كل الانشطه

هذه الصفحة تحدث تلقائياً

  1. الساعة الأخيرة
  2. يا سلام هذه ثورة بمعنى الكلمة ونقطة مفترق طرق .. وحلم تحقق .. تحسب لك كمؤسس القيد تحطم واصل جزيت خيرا
  3. محاولة استنساخ برنامج مثل access يستحيل ان يستطيع شخص لوحده ان يعمل برنامج مثل اكسيس لكن اريد ان اضع الخطوة الاولى وانشر المشروع كامل على الجيت هب ليتم المشاركة عند الجميع طبعا ما تم انجازه اقدره ب 20% المرحلة الان اعمل عليها وانجزت منه شوطا كبيرا طبعا انشاء data engine مستقلة عن اكسيس استقلالية تامة 100% (Zero-Dependency): سيعمل البرنامج على أي جهاز كمبيوتر مباشرة بدون الحاجة لوجود أوفيس أو أكسيس نهائياً. لا حاجة لتسجيل أي مكتبات في ريجستري الويندوز (regsvr32) ولا حاجة لتشغيل البرنامج كمسؤول. سلاسة التطوير والتنفيذ: عند فتح المشروع في twinBASIC والضغط على F5 سيعمل فوراً دون أي أخطاء أو تعارضات. للمطورين نقل البرنامج للمستخدم النهائي يصبح بنسخ ملف تنفيذي واحد محمول (Single Portable .EXE) تضعه على فلاشة ويعمل فوراً على أي جهاز. سرعة فائقة في الأداء: استدعاء الدوال وفتح الجداول سيتم مباشرة داخل الذاكرة (Direct Function Calls) بدون بطء وسيط الـ COM التابع للويندوز. ثانياً: ما الفرق بين win32.exe و win64.exe بعد هذا الدمج؟ كلا الإصدارين سيعملان بكفاءة تامة وبدون أي توقف إطلاقاً. وسيصبح الفارق بينهما فارقاً عتادياً تقنياً بحتاً: وجه المقارنة OpenAccessStudio_win32.exe OpenAccessStudio_win64.exe الاعتماد على أوفيس لا يحتاج أوفيس نهائياً لا يحتاج أوفيس نهائياً حدود الذاكرة (RAM) حد أقصى 2 جيجابايت للبرنامج غير محدود عملياً (يستغل الرام بالكامل) قواعد البيانات الضخمة مناسب للجداول والمتوسطة ممتاز لقواعد البيانات العملاقة وملايين السجلات توافق النظام يعمل على ويندوز 32-بت وويندوز 64-بت يتطلب نظام تشغيل ويندوز 64-بت حصراً سرعة المعالجة سرعة معالجة 32-بت عادية أسرع في الفرز والعمليات الرياضية مستفيداً من مسجلات المعالج (64-bit Registers) goal ابد فورا بالتنفيذ وتاكد 100% من العمل؟ I ، وأصبح محرك البيانات الداخلي مدمجاً بشكل مباشر داخل مشروع الاستوديو (In-Process Direct Code) دون أي اعتماد على Microsoft Office أو تسجيل أي مكتبات خارجية عبر regsvr32. ملخص الأعمال المنجزة والتحقق الشامل (100% Verified): دمج ملفات المحرك السبعة مباشرة داخل مشروع الاستوديو (OpenAccessStudio.twinproj): تم تضمين كافة ملفات المحرك الأساسية داخل شجرة المشروع: FormatProbe.twin PageWriter.twin CatalogReader.twin RowDecoder.twin RecordWriter.twin SqlParser.twin DaoEngine.twin تحديث أداة بناء المشروع tools/build_studio_full.py لتضمينها بصفة دائمة. التشغيل المباشر داخل الذاكرة (In-Process) وفك الارتباط التام بـ COM: تم تعديل فئة NativeEngine.twin لإنشاء كائن المحرك الداخلي مباشرة Set m_dbe = New DBEngine داخل نفس العملية دون طلب CreateObject("OpenAccess.DBEngine"). تم تحديث WinPal.twin بحيث يتم توجيه أي طلب لكائن "OpenAccess.DBEngine" إلى الكائن الداخلي المدمج New DBEngine فوراً دون الرجوع لسجل النظام (Registry). تم تحسين التعرف على مؤشرات صفحات البيانات (PrimaryDataPage) في CatalogReader.twin لتدعم قواعد بيانات Access الحقيقية بمرونة تامة. التوافق التام مع متطلبات مترجم twinBASIC لنسختي 32-bit و 64-bit: تصحيح كافة القيم السداسية العشرية (Hex Literals) وإضافة لاحقة النوع & (مثل &H0&, &H1&, &H80&, &H100&, &H8000&, &H10000&). إزالة أي تضارب في المعرّفات مثل val لتفادي تحذير المترجم TB5030. ضبط نهايات الأسطر لتطابق المعيار القياسي \r\n. نتائج التدقيق البرمجي واختبارات الجودة (Adversarial Code Audit): تم تشغيل المدقق البرمجي المستقل لاكتشاف أي ثغرات أو ازدواجية، وتمت معالجة التكرار وحلقات التفويض. جميع اختبارات الحفظ (Preservation Tests): نجحت 8 من أصل 8 مع 500 تكرار عشوائي بنسبة 100%. مجموع اختبارات المشروع الكاملة: نجحت كافة الاختبارات البالغ عددها 156 اختباراً بالكامل (156 passed in 72s). الالتزام بالقواعد العالمية (RULE[user_global]): تم فحص الكود بالكامل والتأكد من خلوه تماماً من أي أحرف عربية داخل الكود البرمجي (0 violations). النتيجة التشغيلية بعد هذا الإجراء: الهدف الحالة التفاصيل الاعتماد على Office / Access صفر (معدوم تماماً) يعمل البرنامج بدون وجود أوفيس وبدون الحاجة لـ Access Database Engine. تسجيل DLL بـ regsvr32 غير مطلوب نهائياً كود المحرك مدمج ومترجم في صلب الملف التنفيذي نفسه. العمل على 64-bit (win64.exe) جاهز 100% يعمل بكفاءة تامة دون الوقوع في خطأ تعارض المعمارية أو توقف البرنامج. العمل على 32-bit (win32.exe) جاهز 100% يعمل بكفاءة تامة وتوافقية كاملة. ي
  4. Yesterday
  5. السلام عليكم شكرا اخي الكريم للتعديل
  6. تم بتحسين المثال الاخير واصبح الان يتم تنفيذ الامر بعد تعديل الجهة او التاريخ وليس بعد الجهة فقط مشروع مخازن 20266.rar
  7. تفضل أخي صلاح .. تم إنجاز النموذج بطريقتين ممكن تختار الطريقة الأنسب لك 🙂 أولا : الشاشة الرئيسية : الطريقة الأولى : (الربط المباشر عبر جدول Selection) الطريقة الثانية : (النموذج المباشر السريع Unbound) الكشوفات : الملف بعد التعديل : Em.accdb
  8. الاسبوع الماضي
  9. السلام عليكم ورحمة الله وبركاته شكرا اخي للمساعدة وقد قمت ببعض التعديلات بفضل مساعدتكم تحياتي مشروع مخازن 20266.accdb
  10. الفكرة انا عملت سبع جداول saf (الصف) fasl Subjects students Selection(كموبوكس الصف -كموبوكس الفصل-كموبوكس الترم-كموبوكس المادة) marks(يحمل اعمال سنة1-امتحان1-اعمال سنة2-امتحان2) term (ترم اول -ترم ثان) المهم عملت قاعدة بيانات سابقا لكل مادة اربع خانات 2ترم اول 2ترم ثان وجدت الاعمدة كثرة الى ان اقترح علي شخصا اعمل نموذج رئيسي واخر فرعي الرئيسة باخذ بياناته من جدول selection عندما اختار الاربع مومبوبكس يفلتر من خلال الربط بين النموج الرئيسى والفرعي لكن وجدت صعوبة في تنفيذ لك والامر مش ضابط معي المطلوب عمل نموذج رئيسة مصدر البيانات selection والفرعي مربوط به وجزاكم الله عنا خيرا Em.rar
  11. أخي الكريم دائماً ما ننصح الأعضاء بالتقيد بقواعد تسمية الكائنات في قاعدة بيانات أكسس وأول وأهم قاعدة هي عدم إستخدام الأحرف العربية وثاني أهم قاعدة أن لا تتضمن مسافات وأنت ماشاء الله عليك لم تتقيد بأي منها لذا أنصحك بقراءة المشاركات التي تكلمت عن هذه الجزئية لأهميتها عموما كمساهمة مني في حل مشكلتك قمت بوضع حل سيتطلب منك إضافة نموذج سيتم فتحه عندما تريد أن تضيف أمر تسليم جديد ومنه سيتم التحقق من الشروط فإذا لم يسبق إصدار أمر تسليم للجهة في نفس التاريخ فسيتم إضافة أمر التسليم مباشرة أما إذا سبق أن تم الإصدار فسيتم تخيير المستخدم إما للإضافة أو للتراجع أما السلع فبمجرد أن يجد أنه سبق إدخال نفس السلعة في نفس الأمر سيتم تجهلها وحذف السجل أرجو أن تكون هذه هي التعديلات المطلوبة تحياتي مشروع مخازن 2026.rar
  12. في البداية أشكركما على كلامكما المحفز الذي يدفعني لتقديم أفضل مايمكنني تقديمه أولاً فيما يخص ملاحظات الأخ @Moosak الوضع يختلف بين المثال 1 و المثال 2 ففي المثال 1 ولأنه يتم التعامل مع قيمة مربع النص بواسطة الأداة فقد قمت بتعديل الكود لتجاوز هذه المشكلة (إن شاء الله تكون ضبطت 😅) ولكن في المثال الثاني ولأن الأداة تتعامل مع قيمة متغير فنحن سنكون بحاجة لإضافة تعليمات برمجية للقيام بالتحقق من صحة البيانات أولآ ثم تعيين القيمة للمتغير وهذه التعليمات قد تختلف بإختلاف كل حالة لذا فأنا افضل ان لا أشملها ضمن الأمثلة حتى لايعتقد البعض بأنها من ضمن شروط عمل الأداة ولكني قمت بإضافتها لتتضح الفكرة وطالما ذكرنا هنا سبب إضافتها فهذا يفترض به إزالة أي لبس أما الملاحظة الثانية فالحقيقة أن ما حصل معي هو العكس فالمثال الأول كان يصل الى 99٪ فقط والثاني كان يصل الى 100٪ 😚 (لم أنتبه لهذا الخطأ إلا بعد ملاحظتك ) ولكن والحمدلله فقد قام الأخ @Foksh مشكورآ بتوضيح سبب المشكلة لا بل وجاء بالحل ايضا وهذا ليس مستغربا منه فله جزيل الشكر عموما قمت بإعادة رفع الأداة بعد إجراء التعديلات المطلوبة وأرجو أن يكون قد تم إصلاح الملاحظتين دون الوقوع في خطأ لم يكن في الحسبان الله يستر 😅 أرجو تجربة النسخة الجديدة وإبداء أي ملاحظات أخرى مع خالص تحياتي لكم
  13. يا عيني يا عيني ما هذا الجمال ، والإبداع أخي منتصر بارك الله فيك على هذه المشاركة الجميلة فعلاً والتي يحتاجها الكثير فعلاً .. تعقيباً على كلام أخي موسى ، والذي لا ينقص من روعة العمل شيئاً ، لاحظت ما يلي يما يتعلق بالنقطة الثانية :- استخدام تعريف المتغير Private lngStep As Single في بداية النموذج الفرعي sbfSpinButtons . حيث أن نوع البيانات Single ( وحتى Double ) يعتمد على نظام الفاصلة العائمة الثنائي . وهنا الكسور العشرية التي تبدو بسيطة مثل 0.1 أو 0.05 لا يمكن تمثيلها بشكل دقيق تماماً بالنظام الثنائي ؛ فيتم تخزينها بقيمة تقريبية تزيد قليلاً عن القيمة الأصلية . ثم يأتي شرط فحص الحد الأقصى في الدالة Up ، حيث varMaxValue = 1 ، في الجملة :- If (ctlTxtBox.Value + lngStep) <= varMaxValue Then وفرضاً ، الشرط يختبر هل 1.00000001490116 <= 1 ؟؟؟ والنتيجة قطعاً هي لا = False . بالتالي يرفض الكود الزيادة ، ويتجمد الرقم عند 90% (0.9) . ونفس الأمر يتكرر مع خطوة 5% بعد 20 نقرة حيث يتجاوز المجموع الرقم 1 بجزء متناهي الصغر ، فيتوقف عند 95% . ونفس المشكلة تحدث أيضاً عند النزول Down . عندما يصل إلى 10% ثم ينقص 0.1 ، يصبح الناتج تقريباً -0.0000000149 ( أقل من الصفر ) ، فيتوقف عند 10% ولا يصل إلى 0% . لذا ، خطر ببالي ومن باب التجربة ما يلي ، على الدالتين Up و Down ، مع تغيير نوع المتغير طبعاً ليصبح الضع كالتالي :- نوع المتغير في تعريفه من Single إلى Double . الدالتين تصبحان :- Private Sub Up() Dim curVal As Variant Dim stpVal As Variant Dim nextVal As Variant stpVal = CDec(lngStep) If Not ctlTxtBox Is Nothing Then ' الوضع الأول: مع مربع النص If IsNumeric(ctlTxtBox.Value) Then curVal = CDec(ctlTxtBox.Value) nextVal = curVal + stpVal If Not IsEmpty(varMaxValue) Then If nextVal <= CDec(varMaxValue) Then ctlTxtBox.Value = CDbl(nextVal) ElseIf curVal < CDec(varMaxValue) Then ' إذا تجاوزت الخطوة الحد الأقصى وكان الرقم أقل منه (مثل 99% مع خطوة 3%) نضبطه على 100% ctlTxtBox.Value = varMaxValue End If Else ctlTxtBox.Value = CDbl(nextVal) End If End If Else ' الوضع الثاني: مع متغير وحدث curVal = CDec(dblValue) nextVal = curVal + stpVal If Not IsEmpty(varMaxValue) Then If nextVal <= CDec(varMaxValue) Then dblValue = CDbl(nextVal) ElseIf curVal < CDec(varMaxValue) Then dblValue = CDbl(varMaxValue) Else Exit Sub End If Else dblValue = CDbl(nextVal) End If RaiseEvent ValueChanged(dblValue) End If End Sub Private Sub Down() Dim curVal As Variant Dim stpVal As Variant Dim nextVal As Variant stpVal = CDec(lngStep) If Not ctlTxtBox Is Nothing Then ' الوضع الأول: مع مربع النص If IsNumeric(ctlTxtBox.Value) Then curVal = CDec(ctlTxtBox.Value) nextVal = curVal - stpVal If Not IsEmpty(varMinValue) Then If nextVal >= CDec(varMinValue) Then ctlTxtBox.Value = CDbl(nextVal) ElseIf curVal > CDec(varMinValue) Then ' إذا نزلت الخطوة عن الحد الأدنى وكان الرقم أكبر منه نضبطه على 0% ctlTxtBox.Value = varMinValue End If Else ctlTxtBox.Value = CDbl(nextVal) End If End If Else ' الوضع الثاني: مع متغير وحدث curVal = CDec(dblValue) nextVal = curVal - stpVal If Not IsEmpty(varMinValue) Then If nextVal >= CDec(varMinValue) Then dblValue = CDbl(nextVal) ElseIf curVal > CDec(varMinValue) Then dblValue = CDbl(varMinValue) Else Exit Sub End If Else dblValue = CDbl(nextVal) End If RaiseEvent ValueChanged(dblValue) End If End Sub
  14. السلام عليكم ورحمة الله وبركاته لدي في المرفق قاعدة بيانات خاصة بمشروع مخازن ولدي طلبان خاصان بمنع التكرار وهما : الاول :احتاج في حالة وجود تكرار عند ادخال بياني كل من ( اسم الجهة والتاريخ) في نموذج امر التسليم ان يظهر تنبيه على شكل رسالة محتواها (بان هناك تكرار في هذان البيانان فهل تريد الاستمرار في الادخال ام الالغاء ( والهدف هنا هو منع تكرار امر التسليم لنفس الجهة في نفس التاريخ الا في حالة ان يكون هناك فعلا امران للتسليم لنفس الجهة في نفس التاريخ وهذا احتمال وارد الثاني : في خانة اسم السلعة ان يتم منع تكرار ادخال اسم السلعة مدخلة مسبقا في نفس امر التسليم ارجو ان اكون وفقت في الشرح وبارك الله فيكم مشروع مخازن 2026.accdb
  15. ماشاء الله عليك أخي منتصر .. شعلة من النشاط وضحت كل شي بالتفصيل الممل 👌 حتى الأمثلة التي أوردتها راااائعة ومن الواقع العملي ..👍 عمل رائع وجهد مشكور .. في ميزان حسناتك يارب ..🤲 فقط مما لاحظت على السريع (مع علمي بأن الأداة قابلة للتخصيص والتعديل بكل سهولة 🖐️) : * في المثال 1 والمثال 2 : لو كتبت القيمة بيدي ثم ضغطت على أزرار الكيبورد لا يتعرف على القيمة الجديدة بل على آخر قيمة كانت محفوظة .. إلا إذا فقد مربع النص التركيز ثم عاد إليه .. * في المثال 3 : عند استخدام مفاتيح الكيبورد أو الأزرار بالنسبة للمثال الثاني (الذي يقفز 10% مع كل ضغطة ) القيمة تقف عند 90% وتقف ولا تصل إلى 100% .. ولك مني كل التحيات الطيبات المباركات ..🌹
  16. اعرض الملف أداة إنشاء زري التدوير SpinButtons المخصصة {سلسلة الأدوات المساعدة المخصصة} أقدم لكم اليوم أداة جميلة وهي أداة تقوم بنفس الوظيفة التي يقوم بها أحد عناصر تحكم ActiveX وهو عنصر التحكم SpinButton ولكنها تتميز عنه في أنها تضيف إمكانية القيام بنفس العمل ولكن عن طريق لوحة المفاتيح وأيضا التحقق من صحة البيانات بالتالي فإذا كان عنصر تحكم SpinButton يخدم المستخدم الذي يفضل العمل بإستخدام الماوس فإن الأداة ستخدم جميع أنواع المستخدمين + المطورين إستخدام الأداة سهل وتم توضيح كل شيئ في الملف المرفق بإسم النسخة التوضيحية (أرجو قراءة كل التعليمات والملاحظات والتعليقات المرفقة بالكود لإنها توضح كل ما تريدون معرفته) أرجو أن تنال الأداة إعجابكم وفي إنتظار أي أسئلة أو ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 10/24/26 الاقسام قسم الأكسيس  
  17. Version 1.0.0

    8 تنزيل

    أقدم لكم اليوم أداة جميلة وهي أداة تقوم بنفس الوظيفة التي يقوم بها أحد عناصر تحكم ActiveX وهو عنصر التحكم SpinButton ولكنها تتميز عنه في أنها تضيف إمكانية القيام بنفس العمل ولكن عن طريق لوحة المفاتيح وأيضا التحقق من صحة البيانات بالتالي فإذا كان عنصر تحكم SpinButton يخدم المستخدم الذي يفضل العمل بإستخدام الماوس فإن الأداة ستخدم جميع أنواع المستخدمين + المطورين إستخدام الأداة سهل وتم توضيح كل شيئ في الملف المرفق بإسم النسخة التوضيحية (أرجو قراءة كل التعليمات والملاحظات والتعليقات المرفقة بالكود لإنها توضح كل ما تريدون معرفته) أرجو أن تنال الأداة إعجابكم وفي إنتظار أي أسئلة أو ملاحظات تحياتي
  18. جزاك الله خيراً اخي @AMINYOUSIF .. هدية مقبولة منك
  19. بسم الله الرحمن الرحيم إلى السادة المستخدمين الكرام، يسرنا إعلامكم أنه تم الانتهاء من تحديث وتطوير "نظام إدارة الأسطول والمركبات" وإعادته للخدمة بحلتها الجديدة والأكثر استقراراً واحترافية، لضمان سهولة الإدخال، دقة البيانات، وفعالية التنبيهات التلقائية. هذا العمل مُهدى كـ "صدقة جارية"، ونשمح بمشاركتنا مقترحاتكم وملاحظاتكم بعد التجربة. نرجو تفضلكم بإبداء الرأي وتقييم الأداء، لنستمر في التطوير والتحسين المستمر. نسأل الله أن ينفع به، وأن يكتب الأجر والثواب للجميع. نظام إدارة السيارات والأسطول.xlsm
  20. الاخ الكريم /ابو ياسين استأذن الاساتذة و اصحاب العلم و الفضل و اقدم ملف صغير قاعدة بيانات صغيرة و ملف ايقونات يختار او يضيف او يحذف ما يشاء قاعدة البيانات : نموذج و زر على النموذج للتبسيط و موديول صغير ERROR.rar
  21. الى مستخدمى اكسيس باللغة العربية مرفق ملف كامل شامل برسائل الخطأ لقواعد بيانات اكسيس مترجم بواسطة AI Access error messages.rar
  22. السلام عليكم ورحمه الله وبركاته - أريد زر طباعه لفصول متفرقه يتم إختيارها - دفعه واحده ‏‏الدرجات 2027.xlsb
  23. ماشاء الله , اللهم بارك , عمل متعوب عليه ولكنه لا زال تحت التطوير اسأل الله أن يزيدك من علمه وفضله هناك انتقادات ولكن لا أريدها أن تقلل من همتك أو عزيمتك الغرض منها التنبيه إلى الأفضل فقط مثال : أولا : البرنامج يحوي 11 موديول , الموديول رقم 11 و 9 فارغين تماما من البيانات ثانيا : يمكن تقليل عدد الموديولات وضم أكوادها إلى الأخرى
  24. السلام عليكم ورحمة الله وبركاته، إخوتي وأحبتي أعضاء منتدانا الكرام، بقلوب ملؤها الشكر والامتنان لله عز وجل، نعلن عن اكتمال تطوير برنامج "(نظام إدارة السيارات والأسطول)"، والذي نسأل الله أن يجعله عملاً مباركاً وصدقة جارية لنا جميعاً، ولكل من ساهم فيه بعلمه أو جهده أو وقته. 🔍 مرحلة المعاينة التجريبية (إتماماً للصدقة الجارية): قبل الإطلاق الرسمي للنسخة النهائية ليستفيد منها الجميع، نأمل منكم — أيها الخبراء والمستخدمون الأفاضل — معاينة البرنامج واختباره بعناية، وإفادتنا بملاحظاتكم ومقترحاتكم القيمة. أهداف هذه المرحلة: التأكد من جودة النظام وتغطيته لكافة الاحتياجات العملية. رصد أي ملاحظات أو تحسينات برمجية أو شكلية. ضمان خروج أداة مرنة وسهلة الاستخدام للجميع. سنقوم بمشيئة الله بتعديل كافة الملاحظات المناسبة، ثم إعادة طرح النسخة النهائية والمطورة ليتحقق الغاية المرجوة من هذا العمل الخيري. جزاكم الله خيراً، ونسأل الله أن يتقبل هذا الجهد ويجعله في ميزان حسنات الجميع. نظام إدارة السيارات والأسطول.xlsm
  25. جزاكم الله كل خير بشمهندس منتصر على هذه المشاركة الاكثر من رائعة @منتصر الانسي
  26. وعليكم السلام ورحمة الله وبركاته .. رغم أن طبيعة الطلب غير مفهومة أخي الكريم !!! ولكن !! على العموم ، ومشاركة مع أخي الأستاذ @بن علية حاجي ، جرب هذه المعادلة في الورقة Sheet1 في الخلية I2 ، واسحب للنهاية حسب حاجتك للتطبيق على الكل :- =IFERROR(VLOOKUP(A2&"", source!$A:$D, 4, 0), VLOOKUP(A2*1, source!$A:$D, 4, 0)) السبب على الأغلب يكمن في قاعدة أساسية في إكسل تسمى اختلاف نوع البيانات - Data Type Mismatch أما اذا كان سؤالك ، كيف تعمل الدالة السابقة ؟ فهي تقوم بما يلي :- تبحث أولاً مع تحويل القيمة إلى نص في (A2&"") إذا لم تجدها ، تقوم تلقائياً بالبحث بعد تحويل القيمة إلى رقم (A2*1) تضمن لك الحصول على النتيجة الصحيحة في كلتا الحالتين على أي جهاز كمبيوتر أو إصدار إكسل جرب وأخبرنا بالنتيجة
  27. وعليكم السلام نعم تم استبدال استبدال العبارة source!D:D في معادلتك بالرقم 4 ولكن لتزل المشكلة موجودة
  1. أظهر المزيد
×
×
  • اضف...

Important Information