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

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته 

يوجد بالملف نموذج به اسم العملاء 

اريد اقوم بالضغط علي زر دفع بيتم التحويل الي شاشة الدفع 

اريد 

ان اقوم بتحديد عدد الشهور 

مثال 

احمد جه يدفع القسط مقدم خمس شهور 

اريد تحديد عدد الشهور مثلا 10

وبدء تاريخ الدفع مثلا ( 01/01/2015 ) 

اريد ان يتم الحاق البيانات كالاتي 

من 01/01/2015 - الي 01/02/2015

من 01/02/2015 - الي 01/03/2015

من 01/03/2015 - الي 01/04/2015

من 01/04/2015 - الي 01/05/2015

من 01/05/2015 - الي 01/06/2015

هل من الممكن ان يتم ادراج هذا البيان بنفس الشكل ولا هيكون صعب او ممكن لو يوجد بديل لذلك 
ولكم جزيل الشكر 
ملحوظة لو ينفع هيتم الاعتماد علي عدد الشهور يعني ممكن يدفع شهر واحد او اتنين علي حسب الدفع وعدد الشهور يتم الادراج 
وشكرا جزيلا 
 

db1.rar

قام بنشر (معدل)

تفضل  :smile:

 

ولكن رجاء انظر الى الكود ، ففيه الكثير  :smile:

 

1.

في النموذج client عندما تضغط على زر "دفع القسط" ، فالحدث لا يفتح النموذج  df فقط ، وانما يختار من قائمة Code_Client (ليس يدخل الاسم فقط) ، وذلك من خلال مقارنة رقم العميل ، بتلك الموجودة في القائمة المنسدلة ،

والكود الذي يعمل هذا هو:


    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "df"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    
     
    'Now select this name from the Listbox Code_Client of the Form df,
    'this is as if we select from the Code_Client listbox itself,
    'where we will get the Code_Client and Name_Client columns
    
    Dim ctl As Control

    Set ctl = Forms!df!Code_Client
    
    For i = 0 To ctl.ListCount - 1

     If Val(ctl.Column(0, i)) = Val(Me.Code_Client) Then

        ctl.Value = Val(ctl.Column(0, i))
        Exit Sub

     End If

    Next i

2.

في النموذج df ،

دائما نجعل التاريخ d1 يكون اول الشهر ، بغض النظر عن اي تاريخ تم اختيارة (وذلك تسهيلا للمستخدم ، بدل ان يفتش عن اول الشهر) ،

والكود التالي يعمل هذا:

    'make the date always the 1st of the month,
    'making it easier for the user to select anydate of the month, and the code corrects it
    Me.d1 = DateSerial(Year(Me.d1), Month(Me.d1), 1)

3.

عند الضغط على زر دفع ، تأتي الخطوات التاليه فيه:

أ- التأكد ان المستخدم اختار عدد الاشهر ، والذي يجب ان يكون اكبر من 0 ، وإلا سيتوقف عمل الحدث:

'if No month is selected, get out
    If Me.f = 0 Then Exit Sub

ب- يبحث في الجدول B_Pay ، في انه هل تم الدفع لهذا الزبون في الشهر d1 مسبقا ، فاذا تم الدفع ، واذا تم ، ستحصل على رسالة بذلك ، وسيتوقف عمل الحدث:

 
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Select * From B_Pay Where [Code_Client]=" & Me.Code_Client)
    
    rst.FindFirst "[data_eldfa1]=" & DateFormat(Me.d1)
    
    If rst.NoMatch = False Then
        MsgBox "you already used this date for this client"
        Exit Sub
    End If

 

  

ج- اما اذا كان كل شئ تمام ، فالكود التالي يدخل البيانات في الجدول B_Pay:

    For i = 0 To Me.f - 1
    
        rst.AddNew
            
            rst!Code_Client = Me.Code_Client
            rst!Code_Elshr = i + Month(Me.d1)
            'rst!Dfa=
            'rst!mogl=
            'rst!data_eldfa =
            rst!data_eldfa1 = DateAdd("m", i, Me.d1)
            rst!data_eldfa2 = DateAdd("m", i + 1, Me.d1)
            'rst!byen =
  
        rst.Update
    Next i
    
    MsgBox "Done"

جعفر

89.db1.mdb.zip

تم تعديل بواسطه jjafferr
  • Like 2

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information