حسين العربى قام بنشر نوفمبر 20, 2015 قام بنشر نوفمبر 20, 2015 السلام عليكم ورحمة الله وبركاته عندي برنامج لطباعة الباركود علي المنتجات الاستهلاكية واجهتني به مشكله تتلخص في بعد البحث عن الصنف يتم طباعته من خلال تقرير طبعا عندي مربع نص اسمه (t3)لتحديد عدد الملصقات التي يتم طباعته سواء 1او 2 اواي عدد ( و احد الاخوه اعطاني هذا الكود Private Sub PRENT_Click() Dim i As Integer Do Until i = t3 i = i + 1 DoCmd.OpenReport "medicine", acViewNormal Loop End Sub الكود يعمل تمام بس المشكله هنا انه لما ادي امر طباعة للطابهة الزبرا مثلا حددة في مربع النص عدد 5 ملصقات من المفترض انه يرسلهم امر واحد بل يرسل كل واحد من ال 5 علي حده فالطابعه تطبع واحد وتقف 5ثواني وتطبع الثاني وهكذا مرفق نسخة من البرنامج فورم الطباعة هو form8 272.BARCODE.accdb (1).zip
jjafferr قام بنشر نوفمبر 20, 2015 قام بنشر نوفمبر 20, 2015 (معدل) وعليكم السلام احذف الكود اللي عندك ، وجرب هذا الكود: DoCmd.OpenReport "medicine", acViewPreview DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" جعفر تم تعديل نوفمبر 20, 2015 بواسطه jjafferr
jjafferr قام بنشر نوفمبر 20, 2015 قام بنشر نوفمبر 20, 2015 واذا ما اردت المستخدم يشوف التقرير ، اخفيه DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" جعفر 1
حسين العربى قام بنشر نوفمبر 21, 2015 الكاتب قام بنشر نوفمبر 21, 2015 الف شكر اخي جعفر الكود الاول يعمل 100% وهذا هو المطلوب بالظبط جزاك الله خير الجزاء وجعله الله في ميزان حسناتك اما بالنسبه للكود الثاني الي فيه اخفاء التقرير فعند الطباعة يطبع لي النموذج وليسي التقرير
jjafferr قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 الحمدلله في الأمر docmd.printout اعتقد نقدر نخبره بإسم التقرير ، فعليه لن يأخذ من النموذج. جرب وشوف جعفر
jjafferr قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 الظاهر ان الامر Docmd.Printout يطبع النموذج/التقرير اللي في الامام ، ولما كان التقرير مخفي ، فالتقرير هو اللي اصبح ظاهر ، فطبعه طيب ، هذه حيلة استخدمها بعض الاوقات: بعض الاوقات لما اريد اعمل شئ وما اريد المستخدم يشوفه ، فاطلب من اكسس ان: يوقف صورة الشاشة ، يعمل المطلوب (بينما المستخدم يشاهد الشاشة التي لم تتجدد ، يقوم البرنامج بعمل المطلوب) ، يعطينا الشاشة الجديدة جرب هذه الطريقة: Application.Echo False DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.PrintOut , , , Me.t3 DoCmd.Close acReport, "medicine" Aplication.Echo True جعفر 1
ابو عارف قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 (معدل) السلام عليكم و رحمة الله و بركاته و تحية خاصة للاستاذ جعفر الأخ حسين : اضافة سطر بسيط في الكود السابق ستنحل المشكة ان شاء الله DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.SelectObject acReport, "medicine" DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" بالتوفيق تم تعديل نوفمبر 22, 2015 بواسطه ابو عارف 2
jjafferr قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 36 دقائق مضت, ابو عارف said: DoCmd.SelectObject acReport, "medicine" . رحم الله والديك ، كنت افتش على هذا الامر وما لقيته جعفر
jjafferr قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 20 ساعات مضت, محمد سلامة said: الله عليك يا استاذ جعفر كود جميل جدا.. أخي العزيز محمد شكرا لك على تشجيعك المستمر والامتناهي ، تحية إجلال وإحترام لشخصك الكريم جعفر 1
محمد سلامة قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 53 دقائق مضت, jjafferr said: أخي العزيز محمد شكرا لك على تشجيعك المستمر والامتناهي ، تحية إجلال وإحترام لشخصك الكريم جعفر بارك الله فيك استاذ جعفر منكم تعلمنا ومازلنا نتعلم انتم استاذتنا ومعلمينا واقل شئ نشكركم فهذا حقكم علينا نحن الطلاب غفر الله لك ولوالديك وأسال الله ان يجعل كل ماتقدمونه صدقة جارية وفي ميزان حسناتكم تحياتي 1
حسين العربى قام بنشر نوفمبر 22, 2015 الكاتب قام بنشر نوفمبر 22, 2015 الف شكر لك اخي واستاذي جعفر علي كرمك وزوقك الرفيع وزادك الله من علمه
jjafferr قام بنشر نوفمبر 22, 2015 قام بنشر نوفمبر 22, 2015 حياك الله أخوي حسين بس طلب لوسمحت تجرب وتخبرنا النتيجة: 1. مال مشاركتي الاخيرة اللي فيها Application.Echo False ، 2. وكذلك مال اخينا ابوعارف ، لأني اعرف اننا لا يمكن ان نعمل setfocus على حقل مخفي في نموذج ، فما ادري اذا ممكن نستخدم Docmd.SelectObject على تقرير مخفي جعفر 1
ابو عارف قام بنشر نوفمبر 22, 2015 قام بنشر نوفمبر 22, 2015 عذرا للكتابة اسم الأخ حسين (الأخ هاني) في مشاركتي و قد تم تصحيحه
حسين العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 اخي الفاضل جعفر لي ملحوظه بسيطه هي بعد معالجة ارسال امر العدد الكتوب في مربع النص عدد الملصقات في امر واحد عن طريق هذا الكود DoCmd.OpenReport "medicine", acViewPreview DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" الامر نجح وير سل العدد في امر واحد بس الطابعة مثلا لوعطيت امر مثلا 5 او 10 او اي عدد اكبر من 3 لاحظت انا الطابعة كل 3 ملصقات تقف اقل من ثانيه مع العلم انه في برنامج علي فيجول بيسك عند اعطاء الامر مثلا ولو 20 يطلع مره واحد ولا توجد هذه الوقفه البصيطه وللعلم ايضا اني سألت مصصم برنامج الفيجول قال لي انه بيرسل لامر الي ملف تكست ويدي امر للملف بالطباعه علي حسب ما فهمت . وشكر واسف علي الاطالة هل من حل وشكرا
jjafferr قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 وعليكم السلام نعم ممكن ، وذلك بعمل جدول مؤقت للطباعة ويكون مصدر التقرير medicine في النموذج Form8 ، وعند النقر على الزر "طباعة باركود" ، فيجب ان نعمل سجلات بالعدد المطلوب في الجدول المؤقت ، ثم نعطي زر الطباعة DoCmd.OpenReport "medicine" حيث ان الجدول سيحتوي على عدد السجلات المطلوبة مباشرة ، بينما نحن الان ، نطلب منه ان يطبع ، ثم يطبع ، ثم يطبع ، ثم ... جعفر
حسين العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 استاذي الفاضل جعفر انا عارف اني اسقلت عليك بكثرة اسألتي ولاكن البحر يحب الزياده ولكي يستفيد الجميع فهل ممكن لو تكرمت تطبيق ذلك في مثال
jjafferr قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 (معدل) تفضل عملنا جدول جديد مؤقت للطباعة tbl_Temp وفيه الحقول المطلوبة لطباعة الباركود: . فاصبح علينا في الكود ان نحذف جميع سجلات هذا الجدول ، ثم نضيف بيانات الباركود الجديد ، على حسب عدد السجلات المطلوبة ، وبعدها نفتح التقرير ، والذي عملنا مصدره tbl_Temp . والكود اصبح: Private Sub PRENT_Click() If Me.t3 = 0 Then MsgBox ("لابد ان يكون حقل عدد الملصقات اكبر من صفر") End If 'delete the tbl_Temp Records mySQL = "Delete * From tbl_Temp" CurrentDb.Execute (mySQL) 'add the number of Records Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Temp") For i = 1 To Me.t3 rst.AddNew rst!SMALL_UNIT_PRICE = Me.SMALL_UNIT_PRICE rst!uuu = Me.uuu rst!uun = Me.uun rst!ITEM_CODE = Me.ITEM_CODE rst!ITEM_BARCODE = Me.ITEM_BARCODE rst!FACTOR = Me.FACTOR rst!ITEM_NAME2 = Me.ITEM_NAME2 rst!SUPP_CODE = Me.SUPP_CODE rst.Update Next i rst.Close: Set rst = Nothing 'now print the Report DoCmd.OpenReport "medicine" End Sub . السبب ان هذه الطريقة اسرع في الطباعة ، لأننا نرسل جميع السجلات الى التقرير مرة واحدة ، فالى الطابعة ، بينما في الطريقة السابقة ، كان هناك سجل واحد فقط في التقرير ، وكنا نفتح ونغلق التقرير عدة مرات لطباعة الباركود الواحد. وهنا اود ان ارفع الى اختنا الفاضلة الدكتورة أم عهود كل تحية واجلال واحترام لبُعد نظرها وبراعتها ، لأني اتذكر في منتدى الفريق العربي للبرمجة ، في موضوع طباعة الباركود ، انها عملت الكود لتحفظ سجلات الباركود في جدول مؤقت ، وانا وبسبب قلة خبرتي قلت انه من الافضل عدم عمل الجدول ، والطلب من التقرير الطباعة مباشرة (مثل ما عملنا سابقا) ، والآن فقط عرفت السبب ، وهو سرعة/بطئ الطباعة جعفر 272.BARCODE.accdb.zip تم تعديل نوفمبر 23, 2015 بواسطه jjafferr 2
حسين العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 الف شكر استاذي الفاضل جعفر وجاري التجربه وسأخبرك بالنتيجة
حسين العربى قام بنشر نوفمبر 24, 2015 الكاتب قام بنشر نوفمبر 24, 2015 20 ساعات مضت, husseinarby said: اخي الفاضل جعفر لي ملحوظه بسيطه هي بعد معالجة ارسال امر العدد الكتوب في مربع النص عدد الملصقات في امر واحد عن طريق هذا الكود DoCmd.OpenReport "medicine", acViewPreview DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" الامر نجح وير سل العدد في امر واحد بس الطابعة مثلا لوعطيت امر مثلا 5 او 10 او اي عدد اكبر من 3 لاحظت انا الطابعة كل 3 ملصقات تقف اقل من ثانيه مع العلم انه في برنامج علي فيجول بيسك عند اعطاء الامر مثلا ولو 20 يطلع مره واحد ولا توجد هذه الوقفه البصيطه وللعلم ايضا اني سألت مصصم برنامج الفيجول قال لي انه بيرسل لامر الي ملف تكست ويدي امر للملف بالطباعه علي حسب ما فهمت . وشكر واسف علي الاطالة هل من حل وشكرا اخي الفاضل جعفر المشكله المذكوره في الاعلي مازالت ما اعرف مالسبب ارسل اليك المرفق الذي طبقت عليه الكود ربما يكون الخطأ من عندي BARCODE22.rar
jjafferr قام بنشر نوفمبر 24, 2015 قام بنشر نوفمبر 24, 2015 وعليكم السلام أخي حسين الكود والطريقة صحيحة ، ولكني عدلت على التقرير قليلا ، فما ادري اذا بيصلح الوضع ملئت الجدول ببعض البيانات . وشغلت التقرير يدويا . والنتيجة . هذا معناه ان التقرير يشتغل بصورة صحيحة ، ويمكن طباعته مباشرة بكل البيانات مرة واحدة!! جرب المرفق واخبرني جعفر 272.2.BARCODE22.accdb.zip 1
jjafferr قام بنشر نوفمبر 24, 2015 قام بنشر نوفمبر 24, 2015 انا آسف أخي حسين ، فا لاقتراح الوحيد المتبقى عندي هو ان تعمل تقرير جدولي مرة اخرى ، بحيث تستطيع ان ترى جميع الحقول فيه. جعفر 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.