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

.Azhar

03 عضو مميز
  • Posts

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

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

  • Days Won

    1

مشاركات المكتوبه بواسطه .Azhar

  1. وهذا هو فعلا ما موجود انظر الى الكود وانظر الى التأشيرات الحمراء 

    Private Sub cmdLogin_Click()
    'التحقق من اسم المستخدم
    If IsNull(Me.cboDept) Then
    MsgBox "يجب ادخال اسم المستخدم", vbCritical
    Me.cboDept.SetFocus
    Else
    'التحقق من كلمة المرور
    If Me.txtPassword.Value = DLookup("pwPW", "faqPW", "[pwPKID]=" & Me.cboDept.Value) Then
    lngPKID = DLookup("pwPKID", "faqPW", "[pwPKID]=" & Me.cboDept.Value)
    DoCmd.OpenForm "هنا نضع اسم الفورم الذي نريد ان يفتح "
    Me.Visible = False
    Else
    MsgBox "كلمة المرور غير صحيحة", vbOKOnly, "الادخال غير صحيح"
    Me.txtPassword = Null
    Me.txtPassword.SetFocus
    End If
    End If
    
    'اذا قام المستخدم بادخال كلمة مرور غير صحيحة 3 مرات سوف يغلق البرنامج
    intLogonAttempts = intLogonAttempts + 1
    If intLogonAttempts > 3 Then
    MsgBox "ليس لديك حق الوصول الى البرنامج راجع مدير المشروع", vbCritical, "Restricted Access!"
    Application.Quit
    End If
    
    End Sub
     

    في السطر الاحمر الاول تضع اسم الفورم الخاص بالبيانات بدل السطر الاحمر الاول .

    اما في حالة عدم الاغلاق تستطيع زيادة عدد المحاولات او ايقاف اخر اربعة سطور من الكود باستثناء السطرين الاخيرين 

    اما اذا لا تريد ذلك وتريد غلق الفورم فقط وليس غلق البرنامج كله تستخدم بدل Quit  ـــــــــ> Close 

  2. تفضل هذا التعديل لكن ليس على التقرير انا عملته لك على الاستعلام يمكنك ان تصنع تقرير بناءً على الاستعلامات Qyr1 و Qyr2 

    انا استخدمت الدالة Case وازرار اختيار 

    عند اختيار شخصي والنقر على معاينة التقرير 

    هذا هو الكود الخاص بالاوامر . 

    Private Sub Command25_Click()
    On Error GoTo Err_Command25_Click
    Dim stDocName As String
    Dim c As Integer
    Dim f As String
    c = Me.Frame15.Value
    Select Case c
    Case 1
    f = "Qyr1"
    Case 2
    f = "QYR2"
    Case 3
    End Select
        DoCmd.OpenQuery f, acViewNormal
    Exit_Command25_Click:
        Exit Sub
    Err_Command25_Click:
        MsgBox "يتوجب عليك اختيار نوع الكفالة", , "AZHAR ALiraqee"
        Resume Exit_Command25_Click
    End Sub
    

    27-9 final.rar

  3. يمكنك استخدام هذا الكود في لغة SQL وهو يظهر لك عدد ايام الاجازة باستثناء اليوم الاول وحساب اليوم الاخير

    SELECT Table.employeeID, Table.Nam, DateDiff("d",[Table].startDate,[Table].endDate) AS TotalSick
    FROM [Table];
    
    

    حيث على افتراض اسم جدولك هو Table وكذلك حقول بداية التاريخ هو startDate  ونهاية التاريخ endDate واسم الموظف هو Nam والمفتاح الاساسي للجدول employeeID .

  4. الامر الثالث والاخير والمهم هو الكود 

    نذهب الى الزر الذي وضعناه على الفورم والذي اسميناه cmdLogin ونذهب لخصائصه ومن الخصائص نختار حدث عند النقر .

    ونقوم بنسخ الكود التالي ولصقه فيه 

    Private Sub cmdLogin_Click()
         'التحقق من اسم المستخدم
    If IsNull(Me.cboDept) Then
       MsgBox "يجب ادخال اسم المستخدم", vbCritical
       Me.cboDept.SetFocus
    Else
       'التحقق من كلمة المرور
       If Me.txtPassword.Value = DLookup("pwPW", "faqPW", "[pwPKID]=" & Me.cboDept.Value) Then
           lngPKID = DLookup("pwPKID", "faqPW", "[pwPKID]=" & Me.cboDept.Value)
           DoCmd.OpenForm "هنا نضع اسم الفورم الذي نريد ان يفتح "
           Me.Visible = False
       Else
           MsgBox "كلمة المرور غير صحيحة", vbOKOnly, "الادخال غير صحيح"
           Me.txtPassword = Null
           Me.txtPassword.SetFocus
       End If
    End If
    
            'اذا قام المستخدم بادخال كلمة مرور غير صحيحة 3 مرات سوف يغلق البرنامج
        intLogonAttempts = intLogonAttempts + 1
        If intLogonAttempts > 3 Then
            MsgBox "ليس لديك حق الوصول الى البرنامج راجع مدير المشروع", vbCritical, "Restricted Access!"
            Application.Quit
        End If
    
    
    End Sub
    
    

    وايضا نذهب لخصائص الفورم او النموذج ونختار من خصائصه حدث عند التحميل ونضع هذا الكود , فائدة هذا الكود هو عند فتح البرنامج في كل مره لا تبقى كلمات السر محفوظه في الفورم وكذلك ايضا يتم الانتقال مباشرة عند الفتح مؤشر الماوس الى الكومبو بوكس 

    Private Sub Form_Load()
        Me.cboDept.SetFocus
        Me.cboDept = Null
        Me.txtPassword = Null
    End Sub
    
    
  5. الان بعد اكمال الجدول نذهب لعمل فورم 

    نفتح نموذج جديد بالتصميم 

    نضع على الفورم كومبو بوكس ونسميه cboDept

    ونصع مربع نص ونسميه txtPassword

    ونضع زر ونسمية cmdLogin

    نذهب الان الى خصائص الكومبو بوكس ومن Row Source بالعربي مصدر الصف ونضغط على الزر الصغير يظهر لنا نافذة الاستعلام نختار الجدول ومن الجدول نختار الحقول  pwPKID و pwDEPT بعدها نقوم 

    بالحفظ 

    فيصبح النموذج او الفورم بهذه الصور 

    post-80948-0-14945500-1412029217_thumb.p

  6. كل عام وانتم بالف خير عيد سعيد عليكم وانشاء الله تحقيق امنياتكم وجعل الله ايامكم مسرة وفرح . 

    اخواني اخواتي الاعزاء اليوم سوف اشرح لكم وبالتفصيل والصور كيف نعمل فورم خاص بالباسوورد .

    المتطلبات 

    جدول 

    فورم

    كود VBA 

    1. الجدول : نقوم بانشاء جدول يحتوي على الحقول التالية :-

    الحقل الاول : pwPKID  /الخصائص ترقيم تلقائي / مفتاح اساسي 

    الحقل الثاني : pwDEPT / الخصائص نص

    الحقل الثالث : pwPW / الخصائص نص

    الحقل الرابع: pwOWN/ الخصائص نص

    نحفظ الجدول باسم : faqPW

    الصورة النهائية للجدول تصبح بهذا الشكل . 

    post-80948-0-06837500-1412028545_thumb.p

    • Like 1
  7. نعم انا شاهدت برنامجك وبتمعن وشي جميل من ناحية الواجهات لكن للاسف بناء الجداول خطأ .

    اهم شيء في اي قاعدة بيانات هي الجداول لان اذا كانت بنيت الجداول غير جيدة او غير مدروسه سوف ينهار البرنامج .

    يجب على كل شخص يعمل في مجال البرمجة وكان مستواه متوسط او مبتدأ , قبل ان يعمل اي شي النماذج او التقارير ان يستشير الاخرين في المنتدى الرائع هذا عن ماذا يحتاج من جداول وماهي المفاتيح الاساسية والمفاتيح الخارجية .

    ليناقش موضوع جداوله قبل ان يصرف الكثير من الوقت على مشروعه في التقارير والنماذج وغيرها . ومن ثم يعرضه هنا في المنتدى ويتفاجأ بكلمة من المحترفين مثل الاستاذ ابو خليل او الاستاذ علي  واذ يقول له احدهم بناء جداولك غير سليم .. وهنا يرجعه للمربع الاول .

    على فكره المربع الاول هي لعبه وليست حكمة . لاعب الشطرنج يتقدم بجنوده وفيلته من المربعات الاولى بسرعه ليقتل شاه الخصم لكن يتفاجأ بان خطته قد فشلت وان ملكه مهدد من قبل خصمه فيعيد جنوده للمربعات الاولى ليغير الخطة . فكلمة المربع الاول اتت من لعبة الشطرنج .

    فحاولوا التفكير حتى لا تعودوا للمربعات الاولى ويشكلوا الاستاذ ابو خليل والاستاذ علي خطر عليكم ..... هههههه .

    اتمنى لك النجاح . وسوف اقوم بالنظر لجداولك  .

  8. تفضل هذا مثال 2003 يمكنك تغيير كلمات المرور في البداية من الجدول tblUser

    باضافة ارقام في الحقل الذي هو على شكل نجوم ومن خلاله تستطيع اغلاق وفتح قاعدة البيانات ولاحظ الصلاحيات

    صلاحيات المستخدمين.rar

  9. اهلا بك اخي العزيز

    هنالك عدة ملاحظات وانا اعدك سوف اقوم بتعديل الجداول لك .

    الملاحظات

    1. لا تحتاج الى جدول الجنس

    2. لا تحتاج الى جدول الحالة الاجتماعية .

    3. جدول صلة القرابه خطأ .

    4 . لا تحتاج الى جدول نوع العقار .

    5 .تحتاج الى جدول افراد العائلة .

    • Like 1
  10. تضع هذا الكود في زر حدث عند النقر / التالي Next

     With Me.Recordset
          If .AbsolutePosition < .RecordCount - 1 Then
             .MoveNext
          End If
    End With
    
    

    وتضع هذا الكود في حدث عند النقر /  السابق Previous

     With Me.Recordset
          If .AbsolutePosition <> 0 Then
             .MovePrevious
          End If
       End With
    
    

    واعطيني النتائج

  11. اذا لم يعمل عندك الكود استبدل السطر هذا

    If CountOfTodaysEntries >= 50 Then
    

    بهذا السطر بمعنى استخدم دالة IIf والغاء علامة = والابقاء على علامة الاكبر من فيصبح بهذا الشكل .

    IIf CountOfTodaysEntries > 50 Then
    

    انا لم اجرب هذا على مثال حاول انت ان تجربه واعطني النتائج .

    اتمنى لك النجاح .

  12. على ما اعتقد تحتاج شي من هذا القبيل ويجب ان يكون الادخال من الفورم وليس مباشرة من الجدول .

    الالوان باللون الاخضر هي اسم جدولك واسم حقل تاريخ اليوم ويجب ان يكون ذاتياً ورقم ID معرف السجل لديك .

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    
      Dim CountOfTodaysEntries As Integer
      CountOfTodaysEntries = DCount("YourFieldID", "YourTable", "YourDateField = Date() AND YourUserID = " & Me.UserID)
      If CountOfTodaysEntries >= 50 Then
        MsgBox "الادخالات اليومية بلغت حدها الاقصى "
        Cancel = True
      End If
    
    End Sub
    
×
×
  • اضف...

Important Information