الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دمج المراسلات من الاكسس الى الوورد

بدأه الفيلسوف111 في 10 يوليو 2014 · 10 رد · 1,609 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الاخوه الكرام 

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

توضيح اكثر انشئ المستخدم خالد شهادة تكريم على الوورد 

انشئ المستخدم  الثاني يوسف شهادة تكريم على الوورد  وكلا الشهادتين مختلفتين في الشكل والمضمون 

وضع كلا المستخدمين في الشهادات كلمة name  لدلالة على اسم الشخص الذي سيكرم

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

هي 

من داخل الاكسس 

نسخ ملف    "الوورد " للمستخدم خالد ووضعه في نفس مجلد قاعدة البيانات الحالية  باسم temp

فتح temp وبحث عن كلمة name واستبدالها بتعليمة دمج المراسلات

عمل دمج المراسلات وادراج الاسماء الموجودة في جدول الاسماء من  الاكسس

حذف ملف temp

 

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

ممكن من خبراء الاكسس تطويره وتطويعه بحيث يعمل المطلوب 

كما تم ارفاق ملف اكسس وورد للمساعدة لعمل المطلوب

جزيتم خيرا .... وبارك الله في جهودكم

تحياتي للجميع

sq1.rar

طارق العيد

#2

وعليكم السلام اخي طارق :)

 

عفوا لم افهم قصدك في قولك:

"فتح temp وبحث عن كلمة name واستبدالها بتعليمة دمج المراسلات"  

 

1. جدول tbl1 فيه حقل nam وبه عدة اسماء ، فهل تريد:

 أ- استبدال كلمة name بجميع الاسماء التي بالجدول ، كلها في ملف الوورد الواحد؟

 ب- استبدال name باسم واحد فقط من الجدول؟

 ج- استبدال name باسم واحد من الجدول ، حفظ ملف الوورد باسم هذا الشخص ، ثم عمل نفس الشئ مع بقية الاسماء الموجودة في الجدول ، بحيث يصبح لديك مجموعة ملفات وورد!!

 

2. اذا صار عندك مجموعة ملفات تابعة لخالد ، ثم اراد يوسف ان يعمل الشئ وباستخدام نفس الاسماء ، فاسماء ملفات خالد سوف تحذف ، لان ملفات يوسف ستحتوي على نفس اسماء ملفات خالد :(

 

جعفر

#3

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

استبدال كلمة name الموجودة في ملف اللوورد بالاسماء التي بالجدول ،  بحيث يكون لكل اسم شهادة 

اي محمد1 ستكون له شهادة باسمه 

محمد2 له شهادة باسمه وهكذا  كل الشهادات ستكون في ملف وورد واحد 

الاسماء التي في الجدول (محمد1 + محمد2+محمد3 ...الخ) ثابته لكل المستخدمين

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

اشكرك مرة ثانية واتمنى لك التوفيق ... لقد الهمتني فكرة جديدة  ان لم نتوصل الى ما هو مطلوب بالطريقة المطلوبة ... سيكون العمل على عمل نسخة لكل اسم اي لكل اسم ستكون له شهادة في ملف وورد اي سيكون عندي 12 ملف وورد كل ملف يحتوي على اسم ... محمد1 ... محمد2 ....... ولكن ماهو مطلوب حاليا جعل تلك الملفات في ملف واحد وورد

تحياتي للجميع

تم تعديل هذه المشاركة بواسطة الفيلسوف111 في 11 يوليو 2014 في 07:41

طارق العيد

#4

تفضل اخي طارق :)

 

رجاء خلي ملف قاعدة البيانات ، وملف name.doc في نفس المجلد ، والنتائج راح تتكون في نفس المجلد ايضاَ :)

وطبعا تقدر تغير الكود وتحط الملفات في المجلدات اللي تحب ، بس بعد التجربة لو سمحت :)

 

انا عملت لك الطريقتين :)

 

جعفر

206.sq1.zip

#5

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

ستتم التجربة قريبا ان شاء الله وبارك الله فيك

طارق العيد

#6

استاذ جعفر شكرا جزيلا فعلا هذا المطلوب ( في ملف واحد ) 100% بارك الله فيك وسدد الله خطاك ونفع بك وجزاك الله عنا خير الجزاء  :)  :)  :)

طارق العيد

#7

حياك الله :)

 

جعفر

#8

اخي جعفر ما قصرت ... هل بالامكان  عمل مثل ذلك لو كانت كلمة name في مربع نص  تحياتي ؟ :excl: 

 

name.doc

تم تعديل هذه المشاركة بواسطة الفيلسوف111 في 20 يوليو 2014 في 13:36

طارق العيد

#9

وعليكم السلام اخي طارق :)

 

نعم المفروض انه ممكن ، ولكن لازم ابحث عن الكود وتجربته ، بس وقتي ضيق ، فلا بأس ان تحاول انت وتخبرني بالنتيجة :)

 

جعفر

#10

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

 

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

وقد توصلت الى نتيجة مرضية  سيتم دمج الاكواد التي تفضلت بها مع الكود ادناه ... وبشكل نظري اعتبر تم التوصل ما هو مطلوب

 

 

http://www.msofficeforums.com/word-vba/21840-copies-pages-document.html#post67497

Sub Demo3()
Dim rng As Range, i As Long
Dim Shp As shape
Dim iShp As InlineShape
Dim StrFnd As String, StrRep As String
StrFnd = "NAME": StrRep = "Johnson"
With ActiveDocument.Range
  Set rng = .GoTo(What:=wdGoToPage, Name:=1)
  Set rng = rng.GoTo(What:=wdGoToBookmark, Name:="\page")
  With rng
    .Copy
    For i = 1 To 10
      .InsertAfter vbCr & Chr(12)
      .Collapse wdCollapseEnd
      .Paste
    Next
  End With
  Set rng = .GoTo(What:=wdGoToPage, Name:=5)
  Set rng = rng.GoTo(What:=wdGoToBookmark, Name:="\page")
  Call Update(rng, StrFnd, StrRep)
  For Each Shp In rng.ShapeRange
    If Shp.TextFrame.HasText = True Then
      Call Update(Shp.TextFrame.TextRange, StrFnd, StrRep)
     End If
  Next

With rng.Find
    For Each iShp In rng.InlineShapes
       If iShp.TextEffect.Text = "NAME" Then
        iShp.TextEffect.Text = "Johnson"
       End If
    Next
End With


End With
End Sub
  
 Sub Update(rng As Range, StrFnd As String, StrRep As String)
  With rng.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = StrFnd
    .Replacement.Text = StrRep
    .Format = False
    .Forward = True
    .Wrap = wdFindStop
    .MatchCase = True
    .MatchWholeWord = True
    .Execute Replace:=wdReplaceAll
  End With
End Sub

تحياتي للجميع

طارق العيد

#11

بارك الله فيك وجزاك الله خير 

 

اخي ياليت تضع ماتوصلت اليه في مثال حتى نستفيد من الفكره وتعم الفائده

 

وفقك الله ورعاك

اتق الله حيث ماكنت

مواضيع مشابهة