البحث في الموقع
Showing results for 'صلاحيات'.
-
"السلام عليكم، قمت بتعديل صلاحيات المستخدمين في البرنامج المرفق. يرجى الاطلاع عليه، وأتمنى أن ينال إعجابكم." TO = له كل الصلاحيات TO2 = لا يستطيع الدخول الى الاسماء TO3 = يدخل لكل النماذج ولاكن لا يستطيع ان يعدل او يلغي او يضيف شيء ال الباسورد لكل user name 123 الملف login.rar
-
السلام عليكم اخواني ممكن مساعدة في غمل صلاحيات على قائمة منسدلة ممكن الطريقة او مثال ولكم جزيل الشكر
-
جرب هذا الملف بعد التعديل . حيث تم تعديل الكود ليصبح :- Option Explicit #If VBA7 Then Private Declare PtrSafe Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As LongPtr, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As LongPtr _ ) As Long Private Declare PtrSafe Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As LongPtr, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare PtrSafe Function GetCurrentProcess Lib "kernel32" () As LongPtr Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As LongPtr #Else Private Declare Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As Long, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As Long _ ) As Long Private Declare Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As Long, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As Long #End If Public Function IsRunAsAdmin() As Boolean Const TOKEN_QUERY As Long = &H8 Const TokenElevation As Long = 20 Dim hToken As LongPtr Dim elev As Long Dim retLen As Long If OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hToken) <> 0 Then If GetTokenInformation(hToken, TokenElevation, elev, LenB(elev), retLen) <> 0 Then IsRunAsAdmin = (elev <> 0) End If End If End Function Public Sub RestartAsAdmin() Dim exePath As String Dim wbPath As String exePath = Application.Path & "\EXCEL.EXE" wbPath = """" & ThisWorkbook.FullName & """" ShellExecute 0, "runas", exePath, wbPath, vbNullString, 1 Application.Quit End Sub Public Sub CreateTextFile() Dim FilePath As String Dim FileNum As Integer If Not IsRunAsAdmin Then MsgBox ". (Administrator) البرنامج بحاجة إلى صلاحيات مسؤول" & vbCrLf & _ "... لطلب صلاحيات المسؤول Excel سيتم اعادة تشغيل", _ vbExclamation + vbMsgBoxRight, "تحتاج صلاحيات" RestartAsAdmin Exit Sub End If FilePath = "C:\Windows\fs.txt" FileNum = FreeFile Open FilePath For Output As #FileNum Print #FileNum, "https://www.officena.net/" Close #FileNum MsgBox "تم إنشاء الملف بنجاح في:" & vbCrLf & FilePath, _ vbInformation + vbMsgBoxRight, "نجاح" End Sub Book1.zip
-
أفكار ومحاضرات ومقالات متقدمة ( تم تحديث المحتوى )
mohammed farhat replied to mohammed farhat's topic in قسم الأكسيس Access
الملخص: ملخص تفصيلي: تحويل MS Access إلى عميل ويب حديث عبر APIs تستكشف هذه المحاضرة التحول النموذجي في كيفية استخدام Microsoft Access، حيث ننتقل به من كونه مجرد واجهة لقواعد البيانات المرتبطة (Linked Tables) إلى كونه عميل تطبيق ديناميكي (Dynamic Application Client) يتفاعل مباشرة مع خدمات الويب الحديثة عبر واجهات برمجة التطبيقات (APIs). هذا النهج يفتح آفاقاً جديدة لـ Access ليتكامل مع أي نظام تقريباً على الإنترنت. 1. المفهوم الجوهري: فصل الواجهة عن البيانات (Decoupling) الفكرة الأساسية هي فك الارتباط بين واجهة المستخدم الأمامية (Front-end) التي يصممها المطور في Access، وقاعدة البيانات الخلفية (Back-end). النموذج التقليدي: يقوم Access بالاتصال مباشرة بقاعدة بيانات (مثل SQL Server) عبر ODBC. هذا يعني أن Access يجب أن يعرف مكان الخادم، وتفاصيل الاتصال، ولديه صلاحيات مباشرة على الجداول. هذا الارتباط قوي ومباشر. نموذج الـ API الحديث: يعمل الـ API كوسيط أو "مترجم". تطبيق Access لا يتحدث مباشرة مع قاعدة البيانات، بل يرسل طلبات HTTP معيارية (مثل GET, POST) إلى عنوان URL خاص بالـ API. الـ API بدوره هو المسؤول عن التحدث مع قاعدة البيانات، وتنفيذ الطلب، ثم إعادة النتيجة إلى Access. الميزة الكبرى لهذا الفصل: يمكن تغيير قاعدة البيانات الخلفية بالكامل (مثلاً من SQL Server إلى Oracle أو حتى قاعدة بيانات NoSQL مثل MongoDB) دون الحاجة إلى تغيير سطر واحد في كود Access، طالما أن "عقد" الـ API (عناوين URL وشكل البيانات) لم يتغير. هذا يمنح النظام مرونة وصيانة أسهل وقابلية للتطوير. 2. الأدوات التقنية المستخدمة بالتفصيل 🛠️ لتحقيق هذا التكامل، تم الاعتماد على حزمة من التقنيات التي تعمل معاً بسلاسة داخل بيئة VBA. مكتبة VBA-Web هذه هي المحرك الرئيسي للعملية. هي مجموعة من كائنات VBA (Classes) تغلف التعقيدات المتعلقة ببروتوكول HTTP. أهم كائناتها: WebClient: الكائن الأساسي الذي يحتفظ بعنوان URL الرئيسي للـ API (مثال: https://api.weather.com). WebRequest: يمثل الطلب الفردي. من خلاله نحدد: المورد (Resource): المسار الفرعي داخل الـ API (مثال: forecast). الطريقة (Method): نوع العملية (Get لجلب البيانات، Post لإنشاء بيانات جديدة، Put لتحديث بيانات موجودة، Delete لحذفها). المعلمات (Parameters): البيانات الإضافية التي نرسلها مع الطلب، مثل AddQueryParameter لإضافة متغيرات إلى عنوان URL (مثال: ?city=Cairo&units=metric). الجسم (Body): يستخدم مع طلبات Post و Put لإرسال البيانات الفعلية (عادةً بتنسيق JSON) التي نريد حفظها في قاعدة البيانات. WebResponse: يحتوي على الرد من الخادم. أهم خصائصه: .Data: يحتوي على البيانات المُرجعة (عادةً نص JSON). .StatusCode: رمز الحالة الرقمي الذي يخبرنا بنتيجة الطلب (200 للنجاح، 404 لـ "غير موجود"، 401 لـ "غير مصرح له"، 500 لخطأ في الخادم). تنسيق JSON هو المعيار الفعلي لتبادل البيانات على الويب اليوم. هيكله بسيط ويعتمد على: أزواج المفتاح-القيمة (Key-Value Pairs): مثل {"name": "Ahmed", "age": 30}. الكائنات المتداخلة (Nested Objects): يمكن أن تكون القيمة نفسها كائناً آخر، مثل {"user": {"firstName": "Ali", "lastName": "Hassan"}}. المصفوفات (Arrays): قائمة من القيم، مثل {"skills": ["Access", "SQL", "VBA"]}. كائن الـ Dictionary هذا الكائن، الذي يأتي من مكتبة Microsoft Scripting Runtime، هو المكافئ المثالي لهيكل JSON داخل VBA. إنه يخزن البيانات كأزواج مفتاح-قيمة. مكتبة VBA-Web تقوم تلقائياً بعملية تسمى "التحويل" (Deserialization)، حيث تحول نص JSON القادم من الرد إلى كائن Dictionary متداخل. هذا يجعل الوصول إلى البيانات سهلاً جداً: VBA ' بدلاً من التعامل مع نص معقد ' يمكننا الوصول للبيانات هكذا: Dim temp As Double temp = MyDictionary("current_weather")("temperature") 3. تحليل معمق للأمثلة العملية 📝 مثال الطقس (قراءة البيانات فقط - GET) التهيئة: يتم إنشاء كائن WebClient وتحديد عنوان URL الأساسي لخدمة الطقس. بناء الطلب: يتم إنشاء كائن WebRequest وتحديد المورد (forecast) والطريقة (Get). إضافة المعلمات: يتم استخدام .AddQueryParameter لإضافة خطوط الطول والعرض (التي تم جلبها من جدول Access محلي) إلى الطلب، بالإضافة إلى معلمات أخرى مثل وحدة القياس (فهرنهايت). التنفيذ: يتم استدعاء Client.Execute(Request)، والذي يرسل الطلب وينتظر الرد. معالجة الرد: يتم فحص Response.StatusCode. إذا كان 200، يتم تحويل Response.Data (الذي هو JSON) إلى Dictionary. تعبئة النموذج: يتم الوصول إلى القيم المطلوبة من الـ Dictionary (مثل WeatherData("main")("temp")) وتعيينها مباشرة إلى مربعات النص في نموذج Access. لا يوجد ربط بيانات مباشر؛ العملية تتم برمجياً بشكل كامل. مثال المنتجات (قراءة وكتابة - CRUD Operations) هنا تظهر قوة الـ API الكاملة. تحديث منتج (PUT): عندما يغير المستخدم السعر في النموذج ويضغط "حفظ"، يقرأ كود VBA القيم الجديدة (اسم المنتج، السعر) من حقول النموذج. يتم إنشاء كائن Dictionary جديد في VBA لتمثيل المنتج المحدث. يتم تحويل هذا الـ Dictionary إلى نص JSON باستخدام وظيفة خاصة في مكتبة VBA-Web. يتم إنشاء طلب WebRequest بطريقة Put ويتم إرساله إلى عنوان URL محدد للمنتج (مثال: /api/products/15). يتم تعيين نص JSON الذي تم إنشاؤه إلى خاصية .Body للطلب. عند التنفيذ، يستقبل الـ API الطلب، ويقرأ الجسم، ويقوم بتحديث السجل المقابل في قاعدة بيانات SQL. إضافة منتج جديد (POST): العملية مشابهة جداً للتحديث، ولكن الطلب يُرسل بطريقة Post إلى عنوان URL العام للمنتجات (مثال: /api/products)، ويقوم الـ API بإنشاء سجل جديد بدلاً من تحديث سجل موجود. حذف منتج (DELETE): أبسط عملية. يتم إرسال طلب WebRequest بطريقة Delete إلى عنوان URL الخاص بالمنتج المراد حذفه (مثال: /api/products/15). هذا الطلب لا يحتاج عادةً إلى جسم (Body). 4. استنتاجات ومفاهيم متقدمة 🚀 معالجة الأخطاء: من الضروري دائماً فحص StatusCode. إذا لم يكن 200، يجب على الكود التعامل مع الخطأ بشكل مناسب، كعرض رسالة للمستخدم تشرح المشكلة (مثل "لا يمكن العثور على المنتج" للرمز 404). أداة Postman: تم التأكيد على أهمية استخدام أدوات مثل Postman. تسمح هذه الأداة للمطور باختبار كل طلبات الـ API (GET, POST, etc.) بشكل مستقل عن Access. يمكن للمطور التأكد من أن الطلب يعمل وأن البيانات المرجعة صحيحة قبل كتابة أي كود VBA، مما يوفر ساعات من تصحيح الأخطاء. الأمان والمصادقة: معظم واجهات الـ API الحقيقية ليست مفتوحة للجميع. تتطلب "مفتاح API" أو "رمز مصادقة" (Token) يتم إرساله مع كل طلب. مكتبة VBA-Web تدعم إضافة هذه المعلومات بسهولة إلى رؤوس الطلب (Request Headers) لتأمين الاتصال. في الختام، هذه المحاضرة لم تكن مجرد شرح لتقنية جديدة، بل كانت دعوة لتغيير طريقة التفكير في دور MS Access. فبدلاً من كونه أداة محصورة في بيئة سطح المكتب، يمكن تحويله باستخدام هذه التقنيات إلى مكون مرن وقوي في أي بنية تحتية حديثة تعتمد على الخدمات السحابية والويب. و أخيرا ملف الترجمة الي العربية ملف الترججمة الي العربية.rar -
عندي ملف أكسس بيشتغل على الشبكة لاكثر من جهاز ولكل واحد له صلاحيات معينه ازاي اقدر احميها تماماً بحيث محدش يقدر يخش على الجداول ولا الاستعلامات ولا كود البرمجه الخاص بها - إلا انا بس فى حالة تحديث اي جداول او استحداث الى شي
-
السلام عليكم ورحمة الله وبركاته الأستاذة الافاضل في منتدى اوفيسنا : اريد التحكم في صلاحيات المستخدمين في قاعدة البيانات المرفقة من حيث الإضافة او الحذف او التعديل لذلك قمت بعمل نموذج يحتوي على combo box مصدره حقل المستخدمين من جدول المستخدمين واضفت إلى هذه النموذج نموذج فرعي يحتوي علي صلاحيات المستخدمين مصدره أيضا جدول المستخدمين وقمت بربط اسم المستخدم في هذا النموذج الفرعي باسم المستخدم في الــcombo box بحيث عندما اختار اسم المستخدم من الcombo box تظهر صلاحياته في النموذج الفرعي واقوم بتغيير أي صلاحية من هذا النموذج الفرعي لحد الان ماكو أي مشكلة . السؤال هو عندما قمت بوضع button في النموذج الرئيسي لكي يقوم بعملية التراجع عن اجراء أي تعديل أقوم به في صلاحيات المستخدمين علما اني وضع الكود التالي : Me.Usertbl_subform.Form.Undo في حدث on click لهذا الـــbutton . فما هي المشكلة ان الكود لا يعمل تراجع ؟؟؟ هو من الممكن ان أقوم بعملية التراجع بإزالة علامة الصح يدويا من الــcheck box لكن بصراح اود معرفة سبب عدم عمل هذا الكود كذلك اريد التحكم بالنموذج الفرعي من خلال button في النموذج الرئيسي لا نه يستخدم في السؤال في ما اذا اريد الحفظ او التراجع ؟ ارجو المساعدة في هذا الموضوع ؟ وجزاكم الله خير الجزاء Users.rar
-
مساهمة بعد تعديلها لتعمل على اكسل بدلاً من اكسيس ولست متأكد منها :- في وحدة نمطية جديدة = Option Compare Database #If VBA7 Then Private Declare PtrSafe Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As LongPtr, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As LongPtr _ ) As Long Private Declare PtrSafe Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As LongPtr, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare PtrSafe Function GetCurrentProcess Lib "kernel32" () As LongPtr Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As LongPtr #Else Private Declare Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As Long, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As Long _ ) As Long Private Declare Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As Long, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As Long #End If Public Function IsRunAsAdmin() As Boolean Const TOKEN_QUERY As Long = &H8 Const TokenElevation As Long = 20 Dim hToken As LongPtr Dim elev As Long Dim retLen As Long If OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hToken) <> 0 Then If GetTokenInformation(hToken, TokenElevation, elev, LenB(elev), retLen) <> 0 Then IsRunAsAdmin = (elev <> 0) End If End If End Function Public Sub RestartAsAdmin() Dim exePath As String Dim dbArgument As String exePath = Application.FullName dbArgument = """" & Application.CurrentProject.FullName & """" ShellExecute 0, "runas", exePath, dbArgument, vbNullString, 1 Application.Quit End Sub Public Sub CreateTextFile() Dim FilePath As String Dim FileNum As Integer If Not IsRunAsAdmin Then MsgBox "البرنامج بحاجة إلى صلاحيات مسؤول (Administrator)." & vbCrLf & _ "سيتم إعادة تشغيل Access بطلب صلاحيات مرتفعة...", _ vbExclamation, "تحتاج صلاحيات" RestartAsAdmin Exit Sub End If FilePath = "C:\Windows\fs.txt" FileNum = FreeFile Open FilePath For Output As #FileNum Print #FileNum, "fs" Close #FileNum MsgBox "تم إنشاء الملف بنجاح في:" & vbCrLf & FilePath, _ vbInformation, "نجاح" End Sub الإستدعاء سيكون في الزر على سبيل المثال = CreateTextFile
-
وعليكم السلام ورحمة الله وبركاته الموضوع طويل وشائك نوعا ما ولكن رحلة الف ميل تبدأ بخطوة وهذه هي الخطوة (خطوة جامدة) هذا ملف من هذا المنتدى فيه صلاحيات المستخدمين حسين (كلمة مروره 123) هو ال King يستطيع التحكم في ظهور وأخفاء جميع الأوراق في البرنامج وكذالك يتحكم في صلاحيات المستخدمين الباقين بينما حمد (كلمة مروره 11) لا يستطيع التحكم إلا في بعض الأوراق بحسب ما حددها له حسين إذن حسين يستطيع أن يوزع صلاحيات الأوراق وكلمات المرور على المستخدمين ممكن أن نجعل حمد كذلك يتحكم في جميع الأوراق في البرنامج بأن نكتب أمام جمع الأوراق كلمة (نعم) لا أطيل الكلام , التفاصيل داخل البرنامج المرفق تنبيه : كما قلت هذه هي الخطوة الأولى شاشة الدخول مع صلاحيات المستخدمين.xlsb
-
السلام عليكم ورحمة الله أساتذتنا الكرام وخبراء المنتدى النموذج المرفق لأستاذنا kkhalifa1960 واسمه صلاحيات المستخدمين وهو رائع وبسيط فى نفس الوقت ... أردت أن أسجل مستخدم جديد فيه بإسم user وتكون له صلاحيات محددة لكن كلما حاولت الدخول بإسم المستخدم الآخر (يتم الدخول فعلا باسم user) ولا يتم تطبيق الصلاحيات عليه ... فهل يحتاج الكود إلى تعديل أم هناك حطوة أخرى مطلوبة ... admin 12345 user 000 وشكرا لكم مقدما صلاحيات المستخدمين.rar
-
في المعايير النصية لبعض الاستعلامات نستخدم WHERE U_UserName = '" & strUser & "' AND U_Password = '" & strPass & "'") وكذلك الحال في دوال تجميع المجال "[U_FullName]='" & [tx3] & "'") ايضا عندما نضع معيار نصي لفتح فورم من خلال فورم اخر DoCmd.OpenForm "frm2", , , "[U_UserName]='" & [tx2] & "'" وكذلك الحال عند الفلترة بمعيار نصي DoCmd.ApplyFilter , "[U_UserName]='" & [tx9] & "'" وحيث ان الحقول النصية تقبل كتابة أي احرف أو أرقام أو رموز خاصة وبالتي يمكن توظيفها بطريقة معينة لتنفيذ اجراء غير شرعي الحقيقة التي يعلمها اي شخص لديه خبرة في الحماية أن الرموز الخاصة ورسائل الخطأ غير المعالجة تمثل الطريق الأسهل للاختراق في الحالة الاولى معيار نصي في استعلام يمكن تسجيل دخول غير شرعي بكافة صلاحيات مستخدم رقم 1 ويمكن تنفيذ استعلام حذف او الحاق او او ... الخ في حالة رقم 2 مع دوال تجميع المجال يمكن تنفيذ الدالة دون معرفة المعيار وتعود باول او اخر او اكبر سجل وفقا لنوع الدالة في الحالة الثالثة نحتاج أحيانا لفتح فورم وإحضار بيانات محددة للعرض و يمكن من خلال توظيف الرمز فتح الفور مع اول سجل او كافة السجلات ويمكن استعراضها والتنقل بينها هنا لا داعي لمعرفة المعيار فقط رموز ونجوم يتم كتابتها بطريقة معينة وكذلك في الحالة الرابعة الفلترة يمكن فلترة كافة البيانات والتنقل بدون الحاجة لمعرفة المعيار والسؤال هل هذا هو الرمز الوحيد الذي يمكن استغلاله (') الاجابة لا ولكن ركزنا عليه لكونه الأكثر استخدام في قاعدة البيانات اخيرا هل يمكن انهاء المشكلة وخصوصا ان الرمز مطلوب للمعايير النصية نعم يمكن بتتبع المدخلات للحقول النصية المرتبطة باجراء ومن اسهل الطرق استخدام دالة Replace strPass = Replace(Me.U_Password, "'", "_") ايضا استخدام رسائل معالجة الاخطاء وتحديد الاجراء عند حدوث خطأ ونكتفي بهذا القدر عن الرمز (') وقد نتحدث غن رمز اخر لايقل خطورة والله الموفق الشايب
-
المعايير النصية في الحماية في الاستعلامات وغيرها
ابو جودي replied to شايب's topic in قسم الأكسيس Access
يتم عمل الحماية للمجلد كما اشرت يتم فتح قاعدة البيانات الامامية من خلال قاعدة مشفرة accde ولا ننسى توفيرها مره للنواة 32 بت ومرة أخرى للنواة 64 بت ويمكن للمبرمج الاحتفاظ بالقاعدة قبل التشفير واستخدامها مع كل تطبيقاته لو استخدم نفس تشفير القواعد الامامية بنفس كلمة المرور وظيفتها تمرير كلمة المرور للقاعدة الامامية المشفرة لفتحها وطبعا القاعدة الخلفية للجداول سوف تكون مشفرة بكلمة مرور كذلك ربط الجداول من القاعدة الامامية سوف يمرر كلمة المرور للارتباط او اعاادة الاتصال بالقاعدة الخلفية القاعدتان الامامية والخلفية وكذلك القاعدة الوسيطة والتى وظيفتها فتح القاعدة الاماميه نستخدم معهم اخفاء الاطار نهائيا ايقاف مفاتيح الهوت كى لمنع فتح المحرر ايقاف عمل مفتاح الشيفت ولو اردتم اضافة معالجة لتحديد صلاحيات المستخدمين او مجموعات العمل للقاعدة الامامية تلكم الافكار مجتمعة معا تكون حماية لن أقول يستحيل كسرها او تخطيها بل سوف أكتفى بالقول بأنها سوف تكون قوية قوية فوية فوية قوية جدا جدا جدا جدا لا بأس بها ويصعب تجاوزها وكسرها وممكن احفاء كلمة مرور الاتصال لجهاز السيرفر عن المستخدمين اساسا وتتم عملية الاتصال مبدئيا بجهاز السيرفر من خلال حفظ معلومات الاتصال (حفظ بيانات الاعتماد ) من خلال اول نموذج وكل ما سبق موجود فى المنتدى -
كيف يمكن لي ان اطلب خدمة وتعديل على قاعدة بيانات خاصة بي اكسس واضافة صلاحيات المستخدمين فقط وتشفير وحماية النظام برقم القرص الصلب هل يمكن لاخد مساعدتي بمقابل مادي ويتم التواصل معي لو سمحتوا لي مشاريع كثيرة واريد احد يساعدني بارك الله فيكم كيف يمكن الوصول الى شخص فاهم بشكل غير عادي معه مبلغ مادي وينجز طلبي خلال ايام وهل يسمح لي بطرح رقم هاتفي واتساب في المنتدى ؟ تواصل معي واتساب / 00967784455777
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) الكثير من المواضيع التي قد تكون تطرقت الى هذا الموضوع ولكن بطرق وأشكال مختلفة . اليوم وفقط في أوفيسنا / آكسيس ، سأقدم لكم نظام كامل متكامل لإدارة الطابور والدور الذي يمكن استخدامه في أي منشئة تجارية تتعامل بهذا النظام . من المعروف أننا عندما ندخل مركز للصرافة على سبيل المثال ، فإن العميل يحصل على رقم دور مطبوع على شكل تذكرة يحتفظ بها لحين تفرغ موظف لتلبية طلبه وخدمته . وعند انتظارك كعميل لحين وصول الدور لك فإنك تراقب شاشة الدور لمعرفة أين وصل الدور لأي تذكرة . وطبعاً ما يميز هذا النظام أنك في حين لم تكن متابعاً لشاشة العرض فإن النظام الصوتي كفيل بتنبيهك أين وصل الدور ولأي شباك موظف . إلى هنا وكل هذا متاح لك اليوم مع نظام مراقبة الطابور والدور الجديد . وسنسير بشرح المكونات تسلسلاً وشرحاً وافياً ( دون الإطالة .. ) أولاً :- واجهة حجز الدور الذي سيبدأ منها العميل بأخذ دور له ، وهي ذات واجهة بسيطة فقط زر واحد ينقره العميل للحصول على رقم دوره . مرفق تالياً صورة الواجهة ، والتي تدعم بالطبع شاشة اللمس . أي أن ما على العميل فقط هو النقر على الزر "احصل على رقم دور جديد" . ثانياً :- وبعد أن حصل العميل على دوره ، سيراقب دوره في قاعة الإنتظار على شاشة عرض الأدور ، والتي بدورها ستخبر العميل الى أي شباك موظف عليه التوجه حين يحين دوره ، وطبعاً لإرضاء الرغبات قمت بإضافة ميزة الناطق الصوتي ( عربي - انجليزي "اللغة الإفتراضية" ) . أي أنه عليك - كمستخدم أو مصمم - لاحقاً تفعيل اللغة العربية الصوتية (Text-to-speech) . وهنا نقطة مهمة يجب أن نمر عليها سريعاً كي تتوضح لك عزيزي القارئ كيف يمكن تفعيل القارئ الصوتي العربي للنصوص . لذا هذا الفيديو يوضح الخطوات الأولى لإضافة اللغة العربية الصوتية إلى ويندوز 10 . النقطة المزعجة من مايكروسوفت أنه وللأسف لا يتم فعلاً إضافة هذه التثبيتات الى مكانها الصحيح في محرر الريجستري . لذا علينا فعل ذلك بالطريقة اليدوية لضمان تشغيل القارئ الصوتي العربي . لذا ولمحة سريعة سنتطرق للموضوع بشكل مختصر :- بعد الذهاب إلى محرر الريجستري + R اكتب كلمة regedit اذهب الى المسار التالي : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech_OneCore\Voices\Tokens قم بتصدير هذا المفتاح كاملاً الى سطح المكتب بأي اسم تريده . افتح ملف الريجستري هذا باستخدام المفكرة Notepad . قم بإزالة الجزء "_OneCore" من جميع المسارات الموجودة أمامك . احفظ الملف ، وافتحه واختر Yes - نعم من الرسالة التي ستظهر لك مرتين ( على ما أعتقد ) . مبروك عليك تفعيل الناطق العربي . لك حرية الإختيار بتفعيل اللغة العربية أو لا ، ويمكنك الإنتقال لباقي الشرح . تابع معي :- الآن جاء دور الموظفين الذي سيكون لهم جميعهم نموذج واحد بنفس الأكواد بدون أي فرق لا في الشكل ولا في طريقة العمل ، انظر الصورة لاستكمال الشرح :- صورة لواجهة الموظف ( الشباك 1 ) والأمر نفسه لباقي الموظفين . ماذا يمكن للموظف أن يفعل هنا ؟ فقط النقر على الزر الذي سيكون مفعلاً عند وجود عملاء في الإنتظار ( استدعاء التالي & عدد العملاء الذين في الإنتظار ) كما في الصورة التالية :- فقط بعد النقر سيتم استدعاء العميل الأول في الانتظار ( حسب وقت الحجز طبعاً ) الى الشباك 1 :- طبعاً من المزايا المتاحة للموظف ، تحويل عميله الى موظف آخر ( ذو اختصاص على سبيل المثال ) ... إلخ . أو أن يطلب استراحة ( عند عدم انشغاله في عميل ) بأن يكون غير متاح في هذه الفترة لتلقي العملاء .... إلخ . وأيضاً بدء وانهاء خدمة العميل . وطبعاً الأمر ينطبق على جميع الموظفين . ثالثاً :- لوحة عرض العملاء في الإنتظار ، ذات واجهة بسيطة ومريحة كالتالي :- ليس بها أي تعقيد أو أمور تتطلب اعدادات أو ضبط خاص . رابعاً :- شاشة تحكم المدير ، وبهذه الواجهة سنشرحها في نقاط .. الجهة اليمنى تمثل إحصائيات واضحة للمدير عن تفاصيل حركة الدور ... الأزرار في أسفل يمين الشاشة تمثل :- • زر مخصص لتفعيل / تعطيل الناطق الصوتي لرقم الدور . • زر تحديث يدوي = تحديث للتفاصيل الظاهرة للشاشة بشكل يدوي . • زر تعيين القيمة التلقائية للتحديث = عند النقر عليه سيتم اظهار قائمة بسيطة تمثل رقم الدقائق التي تريد للنظام أن يتم تحديثه بشكل تلقائي دون الحاجة الى التحديث اليدوي . • زر إنهاء جميع العملاء العالقين = للطواري في حين حدوث أي خلل أو انقطاع الكهرباء أو الخروج لأي موظف دون انهاء عميله ، أو وجود عملاء لهم حجز وليسوا موجودين ... إلخ . الجهة اليسرى العلوية وتمثل العملاء الذين في الانتظار ( رقم الدور و الوقت الذي تم الحجز فيه ) . الكومبوبوكس الذي يمثل الموظفين المتاحين الآن ، وعند اختيار اي موظف سيتم عرض حالته ( متفرغ - في استراحة - يخدم عميل رقم .. ) وهنا تأتي صلاحيات المدير بأن يقوم بتحويل عميل هذا الموظف الى عميل محدد أو إعادته إلى حالة الإنتظار ( وهنا سيكون لهذا العميل الحق بالوصول لأول موظف متفرغ "VIP" ) .أو أن يتم من الإدارة إنهاء خدمة العميل الذي يخدمه الموظف الذي تم اختياره . إمكانية عرض الساعة باللغتين العربية والإنجليزية عند النقر على الساعة فقط . تم تقسيم قاعدة البيانات الى قواعد امامية وقاعدية بيانات خلفية ( للجداول المشتركة ) . وميزات كثيرة ستجدونها في هذا العمل المتواضع . Queue Management System.zip الإصدار الجديد 1.30
- 17 replies
-
- 6
-
-
-
تعني أنه إذا كانت الجلسة المفتوحة أقل من 24 ساعة على سبيل المثال ، فيتم عرض تنبيه للمستخدم :- " يوجد جلسة مفتوحة من ( التاريخ والوقت ) . هل تريد إغلاقها وبدء جلسة جديدة ؟ " بحيث يختار إما :- إغلاق الجلسة السابقة وبدء جديدة أو إلغاء العملية والباقاء على الجلسة السابقة على سبيل المثال ؟؟؟ وهنا أعتقد قد تكون لنا حاجة للوحة مدير بحيث يتم توسيع الأفكار ومنح هذا السجل بالتجاوز عنه من الإغلاق الآلي ... إلخ من صلاحيات أو أفكار هنا الموضوع قد توسع في مخيلتي 😁 .
-
نظام مراقبة ⭐ هدية ~ نظام مراقبة الطابور وحجز الدور في المنشئات 2025⭐
Foksh replied to Foksh's topic in قسم الأكسيس Access
تحسين الإتصال بقاعدة البيانات الخلفية ( الجداول ) ، وتلافي أخطاء محتملة .. تحسين واجهة العرض الرئيسية ( شاشة الإنتظار ) ، وتحسين سرعة تحديث البيانات على الشاشة . عدم إتاحة الفرصة لأي مستخدم باختيار قاعدة بيانات خلفية غير المسموح بها . توسيع صلاحيات المدير بإضافة ميزة النسخ الإحتياطي ( إنشاء و إستعادة ) . وهذه الميزة جديدة بطريقتها ، بحيث تتميز بـِ :- التعامل مع الجداول فقط عند النسخ الإحتياطي أو الإستعادة ، وليس كقاعدة كاملة . ولكن بسهولة ويسر .. التعامل بإحترافية مع تضمين كلمة المرور الحالية للقاعدة المرتبطة ضمن اسم النسخة الإحتياطية ( باستخدام تشفير بسيط Base64 ) . سهولة تمرير كلمة المرور لكل قاعدة يتم استعادتها أو ربطها من النسخ الإحتياطية - دون الحاجة إلى كتابة كلمة مرور قاعدة بيانات الجداول - حتى لو اختلفت من نسخة الى نسخة . توحيد مجلد قاعدة البيانات الخلفية في مكان واحد لجميع الأجهزة المرتبطة عند الإستعادة لأي نسخة احتياطية . عملية ربط ديناميكية سريعة محدثة عن النسخة السابقة . نظام رسائل تنبيه حديث ومتطور ( بدلاً من رسائل آكسيس ) . حيث تم الإستغناء عن 90% من رسائل آكسيس التقليدية MsgBox . تحسين تفاعل شاشة المدير مع المستخدم . افتح أولاً قاعدة بيانات المدير (Manager Controls) ، وسيُـطلب منك اختيار قاعدة بيانات الجداول الخلفية المرفقة بجانب قاعدة البيانات حاليــــــاً بإسم (TBL) ، والغير محمية بكلمة مرور طبعاً - ( الأمر اختياري لك ) . الآن تباعاً سيتم نسخ قاعدة البيانات الى المجلد TBL:- \Data\TBL انتهى دور المدير في الوقت الحالي . الآن بالتسلسل سيقوم كل موظف / جهاز حجز الدور / شاشة عرض الإنتظار بتشغيل قاعدة بياناتــــه ، وسيطلب منه تحديد قاعدة البيانات الخلفية بشكل يدوي أول مرة طبعاً فقط . وهنا فقط تستطيع الربط مع القاعدة الموجودة في المجلد \Data\TBL في مساره على الجهاز الرئيسي طبعاً . بعد تحديد مسار الملف بغض النظر عن موقعه ( شبكة محلية / بجانب قاعدة البيانات ... إلخ ) سيتم فتح نافذة - ( الصورة أدناه ) - تطلب منك إدخال كلمة مرور الجداول ، فإذا كانت محمية بكلمة مرور فقم بكتابتها . وإلا اضغط موافق واترك الخانة فارغة للمتابعة بدون كلمة مرور . ونكون قد انتهينا من الربط وتهيأة النظام للعمل 😅 . :- دائماً يسعدني إبدائكم الرأي والملاحظات حول الأخطاء والمشاكل التي يمكن مواجهتها في أي مشروع يتم تأسيسه في آكسيس أو غيره من لغات البرمجة . في حال رغبتك أخي المستخدم بإضافة التقارير ، فقد تم تأسيس الجداول بسهولة ودون تعقيد ، وبعدد حقول قليل ويخدم جميع البيانات التي تحتاجها . QMS 1.30.zip- 17 replies
-
- 1
-
-
السلام عليكم الأخوة الأعزاء لدي برنامج قمت بتعيين صلاحيات للمستخدم في جدول المستخدم مثل الحذف والإضافة والتعديل واستخدمت شرط استعلام في النماذج للسماح او منع المستخدم من هذه الصلاحيات بناء على استعلام من نموذج تسجيل الدخول وفق الكود التالي If [forms]![login]![edit] = 0 then Me.allowedition = false Else Me.aĺlowedition = true eND if اريد مساعدتكم بتخصيص كود بنفس الصيغة لتحديد صلاحية الطباعة
-
عندى برنامج مضممة على اكسيل وخلاص خلصته وعاوز اعمل صفحة صلاحيات وكدة فالمهم نزلت شيت صلاحيات من هنا من الموقع لكن لما بدمجهم مع بعض بيتم عمل مشاكل فى تشيغل الاكواد اى الحل ؟ مرفق شيت الصلاحيات شاشة الدخول مع صلاحيات المستخدمين (1).xlsb
-
السلام عليكم قمت بالبحث عن برنامج لصلاحيات المستخدمين وحصلت على غايتي من أحد البرامج بهذا المنتدى العظيم لاخوتنا ابن مسقط والاخ rudwanحيث يشمل برنامج الصلاحيات على جدول Modifications يوضح من قام بالتعديل على البيانات وقت التعديل وما تم تعديله من السابق والحالي للاخ rudwan لكن تلاحظ بجدول USERS ظهور المستخدمين على هيئة رموز غير مفهومة ب وهذه المشكلة قابلتني مع معظم النماذج الجاهزة لتركيب صلاحيات المستخدمين ونظرا لان نموذج الصلاحيات الخاص بالاخ rudwan يوجد به غايتي الذي تم توضيحه سابقا فأرجو مساعدتي بالاتي في حل مشكلة الرموز في جدول USERS علما بأنه سيتم فتح موضوع اخر بعد معالجة هذه المشكلة أما ااسم المستخدم a كلمة السر 1 صلاحية المستخدمين (1).mdb
-
السلام عليكم اخوتي و اساتذتي الكرام .. الرجاء مساعدتي بمثال جدول اكسس بصلاحية فتحه للقراءة فقط و صلاحية اخرى بكل الصلاحيات في access vba مفتوح الكود لاتمكن من المتابعة ... جوزيتم الجنة
-
السلام عليكم ورحمة الله وبركاته كنت أعمل على صلاحيات المستخدمين لبرنامج رأيته على النت وأعجبني، لكن اواجه مشكلة فيه حيث تظهر لي الصلاحيات كما هي في الصورة الأولى، وأنا اريدها كما هو موضح في الصورة الثانية هل يمكن المساعدة في ذلك user.zip
-
السلام عليكم و رحمة الله و بركاتة برنامج شاشة الدخول مع صلاحيات المستخدمين جاهز للاستخدام و بها صفحات عمل جاهزة فقط ادخل و اضف اليه اعمالك مهما كان العمل . شكرا لك استاذى محمد هشام الذي قام بتعديل الاكواد. استاذى محمد هشام إنه لمن دواعي فخري وامتناني الكبير أن أقول للجميع كم نحن محظوظون لوجودك معنا، حقا لقد ابدعت و تميزت ، فأنت أهل للشكر، ولك منى كلّ الثناء! وجزاك الله خير الجزاء و جعله الله فى موازين حسناتك و صدقة جارية لى و لك اسم المستخدم : حسين كلمة المرور :123 شاشة الدخول مع صلاحيات المستخدمين.xlsb
-
السلام عليكم و رحمة الله و بركاتة ارجوكم مساعدتى في تعديل الاكواد برنامج شاشة الدخول مع صلاحيات و اضافة خاصية اظهار اسم المستخدم فى الصفحة الرئيسية c8 مع كود تقرير دخول المستخدمين بمعنى كل من يدخل البرنامج يسجل فى التقرير وجزاكم الله خير الجزاء شاشة الدخول مع صلاحيات.xlsm
-
السلام عليكم ورحمة الله وبركاته قد وجدت في احدى المواقع على الانترنت هذه القاعده التي فعلا هي ما اريد لكن هنالك اضافه واحده كنت اريد ادخالها ولم افلح في ذلك في قاعده البيانات هناك نموذج frmNewUser يتم من خلاله انشاء مستخدم جديد واعطاءه صلاحيات بحيث ان مستوى الصلاحيات ينقسم الى ثلاث 1;"Default User";2;"Admin";3;"Developer" كيف بالامكان عند انشاء مستخدم واختيار مستوى الصلاحيه يقوم بتحديد ما هي صلاحيات المستخدم ان كان من انشاء سجلات جديده .. تعديل سجلات .. حذف سجلات .. او منع الدخول الى نماذج معينه انا اختارها PasswordLogin_RC4_v5.6.accdb
-
يبدو أن المشكلة مرتبطة إما بإعدادات الأمان في Microsoft Access أو بنوع الرابط المخزن في lin_address. إليك عدة حلول ممكنة: 1. تعديل إعدادات الأمان في Access عند النقر على الرابط، تظهر لك رسالة الأمان الخاصة بـ Microsoft Access، وهذا قد يمنع تنفيذ الأوامر المتعلقة بـ FollowHyperlink. لتجاوز هذا، جرب الآتي: افتح Access، ثم اذهب إلى File > Options > Trust Center اختر Trust Center Settings انتقل إلى Macro Settings وتأكد من تحديد Enable all macros انتقل إلى Trusted Locations، وأضف المسار الذي يوجد فيه ملف قاعدة البيانات (إذا لم يكن مضافًا بالفعل) بعد هذه الخطوة، أعد تشغيل Access وجرب مجددًا. 2. التحقق من صحة الرابط المخزن تأكد أن lin_address يحتوي على رابط صالح، مثل: لملف محلي: C:\Users\YourUser\Documents\example.pdf لموقع ويب: https://www.example.com لمجلد مشترك: \\ServerName\SharedFolder\File.pdf 🔹 إذا كان الرابط يحتوي على مسافات، جرب وضعه بين علامات اقتباس: link = """" & Me.lin_address & """" 3. تعديل الكود لمعالجة الأخطاء المحتملة استبدل الكود الحالي بهذا الكود المعدل لمعالجة الأخطاء وإضافة طريقة مختلفة لفتح الملفات المحلية: Dim link As String On Error GoTo ErrorHandler link = Me.lin_address If link <> "" Then If Left(link, 4) = "http" Or Left(link, 3) = "www" Then ' فتح روابط الويب Application.FollowHyperlink link ElseIf Dir(link) <> "" Then ' فتح ملفات محلية باستخدام Shell Shell "explorer.exe " & link, vbNormalFocus Else MsgBox "الرابط غير صالح أو الملف غير موجود.", vbExclamation, "تنبيه" End If End If Exit Sub ErrorHandler: MsgBox "خطأ رقم: " & Err.Number & vbCrLf & Err.Description, vbCritical, "خطأ" 🔹 ماذا يفعل هذا الكود؟ ✔ إذا كان الرابط موقع ويب (http أو www)، يستخدم FollowHyperlink. ✔ إذا كان الرابط ملفًا محليًا، يتم فتحه بـ Explorer بدلًا من FollowHyperlink. ✔ إذا كان الرابط غير صالح، يظهر تنبيه بدلاً من رسالة خطأ. 4. التأكد من صلاحيات الملفات والمجلدات إذا كنت تحاول فتح ملف محلي، تأكد أن الملف موجود في المسار الصحيح. تأكد أن لديك صلاحيات الوصول إلى الملف، خاصة إذا كان على شبكة أو في مجلد محمي.
-
السلام عليكم و رحمة الله و بركاتة اخواني الخبراء ارجوا منكم ارجوكم مساعدتى في تعديل الاكواد برنامج شاشة الدخول مع صلاحيات في صفحة الصلاحيات اسم المستخدم (d6 :d30) و كلمة المرور (e6 :e30) مع اضافة الصلاحيات من (Z30:g7) و اضافة خاصية اظهار اسم المستخدم فى الصفحة الرئيسية J9 مع كود تقرير دخول المستخدمين بمعنى كل من يدخل البرنامج يسجل فى التقرير اسم المستخدم : husain و كلمة المرور :123 واسم المستخدم : 2 و كلمة المرور :2 واسم المستخدم : 3 و كلمة المرور :3 للعلم بان البرنامج حاليا يعمل بصورة ممتازة و لكن يفتح للمستخدمين الثلاثة فقط وجزاكم الله خير الجزاء Private Sub CommandButton1_Click() If UserForm1.TextBox1.Value = "husain" And UserForm1.TextBox2.Value = 123 Or UserForm1.TextBox1.Value = "2" And UserForm1.TextBox2.Value = 2 Or UserForm1.TextBox1.Value = "3" And UserForm1.TextBox2.Value = 3 Or UserForm1.TextBox1.Value = "4" And UserForm1.TextBox2.Value = 4 Or UserForm1.TextBox1.Value = "5" And UserForm1.TextBox2.Value = 5 Then Application.Visible = True Range("b1").Select Selection.End(xlDown).Select ActiveCell.Offset(2, 0).Range("b1").Select ActiveCell.Value = UserForm1.TextBox1.Value Sheets("Sheet2").Select Range("c1").Select Selection.End(xlDown).Select ActiveCell.Offset(2, 0).Range("b1").Select ActiveCell.Value = UserForm1.TextBox2.Value Range("d1").Select Selection.End(xlDown).Select ActiveCell.Offset(2, 0).Range("b1").Select ActiveCell.Value = Date Range("e1").Select Selection.End(xlDown).Select ActiveCell.Offset(2, 0).Range("b1").Select ActiveCell.Value = Time If UserForm1.TextBox1.Value = "husain" And UserForm1.TextBox2.Value = 123 Or UserForm1.TextBox1.Value = "2" And UserForm1.TextBox2.Value = 2 Or UserForm1.TextBox1.Value = "3" And UserForm1.TextBox2.Value = 3 Or UserForm1.TextBox1.Value = "4" And UserForm1.TextBox2.Value = 4 Or UserForm1.TextBox1.Value = "5" And UserForm1.TextBox2.Value = 5 Then Application.Visible = True UserForm1.Hide Else MsgBox "يرجى التحقق من ادخال اسم المستخدم وكلمة المرور بصورة صحيحة", , " " Label5.Caption = Label5.Caption - 1 If Label5.Caption = 0 Then ThisWorkbook.Save Application.Quit End If End If End Sub الدخول.xlsm