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

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


qathi
إذهب إلى أفضل إجابة Solved by jjafferr,

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

تفضل هذه المحاولة ارجو ان تكون طلبك

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

بالاضافة الى ان رقم الفاتورة الظاهر هو رقم وهمي اي للعرض فقط لان قاعدة بياناتك مصممة بطريقة لايتم الحفظ الا بعد اختيار رقم الزبزن

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

وعذرا للاطالة 

InvoiceSale_Root.rar

  • Thanks 1
رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم 🙂

 

اعتقد بأني توصلت لحل ، وبعد عدة محاولات على الشبكة ، على كمبيوترين 🙂

 

1. النموذج ، تم حذف الجدول CustomersT من استعلام النموذج :

image.png.773b979b3d61a98d9534a6fb3f544e24.png

.

2. الكومبوبوكس يقوم بإعطاء قيمة اسم الزبون CustomerName ،

3. تم حذف امر حفظ السجلات من الوحدة النمطية ، لأنها لم تكن على سجل النموذج ، فإنها لا تحفظ السجل المطلوب ،

4. تم استعمال هذا الكود لحفظ الترقيم :

Private Sub New_Invoice()
On Error GoTo err_New_Invoice

Try_Again:

    If Me.NewRecord Then
        Me.InvoiceNum = Next_Seq("A")
        DoCmd.RunCommand acCmdSaveRecord
    End If
    
Exit_New_Invoice:

Exit Sub
err_New_Invoice:

    If Err.Number = 3022 Then
    
        Dim PauseTime, Start
        PauseTime = 0.5   ' Set duration.
        Start = Timer    ' Set start time.
        Do While Timer < Start + PauseTime
            DoEvents    ' Yield to other processes.
        Loop
        Resume Try_Again
        
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    Resume Exit_New_Invoice
    
End Sub

.

ولما البرنامج يلاحظ وجود تكرار في الرقم ، فإنه يذهب الى رقم الخطأ (3022 كما ذكره اخونا حسام) ، وهنا ينتظر 0.5 (نصف ثانية ، ويمكنك تقليلها ، وبالتجربة ستعرف الرقم الاصح ، والافضل ان تتركه كما هو) ، ثم يعاود المحاوله في الحصول على ترقيم جديد غير مكرر (وهذا الكود وضعته في حدثين) ، وتم تجربته عدة مرات واثبت جدارته 🙂

 

البرنامج بعده طازه وطالع من الشبكة ، فلازم تعمل له ربط للجداول قبل تشغيله ، فهو بدون جداول 🙂

 

جعفر

 

1282.1.InvoiceSale_6_FE.accdb.zip

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

التجربة اللي عملتها هي:

 

ضبطت برنامج واحد واستخدمت 0.25 ثانيه للإنتظار ، ثم عملت منه 4 نسخ j1 و j2 و j3 و j4 ، ونضعهم مع البرنامج الاصل 1282.1.InvoiceSale_6_FE.accdb في نفس المجلد:

image.png.8438b3d406084e082acf2df71dfddf4a.png

.

عملت دالتين في هذه الوحدة النمطية في البرنامج الاصل 1282.1.InvoiceSale_6_FE.accdb ، وجعلت اسماء المتغيرات في رأس الوحدة النمطية ، حتى تكون متوفرة للبرنامج كاملا ، حتى اغلاقه :

Option Compare Database
Option Explicit

    Dim oAccess1 As Access.Application
    Dim oAccess2 As Access.Application
    Dim oAccess3 As Access.Application
    Dim oAccess4 As Access.Application
    Dim db1 As String: Dim db2 As String
    Dim db3 As String: Dim db4 As String
'

Public Function Open_Other_DBs()

    db1 = Application.CurrentProject.Path & "\j1.accdb"
    db2 = Application.CurrentProject.Path & "\j1.accdb"
    db3 = Application.CurrentProject.Path & "\j3.accdb"
    db4 = Application.CurrentProject.Path & "\j4.accdb"

'    Dim oAccess               As Object

    Set oAccess1 = CreateObject("Access.Application")    'Create a new Access instance
    With oAccess1
        .OpenCurrentDatabase db1    'Open the specified db
        .Visible = True             'Ensure it is visible to the end-user
        .UserControl = True
        .DoCmd.OpenForm "InvoiceHT_F"    'Open a form?
    End With
    
    Set oAccess2 = CreateObject("Access.Application")    'Create a new Access instance
    With oAccess2
        .OpenCurrentDatabase db1    'Open the specified db
        .Visible = True             'Ensure it is visible to the end-user
        .UserControl = True
        .DoCmd.OpenForm "InvoiceHT_F"    'Open a form?
    End With
    
    Set oAccess3 = CreateObject("Access.Application")    'Create a new Access instance
    With oAccess3
        .OpenCurrentDatabase db1    'Open the specified db
        .Visible = True             'Ensure it is visible to the end-user
        .UserControl = True
        .DoCmd.OpenForm "InvoiceHT_F"    'Open a form?
    End With
    
    Set oAccess4 = CreateObject("Access.Application")    'Create a new Access instance
    With oAccess4
        .OpenCurrentDatabase db1    'Open the specified db
        .Visible = True             'Ensure it is visible to the end-user
        .UserControl = True
        .DoCmd.OpenForm "InvoiceHT_F"    'Open a form?
    End With
    
End Function

Public Function Click_Other_DBs()

    oAccess1.Forms![InvoiceHT_F].New_Click
    oAccess2.Forms![InvoiceHT_F].New_Click
    oAccess3.Forms![InvoiceHT_F].New_Click
    oAccess4.Forms![InvoiceHT_F].New_Click
    
End Function

.

وناديتهم كالتالي:

image.png.50d1f617d929b10016efea128d812b36.png

.

الدالة Open_Other_DBs مرة واحدة تفتح البرامج الاربعة ، هكذا :

.

image.png.03febc401a41ee21ad67a2e13588b630.png

.

وبما ان المتغيرات موجودة في رأس الوحدة النمطية ، فيمكننا التحكم بالبرامج الاربعة مفتوحة ، يعني عندنا 4 مستخدمين ،

الآن نستخدم الدالة Click_Other_DBs ، والتي تنقر على زر "جديد" للبرامج الاربعه في نفس الجزء من الثانية ، يعني المستخدمين الاربعة يدخلون سجل جديد في نفس الجزء من الثانية ، يعني مافي مزاح في الموضوع 😁

ولما اشوف الايقونه ترمش ، اعطي الامر مرة اخرى للدالة Click_Other_DBs ، وهكذا ، والحمدلله النتائج صحيحة 🙂

 

واكون فاتح الجداول ، واشوف ان الارقام الحمدلله مافيها تكرار ، ولا تعطي البرامج الاربعة اي خطأ عن وجود تكرار 🙂

 

جعفر

1281.1.zip

  • Thanks 1
  • Haha 1
رابط هذا التعليق
شارك

السلام عليكم :biggrin: ما أروعك من أساتذة متفانين لا تكلو ولا تملو ... حفظكم الله .. جزاكم الله عنا خيرا ..

أكاد اطير من الفرحة بهذه الردود .. :jump: قبل حتى تجربتها .. فضلت الرد قبل التجربة

سأقوم بتجربة الملفات  .. وبعدها اوافيكم بالنتائج

تم تعديل بواسطه qathi
رابط هذا التعليق
شارك

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

لقد قمت بتصميم برنامج لمحل تجاري يستخدم 3 أجهزة كمبيوتر في نفس الوقت

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

فإهتديت لهذا الحل بأقل أكواد و بدون رسائل أخطاء.

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

طريقة الترقيم:

في خانة القيمة الإفتراضية للحقل بالنموذج نضع كود لجلب أكبر رقم الدالة dmax و نربط معها رقم الجهاز

Dmax("id_facture";"tbl_facture") & "." & Dlookup("id_pc";"tbl_pc")

id_pc هو رقم الكمبيوتر 

بهذه الطريقة تصبح الأرقام المنتجة هكذا   1001.1 و 1001.2

يعني لن يحدث أي إعتراض حتى و لو تم إضافة سجل جديد في نفس اللحظة

أو تستطيع تغيير الجزء الأول بالدالة التي وضعتها لإنتاج رقم الفاتورة و تحتفظ بالجزء الثاني

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

  • 2 weeks later...

أولا قبل كل شيء أعتذر عن تاخر ردي لأنشغالي .. وكذلك تطلب مني  التاكد من فاعلية كل الطرق والحلول والاكواد 

 

أشكر أساتذتي الغالين @jjafferr و @صالح حمادي و @husamwahab  على تعاونكم الكبير معي فجزاكم الله عني وعن الاسلام خيرا

 

في ١٥‏/١١‏/٢٠٢٠ at 23:11, husamwahab said:

تفضل هذه المحاولة ارجو ان تكون طلبك

 أخي @husamwahab أشكرك على كل مابذلته .. فحلولك رائعة .. واستفدت منها .. شكرا لك

 

في ١٨‏/١١‏/٢٠٢٠ at 11:13, صالح حمادي said:

طريقة الترقيم:

في خانة القيمة الإفتراضية للحقل بالنموذج نضع كود لجلب أكبر رقم الدالة dmax و نربط معها رقم الجهاز



Dmax("id_facture";"tbl_facture") & "." & Dlookup("id_pc";"tbl_pc")

id_pc هو رقم الكمبيوتر 

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

لكن لا يمنع من استخدامها في امور اخرى أن شاء الله .. لك كل الشكر والتقدير استاذي

 

 

أستاذي الكبير والغالي  @jjafferr حرت في كلماتي ماذا عساي أن أقول لك .. تارتاً أقول في نفسي أنك (( المنقذ )) وتارتاً (( معجزة المحترفين ))

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

 

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

وكذلك هذه الدعوات بالمثل للجميع

 

فجزاكم الله جميع عنا خيرا

 

 

تم تعديل بواسطه qathi
  • Like 3
رابط هذا التعليق
شارك

59 دقائق مضت, qathi said:

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

بسم الله ما شاء الله .. الله اكبر

فعلا اضم صوتى لاخى الحبيب 

ولذلك قبل ايام قليلة قلت فى استاذى الجليل تلك الكلمات والتى احسها على لسان حال كل صاحب حاجة وجد ضالته بفضل الله تعالى ثم بفضل استاذى الجليل 

اقتباس

 

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

1886450457_MR.JAFER.jpg.132dafe5cc3fe04f9e4fdf1277bf6c3e.jpg

 

 

تم تعديل بواسطه ابا جودى
  • Like 3
رابط هذا التعليق
شارك

2 دقائق مضت, jjafferr said:

اخجلتونا يا جماعة 🙂

خلاص ، وبهذه المناسبة ، العشاء على حسابي الليلة ، والجميع مدعو 🙂

 

جعفر

  • طالما هناك عشاء لا تقلق 😋 لن نتأخر عنكم ابدا أستاذى دائما نحن فى الخدمة :jump:
  • Like 3
رابط هذا التعليق
شارك

أستاذي الكبير  @jjafferr  الان  موافقين  🏂 وين المكان ؟؟؟

أخي الغالي @ابا جودى .. وييييييينك أخي أشتقت ألك أخي 

قلقت عليك .. ما سبب أنقطاعك المفاجء ؟؟؟ 

  • Like 2
  • Haha 1
رابط هذا التعليق
شارك

5 دقائق مضت, qathi said:

أستاذي الكبير  @jjafferr  الان  موافقين  🏂 وين المكان ؟؟؟

أخي الغالي @ابا جودى .. وييييييينك أخي أشتقت ألك أخي 

قلقت عليك .. ما سبب أنقطاعك المفاجء ؟؟؟ 

انت لا 

يا الاكل يا الحل 😡

سيبك من الانقطاع دلوقتى لكل مقام مقال

وانت اخدت الحل اترك لنا الاكل 

 

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

4 دقائق مضت, ابا جودى said:

انت لا 

يا الاكل يا الحل 😡

وانت اخدت الحل اترك لنا الاكل 

أكيد الحل ... بالرغم كنت اتلهف لمعرفة أنوع الاكلات العمانية الجميلة

خلاص .. لك ماتشتي من أستاذنا الغالي الكبير

 

  • Haha 1
رابط هذا التعليق
شارك

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

82652-%D8%B7%D8%B1%D9%8A%D9%82%D8%A9-%D8%B9%D9%85%D9%84-%D8%A7%D9%84%D9%81%D8%AE%D8%AF%D8%A9-%D8%A7%D9%84%D8%B6%D8%A7%D9%86%D9%89-..jpg

تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

مرحبا

لم أقرأ كل الردود فقد يكون هناك حلا نموذجيا لم أنتبه له ، فالمعذرة.
هذا حل أستخدمه دائما وهو حل ناجح 100%
 

  Public Const Duplicate = 3022
  
  With rst
      Do
        Err.Clear
         .AddNew
          !ID = Nz(DMax("ID", "MyTable"), 0) + 1
          !Date = Date
        .Update
      Loop Until Err.Number <> Duplicate
  End With

 

  • Like 2
رابط هذا التعليق
شارك

42 دقائق مضت, Hawiii said:

هذا حل أستخدمه دائما وهو حل ناجح 100%

حياالله الهاوي 🙂

 

هو نفس الحل في مشاركتي اعلاه (تجنب رقم الخطأ ، الى ان يتم الحفظ) :

 

ولكن بطريقة مختلفه 🙂

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

17 ساعات مضت, Hawiii said:

لم أقرأ كل الردود فقد يكون هناك حلا نموذجيا لم أنتبه له ، فالمعذرة.
هذا حل أستخدمه دائما وهو حل ناجح 100%

شكراً أخي  @Hawiii على ردك ومشاركتنا مامعك  .. 

رابط هذا التعليق
شارك

استاذى الجليل ومعلمى القدير و والدى الحبيب الأستاذ @jjafferr :fff: السلام عليكم ورحمة الله وبركاته

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

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

المفروض يحدث الاتى

1- ترقيم يخص الصادر واخر يخص الوارد كل منهما منفصل يبدأ من الرقم 1 ويبدأ مع بداية العام الجديد مرة أخرى من 1

2- فى المرفق انا ظبط على اعتبار اننا نريد الصادر

3- شكل الترقيم  ( نوع الخطاب  مسلسل الخطاب/ العام الحالى )   مثلا    سوف يكون >>----->  صادر 1/2020

صادر   ثم   1   ثم   /   ثم   2020

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

 العمل محصور فى الجدول tblBook    و النموذج frmBook

 

test.zip

رابط هذا التعليق
شارك

يرجى فك الضغط فى القطاع D

تم صبط كود الترقيم كالية

ولكن لا اعلم سبب التكرار على الشبكة

test.zip

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

  • 2 years later...
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information