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

حل مشكلة اختيار الطابعة


ayman14

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

سلام عليكم


اخواني الافاضل
مشكلة واريد لها حل من خبراء الاكسس

عند تصميم البرنامج والانتهاء 
اجد مشكلة الطابعة 

و الاكسس يستخدم الطابعة الافتراضية

وجدت عدة امثلة اجنبية وعربية رغم العربية احسن وادق 
لكن لم تظبط معي 

عند استخدام احد الامثلة نجحت الفكرة تمت طباعة من الطابعة المختارة
وعند طباعة فاتورة تغيرت من الطابعة المختارة الى الطابعة الافتراضية

والجهاز يوجد فيه ثلاث طابعات 
واريد اختيار طابعة محددة لمرة واحدة فقط

دون الرجوع كل مرة واختيار الطابعة



فما الحل اخواني 

لا احب ان اجعل اعدادت طابعة مع نمودج فاتورة
اريد فورم غير مرتبط بفورم فواتير coffee.gif

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

3 دقائق مضت, kanory said:

كان اسم الطابعة معروفه مسبقا ضع هذا الكود قبل امر الطباعة

مساء الخير 

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

مثل هوامش الورقة و حجم الورقة ؟

شكراً أستاذي الفاضل 

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

وعليك السلام

 

اخي الكريم

المثال لايصلح لما اريده

 

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

وليس كتابتها يدويا

وعند اختيار من القائمة نوع الطابعة تصبح افتراضية للبرنامج 

بالتوضيح

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

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

10 ساعات مضت, ayman14 said:

وعليك السلام

 

اخي الكريم

المثال لايصلح لما اريده

 

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

وليس كتابتها يدويا

وعند اختيار من القائمة نوع الطابعة تصبح افتراضية للبرنامج 

بالتوضيح

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

اتفضل اتمنى يكون كما طلبت

Print.accdb

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

وعليك السلام

 

اخي الكريم

المثال لم يقم بتغيير شيء

مازالت الطابعة الافتراضية هي هي

كما ان المثال بعيد جدا عن ما اريد

 

الامر بسيط كما في الفجوال بيسك

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

 

تم تعديل بواسطه ayman14
خطا في كتابة
رابط هذا التعليق
شارك

كيف لم يتم تغير الطابعه الافتراضيه

عند اختيار الطابعة

ستجد

رساله هل تريد اختيار الطابعه

اذا اخترت نعم سوف يتم اختيار الطابعه الافتراضيه

انا مجربه على 3 طابعات

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

اذا كنت تريد تغير الطباعة عند الطابعه هذا عند الطباعه يغير الطابعه الافتراضيه

Set Application.Printer = Application.Printers(DLookup("[printerName]", "pirent", "[Number]=5"))
SetDefaultPrinter (DLookup("[printerName]", "pirent", "[Number]=5"))

انا ما ارسلته الا بعد تجربه

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

استادي العزيز

بارك الله فيك 

ثم عمل جدول ياخد اسماء الطابعات تلقائيا

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

ثم بنجاح

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

عمل بشكل ممتاز

كان الخطا مني وليس من الامثلة التي استخدمتها 

وبنسبة للكود الاخير ممتاز جدا

لانني لااحب كثرة الاكواد وانت سيد العارفين(hlopaet_prv)


مشكور استادنا 

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

الحمد لله انك وصلت الى غايتك
انا فهمتك وانت لم تفهمني
انا كما قلت لك جربتها قبل ارسلها
وكنت متاكد منها ميه في الميه

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

وعليك السلام

 

اخي الكريم

لم استطع ارسال الرسالة ليست لدي صلاحيات

مازلت  عضو جديد

 

تم تعديل على الكود 

يمكن استخدامه في اي برنامج

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

 

Print.rar

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

15 دقائق مضت, ayman14 said:

وعليك السلام

 

اخي الكريم

لم استطع ارسال الرسالة ليست لدي صلاحيات

مازلت  عضو جديد

 

تم تعديل على الكود 

يمكن استخدامه في اي برنامج

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

 

Print.rar

شكرا اخي ايمن

هذا الكود موجود لدي

انا لسه بعالج فيه كيف يضيف اسماء الطابعات للجدول

Dim strMsg As String
Dim strTemp As String
 
        strTemp = GetPrinters()
        If Len(strTemp) = 0 Then
            Cancel = True
            strMsg = "No installed printers found."
        Else
            Me.prnt.RowSource = strTemp
        End If
    MySQL = "Delete * From pirent"
    CurrentDb.Execute (MySQL)
    

    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Select * From pirent")
    
    For i = 1 To strTemp
        rst.AddNew
            rst!printerName = strTemp
            strTemp
            rst!Number = Nz(DMax("[Number]", "pirent") + 1, 1)

        rst.Update
    Next i
    
    rst.Close: Set rst = Nothing

 

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

الحمد لله

اللهم اجعله صدقة جارية في صحيفة من عمله  و  من نقله .

الان, ayman14 said:

شكرا لك الاخ خلف على ما اعتقد

 خَلْف بل هو الشطر الأول من اسم رمزي ....  خَلْف الساتر

و قد تقصدت أن يقرأ على الوجهين.

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

19 ساعات مضت, Khalf said:

لقد نقلت الكود من نموذج لدي

لعلي أحظى بدعوة منكم إن عمل لديكم

 

جزاك الله خيرا أخي الكريم

وهذا برنامج جامع للفكرتين ( جلب اسماء الطابعات + تحديد الطابة الافتراضية )

ولعلي أحظى بدعوة لي ولوالدي ...

 

تحديد واختيار الطابعة الافتراضية - تغيير الطابعة الافتراضية.accdb

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

43 دقائق مضت, kanory said:

 

جزاك الله خيرا أخي الكريم

وهذا برنامج جامع للفكرتين ( جلب اسماء الطابعات + تحديد الطابة الافتراضية )

ولعلي أحظى بدعوة لي ولوالدي ...

 

تحديد واختيار الطابعة الافتراضية - تغيير الطابعة الافتراضية.accdb

جزاك الله خير

سبقتني بالتنزيل وهذا يحسب لك

لكن انا تاخرت لاني اود عند معرفه اسماء الطابعات يضيفها تلقائي

ممكن نتعاون جميعا

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

وانا اريد يضفها كلها للجدول بارقام متسلسله

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

منذ ساعه, ابو ياسين المشولي said:

لكن انا تاخرت لاني اود عند معرفه اسماء الطابعات يضيفها تلقائي

ممكن نتعاون جميعا

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

وانا اريد يضفها كلها للجدول بارقام متسلسله

اتفضل هل هذا ما تبحث عنه
 

Private Sub Form_Load()
Call GetPrinterList(cboDestination)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE pirent.Number, pirent.printerName FROM pirent;"
    For i = 0 To Me.cboDestination.ListCount - 1
        Me.cboDestination = Me.cboDestination.ItemData(i)
        DoCmd.RunSQL "INSERT INTO pirent ( [Number], printerName ) SELECT Nz(DMax(""[number]"",""Pirent""),0)+1 AS Expr1, [Forms]![Print]![cboDestination]"
    Next i
    DoCmd.SetWarnings True
    Me.cboDestination = Me.cboDestination.ItemData(0)
End Sub

اليك المرفق

 

تحديد واختيار الطابعة الافتراضية - تغيير الطابعة الافتراضية.accdb

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

44 دقائق مضت, Shivan Rekany said:

اتفضل هل هذا ما تبحث عنه
 


Private Sub Form_Load()
Call GetPrinterList(cboDestination)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE pirent.Number, pirent.printerName FROM pirent;"
    For i = 0 To Me.cboDestination.ListCount - 1
        Me.cboDestination = Me.cboDestination.ItemData(i)
        DoCmd.RunSQL "INSERT INTO pirent ( [Number], printerName ) SELECT Nz(DMax(""[number]"",""Pirent""),0)+1 AS Expr1, [Forms]![Print]![cboDestination]"
    Next i
    DoCmd.SetWarnings True
    Me.cboDestination = Me.cboDestination.ItemData(0)
End Sub

اليك المرفق

 

تحديد واختيار الطابعة الافتراضية - تغيير الطابعة الافتراضية.accdb

نعم اخي Shivan Rekany

هو هذا اللي يدور في عقلي

انا كنت عملت هذه الطريقه

 

Print.accdb

تم تعديل بواسطه ابو ياسين المشولي
  • 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