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

مشكلة the command or action 'GoToRecord' isn't available now Accde Database


إذهب إلى الإجابة الإجابة بواسطة jjafferr,

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

قام بنشر

السلام عليكم .. اخوانى الافاضل عندى مشكلة غريبة واتمنى سعة الصدر لطول الموضوع نسبيا , المشكلة كما العنوان تحدث فى قاعدة بيانات Accde فى نموذج مستمر Continuous Form مصدره كالتالى :

SELECT Bom.productcode, Bom.code, Bom.Item, Bom.cons, Bom.BomNumber, [Item Names].Type, Bom.Remarks FROM [Item Names] INNER JOIN Bom ON [Item Names].code = Bom.code WHERE (((Bom.productcode)=Forms!FrmNewPo!t0) And ((Bom.BomNumber)=Forms!FrmNewPo!Bom));  

المشكلة تحدث عند ضغط زر الامر بالكود التالى

Private Sub Command204_Click()
DoCmd.OpenForm "Robot"
DoCmd.GoToRecord , , acNewRec
Forms![Robot]![PONumber] = Me.T7
Forms![Robot]![productcode] = Me.t0
Forms![Robot]![OrderQty] = Me.T3
Forms![Robot]![zdate] = Me.T6
Forms![Robot]![Mold] = Me.Mold
Forms![Robot]![Machine] = Me.Machine
Forms![Robot]![Status] = Me.Status
Forms![Robot]![ProductBomNum] = Me.Bom
DoCmd.Close

Dim sql As DAO.Recordset
Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset)
DoCmd.SetWarnings False
DoCmd.GoToRecord , , acFirst    'بداية المشكلة من هذا السطر
For m = 1 To T8

With sql
.AddNew
!PONumber = T7
!MaterialCode = Code1
!MaterialName = T1
!ProductionDate = T6
!Shift = "none"
!cons = T2
!AdditionPercent = Text324
!MaterialType = Text300
!OrderQty = T3
.Update
End With
DoCmd.GoToRecord , , acNext

Next m
MsgBox "Done", vbInformation, "Saved successfully"
DoCmd.SetWarnings True
t0 = ""
T6 = ""
T7 = ""
T3 = ""
T10 = ""
T10 = ""
Status = ""
BomCombo = ""
Me.ComboMachine = ""
Me.ComboMold = ""
Mold = ""
Machine = ""
T216 = ""
Me.Requery

بالنسبة لأول جزء من الكود مهمته الحاق البيانات فى جدول ما والجملة Sql لالحاق جزء التفاصيل Detail من النموذج الى جدول اخر ,, عند حدوث المشكلة يتم الحاق جزء الهيدر "مهمة النموذج Robot" اما بالنسبة للتفاصيل فلا تضيف حتى السطر الاول منها وبالتالى شككت فى سطر فى الكود بجواره ملاحظه .. قلت اجرب طريقة تانية بدل جملة SQL وقمت بعمل استعلام الحاق مهمته نفس مهمة جملة Sql وكود كالتالى :


INSERT INTO TblPoMaterials ( PONumber, MaterialCode, MaterialName, Cons, MaterialType, ProductionDate, Shift, AdditionPercent, OrderQty )
SELECT [Forms]![FrmNewPo]![T7] AS Expr1, [Forms]![FrmNewPo]![Code1] AS Expr2, [Forms]![FrmNewPo]![T1] AS Expr3, [Forms]![FrmNewPo]![T2] AS Expr6, [Forms]![FrmNewPo]![Text300] AS Expr8, [Forms]![FrmNewPo]![T6] AS Expr4, "none" AS Expr5, [Forms]![FrmNewPo]![Text324] AS Expr7, [Forms]![FrmNewPo]![T3] AS Expr9;

فاصبح الكود خلف زر الامر بالشكل التالى :

Private Sub Command204_Click()
DoCmd.OpenForm "Robot"
DoCmd.GoToRecord , , acNewRec
Forms![Robot]![PONumber] = Me.T7
Forms![Robot]![productcode] = Me.t0
Forms![Robot]![OrderQty] = Me.T3
Forms![Robot]![zdate] = Me.T6
Forms![Robot]![Mold] = Me.Mold
Forms![Robot]![Machine] = Me.Machine
Forms![Robot]![Status] = Me.Status
Forms![Robot]![ProductBomNum] = Me.Bom
DoCmd.Close

DoCmd.SetWarnings False
DoCmd.GoToRecord , , acFirst
For m = 1 To T8
DoCmd.OpenQuery "QryAppendMat2"

DoCmd.GoToRecord , , acNext

Next m
MsgBox "Done", vbInformation, "Saved successfully"
DoCmd.SetWarnings True
t0 = ""
T6 = ""
T7 = ""
T3 = ""
'T5 = ""
T10 = ""
T10 = ""
Status = ""
BomCombo = ""
Me.ComboMachine = ""
Me.ComboMold = ""
Mold = ""
Machine = ""
T216 = ""
Me.Requery

ولكن استمرت المشكلة ومش عارف المشكلة من ايه بالتحديد وعندى مجموعة ملاحظات , المشكلة مش بتحصل فى القاعدة Accdb مع جداول مرتبطة او مدمجة فى القاعدة قبل فصلها ولكن بتحصل مع Accde فقط 

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

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

المشكلة ممكن تحصل مرة كل 5 محاولات وممكن تحصل 2 كل 5 محاولات وممكن متحصلش من الاساس , اعتذر مرة اخرى لطول الموضوع واتطلع للمناقشة مع الاساتذة .. دمتم بخير

قام بنشر

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

 

ولو اننا نحاول نضرب هدف في الظلام ، ولكن الله يسهل 🙂

جرب هذا التعديل في الكود الاصل:

Private Sub Command204_Click()
DoCmd.OpenForm "Robot"
DoCmd.GoToRecord , , acNewRec
Forms![Robot]![PONumber] = Me.T7
Forms![Robot]![ProductCode] = Me.t0
Forms![Robot]![OrderQty] = Me.T3
Forms![Robot]![zdate] = Me.T6
Forms![Robot]![Mold] = Me.Mold
Forms![Robot]![Machine] = Me.Machine
Forms![Robot]![Status] = Me.Status
Forms![Robot]![ProductBomNum] = Me.Bom
DoCmd.Close

Dim sql As DAO.Recordset
Dim Lsql As DAO.Recordset

Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset)
Set Lsql = Me.RecordsetClone

'DoCmd.SetWarnings False
'DoCmd.GoToRecord , , acFirst    'بداية المشكلة من هذا السطر
'For m = 1 To T8
    Do Until Lsql.EOF

        With sql
        .AddNew
            !PONumber = Lsql!PONumber
            !MaterialCode = Lsql!MaterialCode
            !MaterialName = Lsql!MaterialName
            !ProductionDate = Lsql!ProductionDate
            !Shift = "none"
            !cons = Lsql!cons
            !AdditionPercent = Lsql!Text324
            !MaterialType = Lsql!Text300
            !OrderQty = Lsql!OrderQty
        .Update
        End With
        
        Lsql.MoveNext
    Loop
    
'DoCmd.GoToRecord , , acNext
    sql.Close: Set sql = Nothing
    Lsql.Close: Set Lsql = Nothing
    
'Next m
MsgBox "Done", vbInformation, "Saved successfully"
'DoCmd.SetWarnings True
t0 = ""
T6 = ""
T7 = ""
T3 = ""
T10 = ""
T10 = ""
Status = ""
BomCombo = ""
Me.ComboMachine = ""
Me.ComboMold = ""
Mold = ""
Machine = ""
T216 = ""
Me.Requery

 

واذا حصلت على نسختين من السجل الاول ، فممكن حذف كل الاسطر قبل السطر Dim 🙂

 

جعفر

قام بنشر
  في 3‏/3‏/2021 at 17:00, jjafferr said:

ولو اننا نحاول نضرب هدف في الظلام ، ولكن الله يسهل 🙂

 

Expand  

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

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

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

Capture.PNG

Capture2.PNG

تم تعديل بواسطه Amr Ashraf
قام بنشر

جرب هاي ، اخذتهم من الاستعلام

Private Sub Command204_Click()
DoCmd.OpenForm "Robot"
DoCmd.GoToRecord , , acNewRec
Forms![Robot]![PONumber] = Me.T7
Forms![Robot]![ProductCode] = Me.t0
Forms![Robot]![OrderQty] = Me.T3
Forms![Robot]![zdate] = Me.T6
Forms![Robot]![Mold] = Me.Mold
Forms![Robot]![Machine] = Me.Machine
Forms![Robot]![Status] = Me.Status
Forms![Robot]![ProductBomNum] = Me.Bom
DoCmd.Close

Dim sql As DAO.Recordset
Dim Lsql As DAO.Recordset

Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset)
Set Lsql = Me.RecordsetClone

'DoCmd.SetWarnings False
'DoCmd.GoToRecord , , acFirst    'ÈÏÇíÉ ÇáãÔßáÉ ãä åÐÇ ÇáÓØÑ
'For m = 1 To T8
    Do Until Lsql.EOF

        With sql
        .AddNew
            !PONumber = Lsql!T7
            !MaterialCode = Lsql!Code1
            !MaterialName = Lsql!T1
            !ProductionDate = Lsql!T6
            !Shift = "none"
            !cons = Lsql!T2
            !AdditionPercent = Lsql!Text324
            !MaterialType = Lsql!Text300
            !OrderQty = Lsql!T3
        .Update
        End With
        
        Lsql.MoveNext
    Loop
    
'DoCmd.GoToRecord , , acNext
    sql.Close: Set sql = Nothing
    Lsql.Close: Set Lsql = Nothing
    
'Next m
MsgBox "Done", vbInformation, "Saved successfully"
'DoCmd.SetWarnings True
t0 = ""
T6 = ""
T7 = ""
T3 = ""
T10 = ""
T10 = ""
Status = ""
BomCombo = ""
Me.ComboMachine = ""
Me.ComboMold = ""
Mold = ""
Machine = ""
T216 = ""
Me.Requery

 

قام بنشر
  في 3‏/3‏/2021 at 17:29, jjafferr said:

جرب هاي ، اخذتهم من الاستعلام

 
Expand  

جربتها بالفعل حدث هذا الخطأ Capture3.PNG.997130098fc69f660fcecb3a0d3169e3.PNG

 

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


    Loop
    

 Lsql.MoveNext
    Loop

 

قام بنشر
  في 3‏/3‏/2021 at 17:33, Amr Ashraf said:

فحذفت Lsql

Expand  

لا يمكنك حذف هذا ، فهو الاساس !!

 

  في 3‏/3‏/2021 at 17:22, jjafferr said:

الاسماء اللي على يمين علامة = ، رجاء تأخذ اسمها الصحيح من النموذج المستمر

Expand  

مو اسم الحقل ، وانما اسم مصدر بيانات الحقل

  • Like 1
قام بنشر (معدل)
  في 3‏/3‏/2021 at 17:36, jjafferr said:

مو اسم الحقل ، وانما اسم مصدر بيانات الحقل

Expand  

الحقول UnBound واسماءها كما تفضلت بكتابتها ماذا تقصد بمصدر بيانات الحقل خلينا فى الانجليزى العربى عندى بيؤدى لالتباس احيانا 😄

الاسماء صحيحة كما تفضلت بكتابتها

1075399165_Capture5.PNG.0e29db6f900a591e520dcab1a6ae2f52.PNG

ولكن بتظهر الخطأ الاول

 Capture4.PNG.69068c44cc4be47a7e7f18aa98380503.PNG

تم تعديل بواسطه Amr Ashraf
قام بنشر
  في 3‏/3‏/2021 at 17:57, jjafferr said:

لا T1 مو صحيح ، وانما الصحيح هو item ، يعني جرب:

 
Expand  

رجعنا لنفس المشكلة الاولى 

Capture8.PNG.bd3d2b4b127db821886580e15859399a.PNG

Private Sub Command204_Click()

DoCmd.OpenForm "Robot"
DoCmd.GoToRecord , , acNewRec
Forms![Robot]![PONumber] = Me.T7
Forms![Robot]![productcode] = Me.t0
Forms![Robot]![OrderQty] = Me.T3
Forms![Robot]![zdate] = Me.T6
Forms![Robot]![Mold] = Me.Mold
Forms![Robot]![Machine] = Me.Machine
Forms![Robot]![Status] = Me.Status
Forms![Robot]![ProductBomNum] = Me.Bom
DoCmd.Close

Dim sql As DAO.Recordset
Dim Lsql As DAO.Recordset

Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset)
Set Lsql = Me.RecordsetClone

'DoCmd.SetWarnings False
'DoCmd.GoToRecord , , acFirst    'EIC?E C??O??E ?? ??C C????
'For m = 1 To T8
    Do Until Lsql.EOF

        With sql
        .AddNew
            !PONumber = Lsql!T7
            !MaterialCode = Lsql!code
            !MaterialName = Lsql!Item
            !ProductionDate = Lsql!T6
            !Shift = "none"
            !cons = Lsql!cons
            !AdditionPercent = Lsql!Remarks
            !MaterialType = Lsql!Type
            !OrderQty = Lsql!Nz(Nz([T2], 0) * Nz([T3], 0), 0)
        .Update
        End With
        
        Lsql.MoveNext
    Loop
    
'DoCmd.GoToRecord , , acNext
    sql.Close: Set sql = Nothing
    Lsql.Close: Set Lsql = Nothing
    
'Next m
MsgBox "Done", vbInformation, "Saved successfully"
'DoCmd.SetWarnings True
t0 = ""
T6 = ""
T7 = ""
T3 = ""
T10 = ""
T10 = ""
Status = ""
BomCombo = ""
Me.ComboMachine = ""
Me.ComboMold = ""
Mold = ""
Machine = ""
T216 = ""
Me.Requery
End Sub

 

قام بنشر

هل الحقل PONumber او T2 موجود في النموذج المستمر؟

واذا موجود ، هل قيمته تتغير ، اذا الجواب ان قيمته لا تتغير ، اكتب السطر هكذا :

!PONumber = me.T7

 

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

  • Like 1
قام بنشر
  في 3‏/3‏/2021 at 18:09, jjafferr said:

هل الحقل PONumber او T2 موجود في النموذج المستمر؟

 

Expand  

لا غير مذكور, موجود فقط فى الهيدر لأن النموذج المستمر مصدره مختلف ولا يذكر فيه رقم PoNumber 

  في 3‏/3‏/2021 at 18:08, biskra said:

سؤال فضولي

 

Expand  

خطأ منى ههههه وعشان مش بيسبب اخطاء مخدتش بالى منها

  في 3‏/3‏/2021 at 18:09, jjafferr said:

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

Expand  

الحقل اعلاه هوا الحقل الاساسى اللى بيتربط عليه كل شئ لن يقبل الجدول اى شئ بدونه ههههه 

Capture9.PNG.0f31416eaedb40698d5dd5133359113f.PNG

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

استاذى الفاضل @jjafferr تفضل القاعدة الاساسية محذوف منها غير الضرورى .. راجع رسائلك الخاصة فضلاً

 

تم تعديل بواسطه jjafferr
تم حذف المرفق بعد انزاله ، حسب طلب صاحب الموضوع
  • تمت الإجابة
قام بنشر

تفضل يا سيدي 🙂

        With sql
        .AddNew
            !PONumber = Me.T7
            !MaterialCode = Lsql!code
            !MaterialName = Lsql!Item
            !ProductionDate = Me.T6
            !Shift = "none"
            !cons = Lsql!cons
            !AdditionPercent = Lsql!Remarks
            !MaterialType = Lsql!Type
            !OrderQty = Nz(Lsql!cons, 0) * Nz(Me.T3, 0)
        .Update
        End With

 

جعفر

  • Thanks 1
قام بنشر
  في 3‏/3‏/2021 at 19:21, jjafferr said:

تفضل يا سيدي 🙂

 
Expand  

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

قام بنشر

هذا ليس جوابا على سؤالك:

فكرة docmd.gotoRecord movenext ثقيلة على البرنامج ، ورجاء تجرب التالي:

اعمل نموذج مستمر لجدول فيه 100 او 1000 سجل ،

ثم استعمل حلقة For Next وادخل فيها docmd.gotoRecord movenext ، 

ستجد ان الاكسس توقف عن العمل (طبعا هو شغال ، بس يبين انه مشغول جدا) ، ولا تحصل على رسالى Not Responding اعلى البرنامج !!

ومثل ما يقول المثل العماني : الباب اللي يجيك منه ريح ، سدّه واستريح 🙂

 

جعفر

  • Thanks 1
قام بنشر
  في 3‏/3‏/2021 at 20:37, jjafferr said:

فكرة docmd.gotoRecord movenext ثقيلة على البرنامج ، ورجاء تجرب التالي:

 

Expand  

حقيقة ومجربة بالفعل بس لم اكن اعرف لها بديل .. جزاك الله خير .. بالنسبة للبرنامج بعد التجربة لأكثر من مرة وجدت ان اول مرة فقط اللى بيعمل الحاق لجدول TblPoMaterials المسئولة عنه جملة الSQL يعنى حضرتك جرب اعمل 5 اوامر شغل ورا بعض بدون غلق النموذج وستجد المشكلة .. فضلاً الق نظرة على المرفق @jjafferr

New Code JJ.accdbFetching info...

قام بنشر

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

اخبرك المشكلة ، والحل:

لما تفتح النموذج ، وتشغل الكود ، احنا قلنا للكود:

1. اقرأ البيانات الى نهايتها (EOF (End of File ، 

2. بعد ان يقرأ السجل ، ينتقل الى السجل التالي MoveNext ، الى ان يصل الى نهاية البيانات (السجل الاخير) ،

ويتم الحاق البيانات ،

الآ لما ننقر على زر الحفظ مرة اخرى :

1. يريد ان يقرأ البيانات الى نهايتها ، ولكنه اصلا وصل الى نهايتها من المرة السابقة ، فيتخطى عملية الحفظ ، ولا يحفظ شيء !!

 

اذن ، يجب ان (نضيف هذا السطر) ونخبر الكود:

3. بأن قبل البدأ في عملية الالحاق ، اذهب الى بداية البيانات (السجلات) ، ثم قم بتطبيق الكود 🙂
 

image.png.fb5a28778e4e9d0bb46ed4d9639e59da.png

.

جعفر

  • Thanks 1

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