بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
1,366 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
19
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو sandanet
-
من ابداع الى آخر ماشاء الله عليك .. استمر على بركة الله
-
رائع جداً .. بارك الله فيك على هذا الابداع
-
اخي الكريم ابحث في المنتدى فهنالك الكثير من المواضيع التي طرحت بهذا الخصوص تحياتي
-
اخي الكريم كاسر طبعاً لاتوجد مشكلة لو استخدمت ذلك الكود في كل النماذج لكن لماذا نستخدمه في حين اننا يمكننا ان نستخدم الكود المبسط قلت لي انك واجهت خطأ في عدم تعرف البرنامج على قيمة x الخطا هو انك لم تقم بتعريف المتغير x كمتغير عام في البرنامج الحل هو انشاء وحدة نمطية وسمها variables وقم باضافة التالي Public x as Boolean وان شاء الله يعمل معك بصورة سليمة هنا قمنا بتعريف المتغير x كمتغير عام من نوع Boolean ليكون اما true او false .. هذا معناه انك لو وضعت x = true في النموذج رقم 1 ففي النموذج رقم 10 ستكون قيمة x = true ايضاً .. هذا مايسمى بالمتغير العام .. كما يمكنك اضافة اي متغيرات عامة اخرى في نفس الوحدة النمطية السابقة يعني مثلاً اريد اضافة متغير y قيمته 1 نأتي الى الوحدة النمطية السابقة ونضع Const y = 1 وهكذا تحياتي
-
اخي الكريم يكفي ان تضع الامر Beep عندما لايتم العثور على المادة ضعه قبل رسالة msgbox التي تخبر المستخدم بعدم العثور على المادة تحياتي
-
اخي الكريم كاسر الامور لاتتم بهذا الشكل الذي تفضلت به ..ففي عالم البرمجة الامور تتم على نحو مغاير لما تقوله للآخرين .. دعنا نحلل المسألة بشكل بسيط في البداية يجب ان نعرف ان نموذج التسجيل وظيفته المحددة هي قراءة رقم التسجيل الذي يدخله المستخدم في مربع النص ويقارنها مع رقم الهارد مثلاً ومن ثم تخزين رقم التسجيل في الجدول ... هنا نلاحظ ان نموذج التسجيل لايقرأ القيمة التي يخزنها في الجدول لان وظيفته هي قراءة مايدخله المستخدم فقط ويقارنها بقيمة الهارد لكي يتم قراءة رقم التسجيل المخزن في الجدول في كل مرة يقوم المستخدم بفتح البرنامج فهنا نضع في حدث عند الفتح للنموذج الرئيسي كود فحص فإذا وجد ان القيمة المخزنة في الجدول صحيحة يقوم بفتح النموذج والا فسوف يظهر رسالة للمستخدم بعدم صحة البيانات ومن ثم يفتح له نموذج التسجيل طبعاً برمجياً نحن لاتحتاج الى التأكد من رقم التسجيل في كل مرة يتم فتح احدى تلك النماذج بل كل ماعليك فعله هو وضع متغير عام من نوع Boolean يعطيك true او false فقط مع استخدام عبارة if الشرطية كيف يتم ذلك؟ الجواب لنأتي الى بداية العملية .. عندما يقوم المستخدم بادخال رقم التسجيل الصحيح في نموذج التسجيل فسوف تظهر له رسالة بنجاح عملية التسجيل .. بعد تلك الرسالة نضع متغير عام (public) وليكن x = true اما عندما يكون رقم التسجيل خطأ فسوف تظهر له رسالة فشل التسجيل لان الرقم غير صحيح .. بعد تلك الرسالة نضع نفس المتغير السابق يساوي x = false في كلتا الحالتين سوف يتم تخزين رقم التسجيل الذي ادخله المستخدم في الجدول سواء كان صح ام خطأ لايهم لاننا سوف نتأكد من صحته عند فتح النموذج الرئيسي الآن نأتي على النموذج الرئيسي وضع في حدث عند الفتح كود التحقق من القيمة المخزنة في الجدول كالتالي x = false if Nz(Dlookup("[serial]", "tblsn"),0) = HardSerial() then x = true else: x = false if x = false msgbox "رقم تسجيل البرنامج غير صحيح" docmd.openform "reg" DoCmd.close acForm, Me.Name end if ومن ثم نأتي للنموذج الثاني وضع الكود التالي في حدث عند الفتح if x = false msgbox "رقم تسجيل البرنامج غير صحيح" docmd.openform "register" DoCmd.close acForm, Me.Name end if وكذلك لبقية النماذج نضع لها هذا الكود في حدث عند الفتح if x = false msgbox "رقم تسجيل البرنامج غير صحيح" docmd.openform "register" DoCmd.close acForm, Me.Name end if نلاحظ ان اعتمادنا على قيمة x التي لو كانت true فسوف يتم فتح النموذج بشكل طبيعي ولو كانت false فسوف يغلق النموذج ويفتح نموذج التسجيل قيمة x تخزن في الذاكرة عند فتح النموذج الرئيسي لان الكود في النموذج الرئيسي سوف يفحص رقم التسجيل المخزن في الجدول ويطابقه برقم الهارد فاذا وجدها قيمة مطابقة فسوف يخزن x = true والا فان x = false هذا كل مافي الامر .. اتمنى ان يكون شرحي واضح تحياتي
-
ماشاء الله على هذا الابداع .. ارجو متابعة التحديث على هذا البرنامج لكي يعمل تلقائياً مع اي نوع كاميرا بدون الحاجة الى تغيير شيء في الكود
-
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
^_^ -
جميل جداً بارك الله فيك استاذنا الفاضل ابو آدم نرجوا منك الاستمرار في اتحافنا بمثل هذه الأفكار الرائعة
-
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
طبعا باستخدام دالة Dlookup كما في المثال المرفق example2.zip -
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
تفضل example.zip -
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته استاذي الفاضل محمد سلامة انا اتفق معك على ان اصدار 2010 اقوى وافضل من 2007 لكني في الواقع اتعامل مع اجهزة جامعة كلها تعمل على اوفيس 2007 فلابد لي من التماشي معها في البرمجيات على العموم دعنا نجرب على اوفيس 2010 ارفق قاعدة ودع التجربة مفتوحة لكل الاخوة عسى ان يفيدنا احد في شيء اخي صالح الامثلة كثيرة بخصوص التشفير وانا سوف اعطيك لمحة عن كيفية عملها عندما تدرج بيانات من النموذج ولتكن مثلاً اسم المستخدم وكلمة السر فبامكانك تشفير كلمة السر كالتالي لنفرض ان مربع النص بالنموذج اسمه pswrd فعندما يتم كتابة الباسورد والضغط على زر حفظ فانك سوف تنفذ كود insert في الجدول كالتالي strSQL = ("INSERT INTO table1 ([pass] , [username]) VALUES('" & incode(Me.pswrd, "12345") & "', '" & Me.name & "')") CurrentDb.Execute strSQL, dbFailOnError Me.Requery لاحظ ان عبارة incode تم استخدامها قبل Me.pswrd اي انك تقول للكود شفر لي مربع النص الذي في النموذج والذي اسمه pswrd بمعيار تشفير وهو 12345 اي مفتاح التشفير الذي لايعلمه احد الا انت وعندما تريد الاستعلام عن القيمة المشفرة فانك سوف تستخدم العملية العكسية وهي فك التشفير decode(Me.pswrd,"12345") لو اراد شخص آخر فك التشفير بدون معرفة معيار التشفير الذي تم استعماله فلن يستطيع اظهار البيانات طبعا يجب اضافة الوحدة النمطية الخاصة بالتشفير الى القاعدة وهي: Option Explicit Option Compare Database Function incode(a As String, b As String) As String Dim r, i As Integer, s, u As String 1: u = "" s = ctrs(a, 3) If Len(s) Mod 2 = 1 Then s = s + Trim(str(Int(8 * Rnd(-Timer)))) i = 3 * Rnd(-Timer) + 1 For r = 1 To i u = Chr(100 * Rnd(-Timer) + 155) + u Next u = Trim(str(i)) + u u = u + s u = getcode(u, b) If decode(u, b) = a Then incode = u Else GoTo 1: End If End Function Function decode(a, b As String) As String On Error Resume Next Dim r, i As Integer, s, u As String u = getcode(a, b) i = Val(Mid(u, 1, 1)) + 1 u = Mid(u, i + 1, Len(u) - i) If Len(u) Mod 3 <> 0 Then u = Mid(u, 1, Len(u) - 1) s = "" For r = 1 To Len(u) - 2 Step 3 s = s + Chr(Val(Mid(u, r, 3))) Next decode = s End Function Function getcode(a, b As String) As String On Error Resume Next Dim L, r As Integer, c As Long, q As String c = 0 For r = 1 To Len(b) c = c + Asc(Mid(b, r, 1)) * (10 ^ r) Next q = str(c) c = 0 For r = 1 To Len(q) c = c + Val(Mid(q, r, 1)) Next q = "" For r = 1 To Len(a) L = 256 - Asc(Mid(a, r, 1)) - r - Len(a) If L + c > 255 Then q = q + Chr(L - c) Else q = q + Chr(L + c) End If Next getcode = q End Function Function ctrs(s As String, Y As Byte) As String Dim r, i As Integer, u, T As String u = "" For r = 1 To Len(s) T = Trim(str(Asc(Mid(s, r, 1)))) For i = 1 To Y - Len(T) T = "0" + T Next i u = u + T Next ctrs = u End Function تحياتي -
اخي الكريم بالنسبة للطلب الاول فقم بفتح الجدول في وضع التصميم ومن ثم ضع 00000000000000 في خاصية قناع الادخال لحقل الرقم القومي اما بالنسبة لطلبك الثاني فهو غير واضح يرجى اعطاء مثال على الرقم القومي لديك وماهي مكوناته
-
اذا لم تفلح مع كود الاستاذ ابو ياسين فجرب الكود التالي DoCmd.RunCommand acCmdDeleteRecord او ارفق مثالك للتعديل
-
كود الاخ ابو ياسين هو كود صحيح 100% لكن يا اخي سفيان لن تجد اكواد جاهزة التنفيذ على برنامجك دون الحاجة الى تكييفها لكي تلائم متطلباتك ففي الكود الاخ ابوياسين يجب عليك اضافة خانة id في الجدول وليس تطبيق الكود بشكل مباشر
-
جرب الكود التالي DoCmd.RunCommand acCmdDeleteRecord
-
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
استاذي الكبير محمد سلامة تحية طيبة لك .. كنت اعتقد نفس الذي اشرت اليه لكن تبين لي العكس بعد تجربة العديد من البرامج .. ارفق قاعدة محمية ودعنا نجرب .. ارجو ان تكون تعمل على اصدار 2007 او اقل تحياتي -
طريقة وضع كلمة المرور بعد تقسيم قاعدة البيانات
sandanet replied to ابوآمنة's topic in قسم الأكسيس Access
من بعد اذن استاذنا ابو خليل تفضل جرب المرفق التالي كل ماعليك فعله هو استيراد جميع النماذج والتقارير والاستعلامات والوحدات النمطية من برنامجك الى هذا البرنامج المرفق مع وضع النموذج الرئيسي باسم background بدل النموذج الموجود في البرنامج ملاحظة: قم باضافة باسورد على قاعدة الجداول بصورة طبيعية وعند الربط ضع الباسورد في الخانة المطلوبة بعد تحديد مسار قاعدة الجداول .. نصيحة: اعتقد انه من الافضل لك عدم استخدام باسورد للقاعدة لانه هنالك الكثير من البرامج التي تظهر باسورد القاعدة فلافائدة من استخدام الباسورد .. الطريقة الانسب لحماية البيانات هي عن طريق تشفير محتوى الجداول .. البيانات الحساسة والمهمة فقط تحياتي link_to_database.zip -
اخي ملفك يفتح بشكل طبيعي ليس به اي باسورد على الاطلاق لا الذي ذكرته 123 ولا غيره
-
بارك الله فيك .. ملف مهم جداً
-
اخي الكريم البرنامج في الرابط "حماية البرنامج عن طريق رقم الهارد والمعالج واللوحة الأم_في حال نقص احدى القطع فان البرنامج يستمر بالعمل.zip" يعمل بصورة سليمة فقط عليك بازالة المرجع ActiveX كما وضحته لك في الصورة اعلاه .. اذا لم يعمل معك فتأكد من عدم وجود كلمة missing في المراجع لديك.. او ارفق لنا صورة من رسالة الخطأ التي تظهر لك لكي يتم التعرف على نوع الخطأ تحياتي
-
حلو!! <== ماذا تقصد بها، هل حلت المشكلة لديك ام لا؟
-
اخي الكريم صالح بالنسبة للمشكلة فهي بسيطة جداً بإذن الله .. كل ماعليك هو حذف الاخيار Activex من المراجع كما في الصورة Tools وان شاء الله الامور تمام
-
اخي الكريم ضع الكود التالي تحت زر فتح التقرير المراد عرضه بالعرض DoCmd.OpenReport "YourReportName", acViewPreview With Application.Reports("YourReportName").Printer .Orientation = acPRORLandscape DoCmd.RunCommand acCmdZoom75 تحياتي