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

سؤال : حفظ البيانات التى يتم تصديرها لملف الورد واغلاقة برمجيا


ابو جودي
إذهب إلى أفضل إجابة Solved by jjafferr,

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

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

اساتذتى الافاضل كيف يتم الحفظ للبيانات قبل الاغلاق لملف الورد

سؤالى هو على مرفق مقتبس من الاستاذ الغالى على قلبى الاستاذ @Barna

كما أن الرد على سؤاله كان من استاذى الجليل ومعلمى القدير الاستاذ @أبو إبراهيم الغامدي

وتطرق الاستاذ ابو ابراهيم الى هذه المقولة

 المنهج  Quit له محددات يمكنك التعرف على المزيد عنها في ملف تعليمات Word VBA إذا أردت.

وبالبحث على موقع مايكروسوفت حصلت الاتى 

Name Value Description
wdDoNotSaveChanges 0 Do not save pending changes.
wdPromptToSaveChanges -2 Prompt the user to save pending changes.
wdSaveChanges -1 Save pending changes automatically without prompting the user.

حاولت البحث دون جدوى 

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

 

Barna Export to Word.zip

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

وعليكم السلام 🙂

 

اذا نظرت الى امر اغلاق النموذج/تقرير الاكسس ، فترى ان الاختيارات اللي عندك هي نفسها اعلاه:

DoCmd.Close , Me.Name, acSaveNo

DoCmd.Close , Me.Name, acSavePrompt

DoCmd.Close , Me.Name, acSaveYes

.

ولكن قيمها تختلف ، وهذه القيم الخاصة بإغلاق نموذج/تقرير الاكسس:

image.png.10615b8e8e11818466a236e1ccc3c6be.png

 

جعفر

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

53 دقائق مضت, ابا جودى said:

 المنهج  Quit له محددات يمكنك التعرف على المزيد عنها في ملف تعليمات Word VBA إذا أردت.

أرجو أن تفتح عيناك عند النظر إلى الشفرة : Quit <> Close أبداً :Rules:

عطل Close وشغل Quit فقط :biggrin:

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

يبدو اننى لم استطع سرد السؤال على النحو الصحيح استاذى الجليل ومعملى القدير الاستاذ @jjafferr

الموجود بالقاعدة    جدول  وحيد   ونموذج واحد فقط :yes:

المطلوب من النموذج عند الضغط على الزر  طباعة عقد اجار للسجل الحالى

عمل نسخة من ملف الورد المرفق بمجلد القاعدة الى نفس مسار القاعدة باسم  Fullname  من النموذج       تمت هذه الخطوة بحمد الله
كنت اريد اغلاق الورد مع الاحتفاظ بالبيانات من النموذج دون سؤال                                                         تمت هذه الخطوة بحمد الله تعالى فى هذا المرفق 

 

المشكلة الان تكمن فى زر الامر الثانى طباعة عقود اجار لكل السجلات دفعة واحدة

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

المطلوب اغلاق جميع ملفات الورد مع الاحتفاظ بالبيانات فى صمت دون المطالبة باى رسائل

Barna Export to Word 2.zip

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

19 دقائق مضت, أبو إبراهيم الغامدي said:

أرجو أن تفتح عيناك عند النظر إلى الشفرة : Quit <> Close أبداً :Rules:

عطل Close وشغل Quit فقط :biggrin:

يا استاذ @أبو إبراهيم الغامدي

انا جربت LWordDoc.Quit SaveChanges:=wdSaveChanges

انا جربت LWordDoc.Quit SaveChanges:=wdPromptToSaveChanges

دون جدوى ولكن تركت كل تجاربى لاسهل على اساتذتى ان كل هذه التجارب دون اى فائدة 

مشكلتى الان مع الزر الثانى هل يمكنكم مساعدتى يا استاذ @أبو إبراهيم الغامدي

للتوضيح هذه المره مع هذا الزر يتم التصدير من خلال لوب على كل سجلات الجدول 
المطلوب الإحتفاظ بالبيانات لكل ملف ورد مع اغلاق ملفات الورد دون ان يشعر المستخدم

 

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

 

فى هذا المرفق Barna Export to Word 2.zip

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

23 دقائق مضت, ابا جودى said:

المطلوب الإحتفاظ بالبيانات لكل ملف ورد مع اغلاق ملفات الورد

 

هذا رابط لموضوع قمت بالرد عليه http://arabteam2000-forum.com/index.php?/topic/280527-تنسيق-تقرير-أكسيس-مثل-تنسيق-ملف-وورد/#comment-1351657

وطريقة الحفظ كانت:

'save document the New Merged Document
objWord.ActiveDocument.SaveAs ("C:\MyNewDocument.doc")

.

 

30 دقائق مضت, ابا جودى said:

دون ان يشعر المستخدم

 

السؤال هو: لماذا تجعل ملف الوورد ظاهرا وقت نقل الببانات؟

اذا اخفيته

objWord.Visible = False 'True is visible

.

وتعامل مع الموضوع كأنه اكسس 100% ، فبعد ان تحفظ ملف الوورد ، تقدر تعمل رسالة من الاكسس انه "تم حفظ البيانات في ملف الوورد" 🙂

 

 

واما غلق الوورد ، فكما قال اخوي ابو ابراهيم:

objWord.Quit

 

جعفر

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

18 دقائق مضت, jjafferr said:

 

هذا رابط لموضوع قمت بالرد عليه http://arabteam2000-forum.com/index.php?/topic/280527-تنسيق-تقرير-أكسيس-مثل-تنسيق-ملف-وورد/#comment-1351657

وطريقة الحفظ كانت:


'save document the New Merged Document
objWord.ActiveDocument.SaveAs ("C:\MyNewDocument.doc")

.

 

 

السؤال هو: لماذا تجعل ملف الوورد ظاهرا وقت نقل الببانات؟

اذا اخفيته


objWord.Visible = False 'True is visible

.

وتعامل مع الموضوع كأنه اكسس 100% ، فبعد ان تحفظ ملف الوورد ، تقدر تعمل رسالة من الاكسس انه "تم حفظ البيانات في ملف الوورد" 🙂

 

 

واما غلق الوورد ، فكما قال اخوي ابو ابراهيم:


objWord.Quit

 

جعفر

ممكن سؤال

هو حضرتك حملت المرفق واطلعت عليه ام تقدم الحل نظريا من واقع فهمكم للسؤال 

انا بالفعل تقريبا جربت والله كل شئ وبحثت مرارا وتكرارا قبل وضع السؤال

الفرق الوحيد بين مرفق الاخير وشرح حضرتكم استاذى الجليل ومعلمى القدير  شئ واحد    Visible = False

وتعمدت جعلها  true  لاتأكد من عمل اللوب بشكل صحيح على كل السجلات والتصدير الصحيح لكل سجل الى ملف ورد على حده 

 

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

ليس تقاعسا من فى المحاولة لكن والله الان تقريبا ان لى حوالى 15 ساعة متصله ابحث واحاول ولم اترك الجهاز الا لاداء الصلاة فقط 

 

 

Barna Export to Word 3.zip

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

  • أفضل إجابة

تفضل يا سيدي 🙂

Private Sub BtnAllRcrd_Click()
'On Error GoTo ErrHandler
On Error Resume Next


Dim rs As DAO.Recordset

Dim LWordDoc As Object
Set LWordDoc = CreateObject("Word.Application")
Set rs = CurrentDb.OpenRecordset("Table1")

If Not rs.EOF Then rs.MoveFirst

Do Until rs.EOF
    
    LWordDocOriginal = CurrentProject.Path & "\WordDoc.Doc"
'    LWordDocSaveAs = CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc"
    
'    FileCopy LWordDocOriginal, LWordDocSaveAs
    
    
'    LWordDoc.Documents.Open CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc"
    LWordDoc.Documents.Open LWordDocOriginal
    
    LWordDoc.Visible = False
    
    LWordDoc.ActiveDocument.Bookmarks("fname").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Fullname.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Civ").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CivilNo.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Nat").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Nationality.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Rate").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Rate.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Chin").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CheckIn.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Chout").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CheckOut.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Pr").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Price.Value, "")
    
    
    LWordDoc.ActiveDocument.SaveAs (CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc")
    
rs.MoveNext

Loop

'LWordDoc.Application.Documents(rs!Fullname & "_Doc.Doc").Save
'LWordDoc.Quit

'LWordDoc.ActiveDocument.SaveAs (rs!Fullname & "_Doc.Doc")
LWordDoc.Quit
Set LWordDoc = Nothing
'ErrHandler:
'    If Err.Number = 3021 Then Resume Next
End Sub

 

جعفر

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

18 دقائق مضت, jjafferr said:

تفضل يا سيدي 🙂


Private Sub BtnAllRcrd_Click()
'On Error GoTo ErrHandler
On Error Resume Next


Dim rs As DAO.Recordset

Dim LWordDoc As Object
Set LWordDoc = CreateObject("Word.Application")
Set rs = CurrentDb.OpenRecordset("Table1")

If Not rs.EOF Then rs.MoveFirst

Do Until rs.EOF
    
    LWordDocOriginal = CurrentProject.Path & "\WordDoc.Doc"
'    LWordDocSaveAs = CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc"
    
'    FileCopy LWordDocOriginal, LWordDocSaveAs
    
    
'    LWordDoc.Documents.Open CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc"
    LWordDoc.Documents.Open LWordDocOriginal
    
    LWordDoc.Visible = False
    
    LWordDoc.ActiveDocument.Bookmarks("fname").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Fullname.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Civ").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CivilNo.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Nat").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Nationality.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Rate").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Rate.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Chin").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CheckIn.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Chout").Select
    LWordDoc.Selection.InsertAfter Nz(rs!CheckOut.Value, "")
    
    LWordDoc.ActiveDocument.Bookmarks("Pr").Select
    LWordDoc.Selection.InsertAfter Nz(rs!Price.Value, "")
    
    
    LWordDoc.ActiveDocument.SaveAs (CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc")
    
rs.MoveNext

Loop

'LWordDoc.Application.Documents(rs!Fullname & "_Doc.Doc").Save
'LWordDoc.Quit

'LWordDoc.ActiveDocument.SaveAs (rs!Fullname & "_Doc.Doc")
LWordDoc.Quit
Set LWordDoc = Nothing
'ErrHandler:
'    If Err.Number = 3021 Then Resume Next
End Sub

 

جعفر

استاذى الجليل ومعلمى القدير و والدى الحبيب الأستاذ @jjafferr :fff::clapping::signthankspin: سلمت يمينكم وحفظكم الله 
اسأل الله تعالى ان يشرح صدوركم ويسعدكم ويرزقكم البركة فى العمر والعلم والاهل والولد
 

5LyhE107090210.gif.64056e773a8ef171b164a8df3be94b41.gif

 

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

وهذه النتيجة النهائية بفضل الله تعالى ثم فضل استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr

وتدلل يا استاذ @Barna وهى بضاعتكم نردها ونعبدها اليكم بحلتها الجديدة :wink2: 
تم التعديل على الاكواد لاختزالها 

Barna ( Export to Word ).accdb

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

17 دقائق مضت, ابا جودى said:

وهذه النتيجة النهائية بفضل الله تعالى ثم فضل استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr

وتدلل يا استاذ @Barna وهى بضاعتكم نردها ونعبدها اليكم بحلتها الجديدة :wink2: 
تم التعديل على الاكواد لاختزالها 

Barna ( Export to Word ).accdb 520 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 0 downloads

الحمد لله رب العالمين .... الذي جعل لي اخوة امثالكم

بارك الله فيك اخي @jjafferr واخي @ابا جودى اولا لكتابة الكود واعادة صياغتة بهذه الصورة الجميلة وثانيا انا استفدت من المناقشات منذ بداية الموضوعين ... فلكم كل الاحترام والتقدير ... 🥀

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