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

تحديد عدد مرات الطباعة


dr_bioman
إذهب إلى أفضل إجابة Solved by يوسف أحمد,

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

اخوانى الكرام

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

 

الحمد لله يتم كل يوم تعديل خطوه بخطوه فى البرنامج

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

وبالفعل توصلت لذلك ولكن بشرط ان اكون محدد السجل بزر الماوس واطبع كل واحد على حدا

 

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

دفعه واحده

ولسيادتكم جزيل الشكر

print.rar

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

اعتقد  انك بحاجة لوجود شرط لتخطي بعض السجلات

وعلى العموم يمكن التنفيذ بما يشبه هذه العبارة

جرب ووافنا بالنتيجة  حيث لا يوجد لدي الان طابعة للتجربة

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

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

 

 

بعد اذنك اضع الكود اللازم

 
Dim i As IntegerFor i = 1 To Me.txtNoOfPrint    
DoCmd.OpenReport "rpt1", acViewNormal, , "id=" & Me.txtIdNext i

حيث txtNoOfPrint  هو اسم مربع النص الذي يحتوي على رقم يحدد عدد مرات الطباعة ( في مثالك هو code )

 

rpt1  هو اسم التقرير

 

id  هو اسم حقل الرقم ( number  في مثالك  )

 

txtId  هو اسم مربع النص الخاص بالرقم ( number في مثالك )

 

انصحك اخي بعدم استخدام اسماء محجوزة كــــ number  و  report   و  name

 

بالتوفيق للجميع

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

شكرا جزيلا استاذنا الحبيب يوسف 

واعتقدت ان السائل يريد طباعة الكل 

فاعددت له هذا ..

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

انصحك اخي بعدم استخدام اسماء محجوزة كــــ number  و  report   و  name

 

Dim i, z, r As Integer
Dim rs As Recordset
Set rs = Me.RecordsetClone
rs.MoveLast
r = rs.RecordCount
rs.MoveFirst
For z = 1 To r
Do Until i = Me.code.Value
   i = i + 1
    DoCmd.OpenReport "report", acNormal, , "[number]=" & Me!number
Loop
rs.MoveNext
Next
rs.Close
Set rs = Nothing
  • Like 1
رابط هذا التعليق
شارك

بارك الله فيك استاذنا العزيز ابو خليل

اعتقادك في محله و كنت انا مخطئ و لم انتبه لطلب اخي السائل انه يريد طباعة الكل دفعة واحدة .

و قد يكون مع المستعجل الزلل

لي عوده بإذن الله

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

اضافة الى ما تفضل به الاستاذ ابو خليل جزاه الله خير

اضع الحل بطريقة مختلفة قليلاً

Dim rs As RecordsetDim i As IntegerSet rs = Me.RecordsetWith rs    .MoveFirstDo Until .EOF    For i = 1 To Nz((Me.txtNoOfPrint), 0)	    DoCmd.OpenReport "rpt1", acViewNormal, , "id= " & Me.txtId    Next i    .MoveNextLoopEnd WithSet rs = Nothing
حيث id هو اسم حقل الرقم ( number )

txtId هو اسم مربع النص الخاص بحقل الرقم id

txtNoOfPrint هو اسم مربع النص الخاص بعدد مرات الطباعة للسجل ( و اسمه بالمثال code )

rpt1 هو اسم التقرير

ملاحظه هامه : تنسيق حقل عدد مرات الطباعه في المثال نص و المفروض ان يكون رقم .

بالتوفيق للجميع

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

جزيت خيرا استاذ يوسف

Dim rs As Recordset
Dim i As Integer
Set rs = Me.Recordset
With rs   
 .MoveFirst
Do Until .EOF    
For i = 1 To Nz((Me.txtNoOfPrint), 0)
DoCmd.OpenReport "rpt1", acViewNormal, , "id= " & Me.txtId
Next i    
.MoveNext
Loop
End With
Set rs = Nothing
  • Like 2
رابط هذا التعليق
شارك

السلام عليكم الخ ابوخليل والاخ يوسف

جزاكم الله عنا كل خير وجعله الله فى ميزان حسناتكم ان شاء الله

بصراحه مجهود رائع وما قصرتم والله

 

اخوانى عند التطبيق باستخدام الاستاذ يوسف والاستاذ ابوخليل فى اخر تعديل ظهر لى خطأ فى الكود

وبصراحه انا لا اجيد التعامل مع هذا النوع من الاكواد

 

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

 

 

print2.rar

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

اللهم صلى على نبينا محمد وعلى اله وصحبه اجمعين

 

ايه الجمال دا يا استاذ يوسف والاستاذ ابوخليل

 

بصراحه مش عارف اشكركم ازاى

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

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

بارك الله فيكم جميعا

استاذ ابو خليل. بالنسبه لعدم ظهور الكود مرتبا فهل هو بسبب استخدام متصفح معين و ما هو افضل متصفح لاستخدام المنتدى لتظهر الاكواد بشكلها الصحيح?

مع جزيل الشكر و التقدير

 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

تجربة باستخدام متصفح سفاري

Dim rs As Recordset
Dim i As Integer

Set rs = Me.Recordset
With rs
    .MoveFirst
Do Until .EOF
    For i = 1 To Nz((Me.txtNoOfPrint), 0)
        DoCmd.OpenReport "rpt1", acViewNormal, , "id= " & Me.txtId
    Next i
    .MoveNext
Loop
End With
Set rs = Nothing

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

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

السلام عليكم اساتذتى

معلش انا عارف ان طلباتى كتير

 

هل يمكن ان اعدل على الكود لكى اطبع الاسماء التى بجوارها خانة اختيار نعم فقط

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

 

يعنى مثلا

احمد

كارم

على

محمد

 

 

اريد طباعة صفحة احمد وكارم ومحمد بشرط دفعه واحده

 

وشكراا جزيلا

print3.rar

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

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

 

و لا يهمك اخي العزيز

 

لعمل ذلك قم اولاً بتغيير مصدر سجلات التقرير الى الآتي :

SELECT [no].id, [no].name, [no].ok FROM [no] WHERE ((([no].ok)=Yes));

لا حظ هنا بأننا اخترنا سجلات التقرير و التي يكون فيها الحقل ok يحمل القيمة نعم

 

 

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

On Error Resume Next
Dim rs As Recordset


Set rs = Me.Recordset
With rs
 .MoveFirst
Do Until .EOF
    If Me.ok = 0 Then
        .MoveNext
    Else
        DoCmd.OpenReport "report", acViewNormal
        .MoveNext
    End If
Loop
End With
Set rs = Nothing


ارجو ان يكون هو المطلوب 

 

 

بالتوفيق

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

السلام عليكم استاذنا الغالى يوسف

ارجو من الله  ان تكون فى تمام الصحه والعافيه

 

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

فمثلا فى المرفق

احمد

كارم

على

 

اذا علمت عليهم جميعا

 

يكرر الطباعة 3 مرات

 

يعنى يطبع بالترتيب كارم فى صفحه ثم احمد فى صفحه ثم على فى صفحة

ويقوم بالتكرار 3 مرات  اعتقد اننا بحاجه الى تعديل على الامر Loop

ودمت فى تمام الصحه والعافيه باذن الله

print4.rar

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

يوجد اختلاف في الكود الذي وضعته لك في سطر واحد 

DoCmd.OpenReport "report", acViewNormal

و انت كتبته هكذا 

 DoCmd.OpenReport "report", acViewNormal, "[id]=" & Me.txtid

غيره مثلما وضعته لك و اخبرني بالنتيجة

 

 

استدراك :: نعم يوجد تكرار ... انتظر عودتي فأنا اعمل على التعديل

 

بالتوفيق

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

استخدم الكود التالي

On Error Resume Next
Dim rs As Recordset
Set rs = Me.Recordset
With rs
 .MoveFirst
 If Me.ok = 0 Then
    Exit Sub
 Else
    DoCmd.OpenReport "report", acViewNormal, , "ok=yes"
 End If
    .MoveNext
End With
Set rs = Nothing

مع ملاحظة تغيير اسم التقرير الى rpt1 حسب الكود  ولكنني تركته بالمثال مثل ما سميته انت ( report ) مع انني لا احبذ استخدام مثل هذا الاسم وانصحك مجدداً بعدم استخدام اسماء محجوزة 

 

اشكرك على التنبيه و بالتوفيق

print4.rar

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

استاذى يوسف

انا عارف ان الموضوع طول شويه بس يعلم الله انى فى امس الحاجه اليه

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

 كارم

احمد

على

 

لو عاوز اطبع الكل مافيش اى مشكلة على الاطلاق هاعلم عليهم كلهم وهاينطبعوا

لكن لو عاوز اطبع احمد فقط لا يقبل

او على فقط لا يقبل

او احمد وعلى لا يقبل

 

يقبل  كارم فقط

او كارم و احمد

او كارم و على

 

يعنى لازم كارم يكون عليه علامة صح

واسف على كثرة الاسئلة استاذنا الغالى

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

  • أفضل إجابة

ان شاء الله لن يطول اكثر من هذا 

 

كلامك صحيح و اشكرك جداً على اختبارك للحل و ملاحظاتك القيمة 

 

و بإذن الله الكود التالي سيحل جميع المشاكل السابقة 

On Error Resume Next
Dim rs As Recordset
Set rs = Me.Recordset
With rs
 .MoveFirst
  If Me.ok = 0 Then
    .MoveNext
    DoCmd.OpenReport "report", acViewNormal, , "ok=yes"
  Else
    DoCmd.OpenReport "report", acViewNormal, , "ok=yes"
    .MoveNext
  End If
End With
Set rs = Nothing

وهذا الملف بعد التعديل

 

ارجو ان يكون هو المطلوب هذه المرة 

 

 

بالتوفيق اخي العزيز

print4.rar

  • Like 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