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

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

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

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

تقبل الله صيامكم و جعله الله في ميزان حسناتكم

طرحت هذا الموضوع و لقد اجابني السيد فوكش و له جزيل الشكر 

لما بدات بالاستعمال ظهرت مشكلة وهي كالاتي

المشكلة 

 لما  افتح  صفحة المبيعات و لن اتم العملية و اغلقها و احاول الفتح من جديد الاحظ ان العداد يتقدم كما هوفي الصورة رقم 2

ارجوا من حضراتكم ان تجدوا لي حلا لجعل العداد يبقى مطابقا للعداد الذي في الاسفل

و شكرا على تعاونكم

 

 

 

2.png

E G P_test.zip

تم تعديل بواسطه حافظ التونسي
لاوضح المشكلة اكثر
قام بنشر
1 ساعه مضت, حافظ التونسي said:

و لما اغلقها و احاول الفتح من جديد الاحظ ان العداد يتقدم كما هوفي الصورة رقم 2

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

نوع الحقل BL n° في جدول BL هو AutoNumber . أي ترقيم تلقائي .

وهذا من الطبيعي يا صديقي لأنه عندما تدخل أي قيمة في أي حقل داخل الجدول ، فإن آكسيس يعتبره سجل جديد ويقوم بحجزه حتى عند حذفه أو إلغاء الإدخال والتراجع . يعني انت لو حذفت السجل رقم 2 من أصل السجلات الـ 6 التي لديك لتصبح 5 ، فإن السجل الجديد لن يكون رقمه 6 بل سيصبح 7 وهذا كله شأن الترقيم التلقائي .

لذا استخدم للترقيم حقل رقمي باستعمال DMAX مثلاً .

 

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

قام بنشر

شكرا على تفسيرك 

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

اما DMAX  هل من الممكن ان تشرح لي كيف و اين اضعها حتى يبقى الرقم مطابقا و لكم جزيل الشكر

 

قام بنشر
3 دقائق مضت, حافظ التونسي said:

اما DMAX  هل من الممكن ان تشرح لي كيف و اين اضعها حتى يبقى الرقم مطابقا و لكم جزيل الشكر

سؤالي الذي أريد منك إجابة مقنعة له حتى نصل إلى جوهر المشكلة لنجد لها حلاً ..

لماذا تشترط أن يكون الترقيم مرهوناً ومقروناً ومساوياً بعدد السجلات التي لديك ..

يعني لو حذفت السجل رقم 4 من أصل السجلات 1500 والتي هي فعلاً تطابق الترقيم ، فهل تريد أن يكون الترقيم للسجل الجديد = 1500 :blink:

أما لاستخدام الدالة DMAX مثلاً ، فعليك أولاً تغيير نوع الحقل من ترقيم تلقائي الى حقل رقمي ، ثم في مربع النص داخل النموذج تستعمل الجملة

= Nz(DMax("[BL n°]", "BL"), 0) + 1

في القيمة الإفتراضية لمربع النص داخل النموذج .

قام بنشر

ليس مهما ان يكون مطابقا و لكن هناك سببين اولهما ان اعلم ان العامل قد اخطء او ان هناك شي ما و السبب الثاني جمالي لا اكثر

لانني عندما اريد ان اطبع فسادخل رقن الصفحة و ليس الرقم الذي في اسفل الصفحة

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

  • Like 1
قام بنشر

السلام عليكم من جديد 

شكرا اخي ابو خليفة على مرورك و اجتهادك

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

3.png

قام بنشر

تفضل الصفحة كلها مع التعليقات بالانجليزية .:fff:

Option Compare Database

Option Explicit

Public Enum NavAction
    navFirst = 1
    navPrevious = 2
    navNext = 3
    navLast = 4
    navNew = 5
End Enum

'=============================
' Safe navigation with messages
'=============================
Public Sub NavigateRecord(frm As Form, action As NavAction)

    Dim rs As DAO.Recordset
    Set rs = frm.RecordsetClone
    If rs.RecordCount = 0 Then Exit Sub

    rs.MoveLast

    Select Case action

        Case navFirst
            If frm.CurrentRecord = 1 Then
                MsgBox "This is the first record", vbInformation
            Else
                DoCmd.GoToRecord , , acFirst
            End If

        Case navPrevious
            If frm.CurrentRecord = 1 Then
                MsgBox "This is the first record", vbInformation
            Else
                DoCmd.GoToRecord , , acPrevious
            End If

        Case navNext
            If frm.CurrentRecord >= rs.RecordCount Then
                MsgBox "This is the last record", vbInformation
            Else
                DoCmd.GoToRecord , , acNext
            End If

        Case navLast
            If frm.CurrentRecord >= rs.RecordCount Then
                MsgBox "This is the last record", vbInformation
            Else
                DoCmd.GoToRecord , , acLast
            End If

        Case navNew
            DoCmd.GoToRecord , , acNewRec

    End Select

    rs.Close
    Set rs = Nothing

    UpdateNavUI frm

End Sub

'=============================
' Update counter + buttons
'=============================
Public Sub UpdateNavUI(frm As Form)

    Dim rs As DAO.Recordset
    Set rs = frm.RecordsetClone

    If rs.RecordCount = 0 Then
        frm!TxtCount = "No records found"
        Exit Sub
    End If

    rs.MoveLast

    '===== Record counter =====
    If frm.NewRecord Then
        frm!TxtCount = "New record"
    Else
        frm!TxtCount = "Record " & frm.CurrentRecord & " of " & rs.RecordCount
    End If

    '===== Disable / Enable buttons =====
    frm!CmdFirst.Enabled = (frm.CurrentRecord > 1)
    frm!CmdPrevius.Enabled = (frm.CurrentRecord > 1)

    frm!CmdNext.Enabled = (frm.CurrentRecord < rs.RecordCount)
    frm!CmdLast.Enabled = (frm.CurrentRecord < rs.RecordCount)

    rs.Close
    Set rs = Nothing

End Sub

تفضل الصفحة كلها مع التعليقات بالفرنسية .:fff:

Option Compare Database

Option Explicit

Public Enum NavAction
    navFirst = 1
    navPrevious = 2
    navNext = 3
    navLast = 4
    navNew = 5
End Enum

'=============================
' Navigation sécurisée avec messages
'=============================
Public Sub NavigateRecord(frm As Form, action As NavAction)

    Dim rs As DAO.Recordset
    Set rs = frm.RecordsetClone
    If rs.RecordCount = 0 Then Exit Sub

    rs.MoveLast

    Select Case action

        Case navFirst
            If frm.CurrentRecord = 1 Then
                MsgBox "C'est le premier enregistrement", vbInformation
            Else
                DoCmd.GoToRecord , , acFirst
            End If

        Case navPrevious
            If frm.CurrentRecord = 1 Then
                MsgBox "C'est le premier enregistrement", vbInformation
            Else
                DoCmd.GoToRecord , , acPrevious
            End If

        Case navNext
            If frm.CurrentRecord >= rs.RecordCount Then
                MsgBox "C'est le dernier enregistrement", vbInformation
            Else
                DoCmd.GoToRecord , , acNext
            End If

        Case navLast
            If frm.CurrentRecord >= rs.RecordCount Then
                MsgBox "C'est le dernier enregistrement", vbInformation
            Else
                DoCmd.GoToRecord , , acLast
            End If

        Case navNew
            DoCmd.GoToRecord , , acNewRec

    End Select

    rs.Close
    Set rs = Nothing

    UpdateNavUI frm

End Sub

'=============================
' Mise à jour du compteur + boutons
'=============================
Public Sub UpdateNavUI(frm As Form)

    Dim rs As DAO.Recordset
    Set rs = frm.RecordsetClone

    If rs.RecordCount = 0 Then
        frm!TxtCount = "Aucun enregistrement"
        Exit Sub
    End If

    rs.MoveLast

    '===== Compteur d'enregistrements =====
    If frm.NewRecord Then
        frm!TxtCount = "Nouvel enregistrement"
    Else
        frm!TxtCount = "Enregistrement " & frm.CurrentRecord & " sur " & rs.RecordCount
    End If

    '===== Désactiver / Activer les boutons =====
    frm!CmdFirst.Enabled = (frm.CurrentRecord > 1)
    frm!CmdPrevius.Enabled = (frm.CurrentRecord > 1)

    frm!CmdNext.Enabled = (frm.CurrentRecord < rs.RecordCount)
    frm!CmdLast.Enabled = (frm.CurrentRecord < rs.RecordCount)

    rs.Close
    Set rs = Nothing

End Sub

 

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

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

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information