عمر ضاحى قام بنشر يناير 22, 2022 قام بنشر يناير 22, 2022 اساتذتي الكرام تحية طيبه طبعا كما هو واضح من عنوان الموضوع عندي مجلد جنب برنامج الاكسيس وليكن اسمه (PDFFILEs) المجلد به عدة ملفات PDF وليكن اسمائهم 01-aaaaa.pdf 02-bbbbb.pdf 03-cccccc.pdf وهي ملفات عبارة عن نماذج عمل اريد ان اصمم ذر لكل ملف من هذه الملفات عند الضغط عليه يخيرني اما ان افتح الملف (PDF) (حتى اقدر احدد عدد النسخ المطلوبه للطباعه او اطبع مباشرتا (فى حالة النسخه الواحده) انا عارف انه طلب بسيط بالنسبه لكم لكنى بحثت ولم اصل لشئ مفيد او لو وصلت لشئ يكن غير كامل وليس المطلوب واغلب المواضيع بخصوص ملفات ال pdf هي للطباعه من التقارير لكني لا اريد ان اطبع من التقارير بل عندي ملف من مصادر خارجيه واريد طباعته (لتوفير الجهد للوصول الى اماكن الملفات وفتحها وطباعتها ولكم جزيل الشكر
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 انا وصلت لامر FollowHyperlink لفتح ملف ال pdf من مجلد ال pdf واصبح بهذا الشكل FollowHyperlink "pdf/04- اشعار مباشرة.pdf" لكن انا اريد ان اجعله اكثر دينماكية هجرب ادور على كود استطيع ان ادمجه مع هذا الكود
Moosak قام بنشر يناير 23, 2022 قام بنشر يناير 23, 2022 (معدل) جرب هذا الكود أخي عمر : FollowHyperlink "C:\Users\UserName\Desktop\File.pdf" SendKeys "^p" تضع عنوان رابط الملف بين علامتي التنصيص بعد FollowHyperlink تم تعديل يناير 23, 2022 بواسطه Moosak
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 26 دقائق مضت, Moosak said: جرب هذا الكود أخي عمر : FollowHyperlink "C:\Users\UserName\Desktop\File.pdf" SendKeys "^p" تضع عنوان رابط الملف بين علامتي التنصيص بعد FollowHyperlink انا اريد ان اطبع مباشرتا بدل الفتح
Amr Ashraf قام بنشر يناير 23, 2022 قام بنشر يناير 23, 2022 20 دقائق مضت, عمر ضاحى said: انا اريد ان اطبع مباشرتا بدل الفتح السلام عليكم .. فى حالة ان مفيش احد من الاخوة ساعدك هشارك معك فى الموضوع بس فيه ملاحظة حتى لو ساعدتك , عشان تطبع ملف خارجى لازم الويندوز يفتحه والا الناتج هيكون لغة Binary واشياء غير مفهومة الا اذا كان الملف تيكست اساسا على ما اعتقد , وبالتالى من الممكن عمل وحدة نمطية تقوم بعمل اللازم ولكن الملفات المراد طباعتها هتتفتح ببرنامج الPDF الخاص بيك وهيتم الطباعة مباشرة على الطابعة الافتراضية اللى عندك طبعا الموضوع هيكون بلمح البصر بس الملف هيفضل مفتوح .. اذا مناسبة معاك الطريقة سيب رد وانا فى اقرب وقت هبدأ اصمملك نموذج جيد يقوم بالمطلوب الى حد كبير بإذن الله .
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 50 دقائق مضت, Amr Ashraf said: السلام عليكم .. فى حالة ان مفيش احد من الاخوة ساعدك هشارك معك فى الموضوع بس فيه ملاحظة حتى لو ساعدتك , عشان تطبع ملف خارجى لازم الويندوز يفتحه والا الناتج هيكون لغة Binary واشياء غير مفهومة الا اذا كان الملف تيكست اساسا على ما اعتقد , وبالتالى من الممكن عمل وحدة نمطية تقوم بعمل اللازم ولكن الملفات المراد طباعتها هتتفتح ببرنامج الPDF الخاص بيك وهيتم الطباعة مباشرة على الطابعة الافتراضية اللى عندك طبعا الموضوع هيكون بلمح البصر بس الملف هيفضل مفتوح .. اذا مناسبة معاك الطريقة سيب رد وانا فى اقرب وقت هبدأ اصمملك نموذج جيد يقوم بالمطلوب الى حد كبير بإذن الله . LH TN LA;GI ما فى مشكله وهذه ملاحظه اشكرك عليها ولك جزيل الشكر
أفضل إجابة Amr Ashraf قام بنشر يناير 23, 2022 أفضل إجابة قام بنشر يناير 23, 2022 على بركة الله اولا يتم عمل هذا الموديول وظيفته فتح الملف المطلوب وطباعته Option Compare Database Option Explicit 'Written by Andrew Fergus 'set a reference to Windows Script Host Object Model ' ' agpuzon ' added x64 support ' Private Declare PtrSafe Sub Sleep Lib "kernel32" _ (ByVal dwMilliseconds As Long) Private Declare PtrSafe Function ShellExecute Lib _ "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As LongPtr Const SW_SHOWNORMAL = 1 Public Sub PrintAnyDocument(strPathAndFileNamePlusExtension As String) Dim dfltPrinter As String Dim newPrinter As Object ' Create a new WshNetwork object to access network properties. Set newPrinter = CreateObject("WScript.Network") 'Get the name of the default printer dfltPrinter = Printer.DeviceName 'Set the default to the new printer 'USE YOUR ACTUAL PRINTER NAME BELOW 'newPrinter.SetDefaultPrinter ("New Printer Name") 'Pause Sleep 100 'Print the pdf document 'USE YOUR ACTUAL DOCUMENT NAME & PATH BELOW Call ShellExecute(0, "print", strPathAndFileNamePlusExtension, "", 0, SW_SHOWNORMAL) 'Pause Sleep 2000 'wait for 2 seconds - increase this if the code doesn't appear to work 'Pause Sleep 100 'Set the printer back to the original default 'newPrinter.SetDefaultPrinter (dfltPrinter) End Sub ثانيا يتم استدعاء الكود بالطريقة التالية : PrintAnyDocument "D:\اسم الفولدر\FileName.pdf" قمت بعمل نموذج طباعة وفيه حقلين نصيين اولهم اسم الملف المطلوب طباعته + الامتداد وبالتالى يمكنك طباعة اى ملف بأى امتداد ليس حصرا على PDF فقط الحقل الثانى عدد مرات طباعة الملف كود الطباعة بالشكل التالى : Private Sub Command0_Click() Dim FPath, SFileName, x As String FPath = CurrentProject.Path SFileName = Me.XFileName x = FPath & "\" & SFileName If IsNull(Me.XFileName) Then MsgBox ("يجب اختيار ملف") Else Debug.Print x For i = 0 To Me.XTimes - 1 PrintAnyDocument x Next MsgBox ("تمت الطباعة" & SFileName) End If End Sub ملاحظات : يجب ان يكون الملف فى نفس المسار مع القاعدة . هذه مجرد بداية على عجالة على قدر معرفتى الضئيلة وبالتالى هناك مساحة للتطوير بأكثر من طريقة على حسب الاحتياج (ممكن اختيار ملف بدلا من كتابة اسمه - عمل قائمة تحتوى على الملفات فى المسار ليتم الاختيار منهم - الخ ... ) . القاعدة مرفقة .. جرب ووافنى بالنتيجة Print Any File.accdb 1
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 8 دقائق مضت, Amr Ashraf said: على بركة الله اولا يتم عمل هذا الموديول وظيفته فتح الملف المطلوب وطباعته Option Compare Database Option Explicit 'Written by Andrew Fergus 'set a reference to Windows Script Host Object Model ' ' agpuzon ' added x64 support ' Private Declare PtrSafe Sub Sleep Lib "kernel32" _ (ByVal dwMilliseconds As Long) Private Declare PtrSafe Function ShellExecute Lib _ "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As LongPtr Const SW_SHOWNORMAL = 1 Public Sub PrintAnyDocument(strPathAndFileNamePlusExtension As String) Dim dfltPrinter As String Dim newPrinter As Object ' Create a new WshNetwork object to access network properties. Set newPrinter = CreateObject("WScript.Network") 'Get the name of the default printer dfltPrinter = Printer.DeviceName 'Set the default to the new printer 'USE YOUR ACTUAL PRINTER NAME BELOW 'newPrinter.SetDefaultPrinter ("New Printer Name") 'Pause Sleep 100 'Print the pdf document 'USE YOUR ACTUAL DOCUMENT NAME & PATH BELOW Call ShellExecute(0, "print", strPathAndFileNamePlusExtension, "", 0, SW_SHOWNORMAL) 'Pause Sleep 2000 'wait for 2 seconds - increase this if the code doesn't appear to work 'Pause Sleep 100 'Set the printer back to the original default 'newPrinter.SetDefaultPrinter (dfltPrinter) End Sub ثانيا يتم استدعاء الكود بالطريقة التالية : PrintAnyDocument "D:\اسم الفولدر\FileName.pdf" قمت بعمل نموذج طباعة وفيه حقلين نصيين اولهم اسم الملف المطلوب طباعته + الامتداد وبالتالى يمكنك طباعة اى ملف بأى امتداد ليس حصرا على PDF فقط الحقل الثانى عدد مرات طباعة الملف كود الطباعة بالشكل التالى : Private Sub Command0_Click() Dim FPath, SFileName, x As String FPath = CurrentProject.Path SFileName = Me.XFileName x = FPath & "\" & SFileName If IsNull(Me.XFileName) Then MsgBox ("يجب اختيار ملف") Else Debug.Print x For i = 0 To Me.XTimes - 1 PrintAnyDocument x Next MsgBox ("تمت الطباعة" & SFileName) End If End Sub ملاحظات : يجب ان يكون الملف فى نفس المسار مع القاعدة . هذه مجرد بداية على عجالة على قدر معرفتى الضئيلة وبالتالى هناك مساحة للتطوير بأكثر من طريقة على حسب الاحتياج (ممكن اختيار ملف بدلا من كتابة اسمه - عمل قائمة تحتوى على الملفات فى المسار ليتم الاختيار منهم - الخ ... ) . القاعدة مرفقة .. جرب ووافنى بالنتيجة Print Any File.accdb 412 kB · 0 downloads ما شاء الله لك كل الشكر والعرفان بجرب الملف وممكن احول التكت بوكس الى كمبوبوكس واجعل مصدره جدول والجدول به مسار الملفات المراد طباعتها واسم الملف وبكده ممكن نعمل مثلا اكثر من مجلد مجلد لملفات ال PDF ومجلد اخر مثلا لملفات الورد ومجلد اخر لملفات الاكسيل ....
Amr Ashraf قام بنشر يناير 23, 2022 قام بنشر يناير 23, 2022 1 دقيقه مضت, عمر ضاحى said: ما شاء الله لك كل الشكر والعرفان بجرب الملف وممكن احول التكت بوكس الى كمبوبوكس واجعل مصدره جدول والجدول به مسار الملفات المراد طباعتها واسم الملف وبكده ممكن نعمل مثلا اكثر من مجلد مجلد لملفات ال PDF ومجلد اخر مثلا لملفات الورد ومجلد اخر لملفات الاكسيل .... أحسنت ولذلك قلت لك فيه مساحة كبيرة للتطوير على حسب احتياجك .. بالتوفيق
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 (معدل) 3 دقائق مضت, Amr Ashraf said: أحسنت ولذلك قلت لك فيه مساحة كبيرة للتطوير على حسب احتياجك .. بالتوفيق ظهرة هذه المشكله تم تعديل يناير 23, 2022 بواسطه عمر ضاحى
Amr Ashraf قام بنشر يناير 23, 2022 قام بنشر يناير 23, 2022 1 دقيقه مضت, عمر ضاحى said: ظهرة هذه المشكله تأكد من اضافة المكتبات الموجودة فى الصورة ووافنى بالنتيجة
عمر ضاحى قام بنشر يناير 23, 2022 الكاتب قام بنشر يناير 23, 2022 تمام اشتغل كده x = FPath & "\" & SFileName هذا السطر اذا كنت حابب اضيف فيه قيمه متغيره (اسماء المجلدات التى بها الملفات (فى نفس مسار البرنامج) (والمقصودة بالقيمه المتغيره هنا الكمبو بوكس ) هل ازيلد "\" واضع مكانها مثلا me.FolderName
Amr Ashraf قام بنشر يناير 23, 2022 قام بنشر يناير 23, 2022 (معدل) التغيير هيتم فى السطر ده : FPath = CurrentProject.Path لو محتاج تسنده لمتغير هوا كمان ممكن يبقى بالشكل ده : FPath = Me.PathTxt مثلا حقل كمان فى النموذج وتكتب فيه المسار المطلوب . لو المسار ثابت ممكن يبقى بالشكل ده FPath = "C:\MyFiles" على حسب ما تريد . لو هتضيف كمان حقل نصى ممكن تتلاعب بمحتواه كما تريد . بالتوفيق مثلا كده : تم تعديل يناير 23, 2022 بواسطه Amr Ashraf
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.