منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عمل دمج مرسلات من الوورد إلى الفيجوال (mail merge )
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة وبركاته

Huh  الموضوع اتعبني بشدة







هو عمل دمج مرسلات mail merge  من الفيجوال بيسك إلى word  بحيث تنقل بيانات مجموعة من الطلاب من الداتا قريدفيو  وتكون بيانات كل طالب موجودة في صفحة مستقلة علما بأن هناك قالب جاهز موجود [b]في الوورد  ( Temp file )  [/b]















واستخدمت ال book mark ونجحت معي الطريقة بنقل بيانات أول طالب فقط لكن للأسف لم أستطع أن أجعله يكمل نقل بقية الطلاب الآخرين ( طبعا تجري عملية الدمج داخل ملف واحد به أكثر من صفحة )



باختصار  عملي شبيه بدمج المرسلات في الوورد ولكن أريد عمله عن طريق الفيجوال

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









Private Sub Button6

_Click(sender As Object, e As EventArgs) Handles Button6.Click



Dim Filename As String = "D:\visual3\test.dotx"

Dim myapp1 As New Object

Dim mydoc1 As New Object

myapp1 = CreateObject("Word.Application")

mydoc1 = myapp1.documents.open(Filename)

Dim bk As Bookmarks = mydoc1.Bookmarks

Dim last As Integer = DataGridView1.Rows.Count - 1



Dim m As Integer =0 

mydoc1 = myapp1.Documents.Open(Filename)

'objWordDotx.tables.add(objWordDotx.range(0, 0), DataGridView1.Rows.Count, 3)

Do

bk("name").Range.Text = Me.DataGridView1.Rows(m).Cells("ar_name").Value



bk("idnum").Range.Text = Me.DataGridView1.Rows(m).Cells("idnum").Value



bk("code").Range.Text = Me.DataGridView1.Rows(m).Cells("idNumber").Value



m = m + 1



Loop Until m = last

myapp1.visible = True
وعليكم السلام ورحمة الله وبركاته

اهلاً بك اخى جيولوجي مبتدئ

بخصوص الكود داخل الزر
قم باستخدام الكود بهذا الشكل
كود :
       Dim Filename As String = "D:\visual3\test.dotx"
       Dim myapp1 As New Object
       Dim mydoc1 As New Object
       myapp1 = CreateObject("Word.Application")
       mydoc1 = myapp1.documents.open(Filename)
       Dim bk As Bookmarks = mydoc1.Bookmarks
       Dim last As Integer = DataGridView1.Rows.Count - 1
       Dim m As Integer = 0
       mydoc1 = myapp1.Documents.Open(Filename)
       'objWordDotx.tables.add(objWordDotx.range(0, 0), DataGridView1.Rows.Count, 3)

       For ii As Integer = 0 To DataGridView1.Rows.Count - 1
           bk(ii)("name").Range.Text = DataGridView1.Rows(ii).Cells("ar_name").Value
           bk(ii)("idnum").Range.Text = DataGridView1.Rows(ii).Cells("idnum").Value
           bk(ii)("code").Range.Text = DataGridView1.Rows(ii).Cells("idNumber").Value
       Next
       myapp1.visible = True

وان شاء الله سيعمل معاك بدون اى مشكلة

أو اتمنى ارفاق المشروع فى حالة لم يعمل الكود حتى يتم اختبار الكود الكلى بعد التعديل
واعادة رفعه لك مجدداً لا وكذلك ملف dotx

تحياتى لك
وتمنياتى لك التوفيق
لك جزيل الشكر
يعجز اللسان عن رد الجميل أجرب الكود خلال الأيام القادمة وسوف أوافيك بالذي يحصل معي
  آسف لتأخري في الرد لظروفي الخاصة
(26-08-18, 01:20 AM)جيولوجي مبتدئ كتب : [ -> ]لك جزيل الشكر
يعجز اللسان عن رد الجميل أجرب الكود خلال الأيام القادمة وسوف أوافيك بالذي يحصل معي
  آسف لتأخري في الرد لظروفي الخاصة


الشكر لله

لا عليك اخى الحبيب وخد وقتك كما تشاء

تحياتى لك
وتمنياتى لك التوفيق
r

السلام عليكم ورحمة الله وبركاته وبعد
أخي elgokr

سأقوم بإرفاق المشروع  شاكراً  ومقدرا لك على إعطائي جزءاً من وقتك وفقك الله

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

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

يبدو نك توم بتطبي كود د حصلت عليه ولا يمكنك التعامل معه
على اى حال حتى الامور تكون ابسط اليك لديك حلاً من اثنين

اليك ان تقوم بعمل كود لانشاء ملف ورد
ثم فتح الملف الذى تم انشائه للقراءة والكاتبة
ثم يقوم بانشاء صفحة جديدة بعدد البيانات فى الداتا جريد
وجعل كل صفحة تحتوى على البيانات التى سيتم ارسالها من الداات جريد
ثم عمل حفظ للملف ومن ثم  اغلاقه

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

بينما اذا قمت بعمل تقرير reportviewer
سيكون ملخص كل ما تريد فعله كلياً وبمجرد عرض التقرير 
يمكنك تحويله لكل من Word , Excel , PDF مع الطباعة

وانا انصحك بالخطوة الثانية لتمكينك يهولة تنسيق وعمل التصميم
دون عناء وغلبة عن طريق تعاملك مع كود انشاء الـ Word

اليك رابط التالى دورة التعامل مع reportviewer
https://www.youtube.com/playlist?list=PL...I1bidq4s_2

تحياتى لك
وتمنياتى لك التوفيق