اذهب الي المحتوي
أوفيسنا

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

قام بنشر

السلام عليكم

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

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

لأنني أريد ذلك لغرض آخر وإنما هذا المثال ليكون قريب بين أيديكم

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

أي أريد الطباعة دون حفظ القيمة المحسوبة

وأتمنى أن تكون الفكرة وصلت إليكم سائغة

وهذا مثال عملي لتوضيح ما اردته في الضبط 

مثال.rar

قام بنشر
20 دقائق مضت, mr steev said:

أريدها في الكود في الحالي حصراً

لا يمكن :blink:

التقارير مثلها ، مثل النماذج المستمرة ، الحقل الغير منضم تكون نتيجته واحده لجميع السجلات ، حسب علمي :rol:

 

جعفر

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

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

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

زر أمر تنقل تلقائي للسجلات واحدا تلو الآخر تلقائيا وعند الوصول للأخير يرجع للأول مع تنفيذ أمر الطباعة لكل سجل

قام بنشر

اذ افترضنا ان الحقل المميز لكل سجل هو id وهو رقم وليس نص ، فيصبح كود معاينة التقرير:

DoCmd.OpenReport "myReport", acViewPreview, , "[id]=" & Me.id

 

جعفر

قام بنشر

عفوا أظنني لن أستفيد من هذا الكود

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

Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

For i = 1 To rc

DoCmd.GoToRecord , , acNext
    DoCmd.PrintOut , , , , 1
Next i

DoCmd.GoToRecord , , acFirst

قمت باضافة DoCmd.PrintOut , , , , 1

بعد الانتقال للسجل التالي كيف يمكنني طباعة السجل الحالي ثم التالي فالتالي إالى أن أنتهي وأعود للسجل الأول

قام بنشر

الكود سيصبح (مع اضافة تعديلاتي المقترحة السابقة):

Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

DoCmd.GoToRecord , , acFirst
For i = 1 To rc

DoCmd.OpenReport "myReport", , , "[id]=" & Me.id
DoCmd.GoToRecord , , acNext
    
Next i

DoCmd.GoToRecord , , acFirst

 

بس بالطريقة هذه ، ستطبع صفحة لكل سجل :cool:

 

جعفر

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

الكود أصبح ممتاز لي لهذا الطلب بجهودك أستاذ جعفر

Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

DoCmd.GoToRecord , , acFirst
For i = 1 To rc

DoCmd.PrintOut acSelection
DoCmd.GoToRecord , , acNext
    
Next i

DoCmd.GoToRecord , , acFirst

ولكن عند الوصول للسجل الاخير لا يرجع للسجل الأول ولكن ذلك ليس له أهمية وإذا كان ذلك بإمكانك فلا بأس به

وكرمكم علينا غزير

وجزاك الله خيراً

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

حياك الله :rol:

 

السطر الاخير الذي ذكرته انت في الكود ، المفروض ان يرجعنا الى السجل الاول !!

جرب وضع السطر الاخير مرتين بدل مرة واحدة!!

 

هل هذا كل الكود ؟

هل استعملت on error resume next ؟

اذا استعملته ، رجاء تزيله ، وتجرب الكود ، وشوف شو الخطأ اللي يعطيك ، مع رقم الخطأ ، وعلى اي سطر .

 

 

جعفر

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

أعطاني رقم الخطأ 2105

لا يمكنك الذهاب للسجل المحدد

 

في السطر عند الذهاب للسجل التالي DoCmd.GoToRecord , , acNext

ماذا علي أن أفعل؟؟؟

 

قمت بما يلي فما رأيك:

On Error GoTo Err_ÃãÑ8_Click

Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

DoCmd.GoToRecord , , acFirst
For i = 1 To rc

DoCmd.PrintOut acSelection
DoCmd.GoToRecord , , acNext
    
Next i
DoCmd.GoToRecord , , acFirst

Exit_ÃãÑ8_Click:
    Exit Sub

Err_ÃãÑ8_Click:
DoCmd.GoToRecord , , acFirst
    Resume Exit_ÃãÑ8_Click

 

تم تعديل بواسطه mr steev
قام بنشر
Private sub ....
on error goto err_GotoFirst

Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

DoCmd.GoToRecord , , acFirst
For i = 1 To rc

DoCmd.PrintOut acSelection
DoCmd.GoToRecord , , acNext
    
Next i

DoCmd.GoToRecord , , acFirst



exit sub
err_GotoFirst:

	if err.number=2105 then
		docmd.gotorecord,,acfirst
		exit sub
	else
		msgbox err.number & vbcrlf & err.description
	endif

end sub

 

جرب هذا الكود

 

جعفر

قام بنشر

تمام  emojithumbs_786749.jpg?format=jpg&zoom=1

بس اذا صادفك خطأ آخر ، فلن تعرف المشكلة وحلها (تذكر ، عندما كان عندنا الامر on error resume next ، لم نعرف لما لا ننتقل الى السجل الاول ، وعرفناه فقط لما ازلنا الامر ، وقرأنا نوع الخطأ) ،

فاستعمل كودك كالتالي ، لتصطاد جميع انواع الاخطاء :

Exit_ÃãÑ8_Click:
    Exit Sub

Err_ÃãÑ8_Click:

	if err.number=2105 then
		DoCmd.GoToRecord , , acFirst
    	Resume Exit_ÃãÑ8_Click

	else
		msgbox err.number & vbcrlf & err.description
	endif

جعفر

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

بصراحة لا أتوقع أن هناك أخطاء أخرى!!!

جزاك الله خيرا مرة اخرى ودائما وابدا نسأل الله أن يكون في عونك كما كنت في عوني هذه الليلة

لكن جميلة فكرة الكود في هذه الطريقة هذا لنعرف أنه ليس هناك شيء (لا يمكن أو مستحيل) أمام عباقرة الأكسس أمثالكم

:wink2:

 

مصطفى:smile:

تم تعديل بواسطه mr steev
قام بنشر (معدل)

دائما استقساراتك اخ مستر ستيف سهلة ممتنعة

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

52 دقائق مضت, mr steev said:

الكود أصبح ممتاز لي لهذا الطلب بجهودك أستاذ جعفر


Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.MoveLast: rst.MoveFirst
rc = rst.RecordCount

DoCmd.GoToRecord , , acFirst
For i = 1 To rc

DoCmd.PrintOut acSelection
DoCmd.GoToRecord , , acNext
    
Next i

DoCmd.GoToRecord , , acFirst

ولكن عند الوصول للسجل الاخير لا يرجع للسجل الأول ولكن ذلك ليس له أهمية وإذا كان ذلك بإمكانك فلا بأس به

وكرمكم علينا غزير

وجزاك الله خيراً

جربت الكود اعلاه ولم احصل على خطأ  !

واسمحولي لو جربت انقاص 1 من الدوران وليصبح السطر كالتالي

For i = 1 To rc - 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