أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية دمج المراسلات إلى Word باستخدام OLE وODBC أتمتة

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية181926
الموجز
توضح هذه المقالة كيفية استخدام "التنفيذ التلقائي لـ OLE" إنشاء دمج المراسلات في Microsoft Office Word 2003 باستخدام البيانات من Visual FoxPro (VFP) لجدول Windows.
معلومات أخرى
أسفل التعليمات البرمجية Visual FoxPro لنظام التشغيل Windows باستخدام طراز كائن Word.Application الذي يقوم بإجراء عملية دمج المراسلات استخدام مصدر بيانات ODBC إلى جدول موجود من Visual FoxPro. يمكن استخدام هذه التعليمة البرمجية موجودة اسم مصدر بيانات (DSN) إنشاء في إدارة برامج تشغيل ODBC ، أو يمكنك إنشاء واحد على تحرك باستخدام استدعاء API إضافة واستخدام DSN. في المثال أدناه، "Visual FoxPro" تم إنشاؤه في إدارة برامج تشغيل ODBC DSN وجداول يشير إلى مجلد \Samples\Data في المجلد الرئيسي VFP. من المحتمل أن هذه المسارات يمكن تغيير لعكس مسارات المستخدمين.

ملاحظة تم اختبار هذه التعليمة البرمجية مع خدمة الإصدار - 1 (SR-1) لـ Word 97 و Microsoft Office Word 2003. يؤدي استخدام إصدارات سابقة من Word 97 "يتطابق نوع" والأخطاء OLE الأخرى.

إنشاء برنامج ثم أدخل التعليمة البرمجية التالية:
  ***/ Begin program code /***   * Code to create a new data source to a VFP table.   *   * Use the Declare DLL function to prototype the   * SQLConfigDataSource function.   * Using SQLConfigDataSource prevents having to go into   * the ODBC Driver Manager and create the DSN.   ***   IF VAL(SUBSTR(VERSION(4),2,1))>7lthemes=_screen.Themes_screen.Themes=.f.ENDIF   DECLARE Integer SQLConfigDataSource in odbccp32.dll Integer, ;      Integer, String, String   ***   * Create a string containing the settings appropriate to the driver.   * The following is an example for the Microsoft VFP ODBC driver   * accessing the Customer.dbf file.   ***   *** Change the path below to point to the Customer table ***   *** in the \Samples\Data folder.                      ***   settings="DSN=visual foxpro tables"+chr(0)+;             "Description=VFP ODBC Driver"+chr(0)+;             "SourceDB=e:\vfp7\samples\data"+chr(0)+;             "SourceType=DBF"   =SQLConfigDataSource(0,1,"Microsoft Visual FoxPro Driver",settings)   * NOTE: Ensure there are no spaces on either side of the equal sign (=).   ON ERROR DO errhand WITH ERROR(), MESSAGE(),  MESSAGE(1), PROGRAM( ),   LINENO( ) && Trap OLE & other errors.   * Initialize variables passed to Word to create form letter.   intro1="Congratulations! You are one of our best customers since you have ;   purchased $"   intro2=" each month from us. "   intro3="As a result, your maximum order amount has been increased by ;   $2500.00. If you have any questions, please feel free to contact us."   oWord = CREATEOBJECT("Word.Application")      WITH oWord         * Assign values to variables         dsname="e:\VFP7\SAMPLES\DATA\customer.DBF"         wformat=0         wconfirmconv=0         wreadonly=0         wlinktosource=0         waddtofilelist=0         wpassworddoc=""         wpasswordtemp=""         wrevert=0         wprotectdoc=""         wprotecttemp=""         wconn="DSN=visual foxpro tables;uid=;pwd=;"+;            "sourcedb=e:\vfp7\samples\data;sourcetype=dbf"+;            "exclusive=no;backgroundfetch=yes;collate=machine;"         wsqlstatement="SELECT contact,company,title,address,city,;            postalcode,STR(maxordamt,12,2) as maxordamt FROM customer ;            WHERE (customer.maxordamt>$100000)"         .Visible=.T.      && Make Word visible.         .WindowState = 2   && Minimize Word.         .Documents.Add      && Add new document.         .Selection.InsertParagraphAfter         .ActiveDocument.MailMerge.OpenDataSource;            (dsname,wformat,wconfirmconv,wreadonly,wlinktosource,;             waddtofilelist,wpassworddoc,wpasswordtemp,wrevert,;             wprotectdoc,wprotecttemp,wconn,wsqlstatement)         .ActiveDocument.MailMerge.EditMainDocument         .Selection.InsertDateTime("dddd, MMMM dd, yyyy", 1)         .Selection.MoveRight         .Selection.InsertParagraphAfter         .Selection.MoveDown         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"contact")         .Selection.InsertParagraphAfter         .Selection.MoveDown         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"company")         .Selection.InsertParagraphAfter         .Selection.MoveDown         .ActiveDocument.MailMerge.Fields.Add;             (oWord.Selection.Range,"title")         .Selection.InsertParagraphAfter         .Selection.MoveDown         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"address")         .Selection.InsertAfter(", ")         .Selection.MoveRight         .ActiveDocument.MailMerge.Fields.Add(oWord.Selection.Range,"city")         .Selection.InsertAfter("  ")         .Selection.MoveRight         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"postalcode")         .Selection.MoveRight         .Selection.InsertParagraphAfter         .Selection.InsertParagraphAfter         .Selection.InsertAfter("Dear ")         .Selection.MoveRight         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"contact")         .Selection.MoveRight         .Selection.InsertAfter(":")         .Selection.MoveRight         .Selection.InsertParagraphAfter         .Selection.InsertParagraphAfter         .Selection.MoveDown         .Selection.InsertAfter(intro1)         .Selection.MoveRight         .ActiveDocument.MailMerge.Fields.Add;            (oWord.Selection.Range,"maxordamt")         .Selection.MoveRight         .Selection.InsertAfter(intro2)         .Selection.MoveRight         .Selection.InsertAfter(intro3)         .Selection.MoveRight         .Selection.InsertParagraphAfter         .Selection.InsertParagraphAfter         .Selection.MoveDown         .Selection.InsertAfter("Thank you,")         .Selection.MoveRight         .Selection.InsertParagraphAfter         .Selection.InsertParagraphAfter         .Selection.MoveDown         .Selection.Fields.Add(oWord.Selection.Range,-1,"author")         .ActiveDocument.MailMerge.Destination = 0 && new document.         .ActiveDocument.MailMerge.Execute         && Run the merge.         nanswer = MESSAGEBOX("Would you like to view the finished ;         document?",36,"Switch to Word")         DO CASE            CASE nanswer = 6               .ActiveWindow.View.Type = 3    && Page layout view.               .Visible = .T.               .Application.Activate   && Bring Word forward.               .WindowState = 0         && Word in normal state.               =INKEY(5)         && Wait 5 seconds then bring VFP back.               .WindowState = 2    && Then minimize Word.              ENDCASE         nanswer = MESSAGEBOX("Print the document?",36,;         "Print the merged document.")         DO CASE            CASE nanswer = 6         && Yes               .ActiveDocument.PrintOut   && Print the merged form letter.         ENDCASE         nanswer = MESSAGEBOX("Save the document?",36,;         "Enter the name to save the merged document.")         DO CASE            CASE nanswer = 6         && Yes               cbaddoc=SPACE(25)               DO WHILE .T.                  DEFINE WINDOW getname FROM 1,1 TO 15,60 ;                     FONT 'COURIER NEW',10 FLOAT GROW ZOOM                     ACTIVATE WINDOW getname                     cdoc=SPACE(25)                     mquit = SPACE(1)                  IF !EMPTY(cbaddoc)                     @2,1 SAY "Existing file name: "+cbaddoc COLOR R+/w                  ENDIF                  @4,1 SAY "Enter a name for the Word document."                  @5,1 GET cdoc color b/w VALID emptyChk(cdoc)                  @7,25 GET mquit FUNCTION '*T Save' SIZE 2,10                  READ CYCLE                  CLEAR WINDOW getname                  cdoc=ALLTRIM(cdoc)                  cpath= .Options.DefaultFilePath(0)   && Get Word's                                                 && default document path.                  IF FILE(cpath+"\"+cdoc+".doc")                     WAIT WINDOW "Document already exists! Enter another ;                     file name." TIME 1                     cbaddoc=cdoc                     LOOP                  ELSE                     .ActiveDocument.SaveAs(cdoc)                  ENDIF                  .Documents.Close(0)                  .Application.Quit                  EXIT               ENDDO            CASE nanswer = 7         && No               .Documents.Close(0)               .Application.Quit            ENDCASE      ENDWITH   ON ERROR  && Restore system error handler.   IF VAL(SUBSTR(VERSION(4),2,1))>7_screen.Themes=lthemes   endif   PROCEDURE emptychk   PARAMETER pcdoc   IF !EMPTY(pcdoc)      RETURN .T.   ELSE      WAIT WINDOW "Enter a name for the Word Document"      RETURN 0   ENDIF   PROCEDURE errhand   PARAMETER merror, mess, mess1, mprog, mlineno   CLEAR   IF merror=1426      mlineno=LTRIM(STR(LINENO()))      merror=LTRIM(STR(merror))      =MESSAGEBOX("You have an OLE error. Usually this is caused by      quitting Word or canceling out of a dialog box in Word. "+CHR(13)+;      "The error message is "+mess)   ELSE      mlineno=LTRIM(STR(LINENO()))      merror=LTRIM(STR(merror))      =MESSAGEBOX("An error occured on line "+mlineno+;      ". The error message is "+mess+" The error number is "+merror)   ENDIF   ON ERROR   RETURN   ***/ End program code /***						
مراجع
للحصول على معلومات إضافية حول كيفية الحصول على إصدار Word لـ Windows 97 الخدمة 1 (SR-1) ، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
172475كيفية الحصول على MS Office 97 SR-1
Microsoft Visual Basic for Applications تعليمات (Word ' 97); البحث على "OLE"

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 181926 - آخر مراجعة: 02/16/2005 05:38:06 - المراجعة: 3.4

Microsoft Visual FoxPro 3.0 Standard Edition, Microsoft Visual FoxPro 3.0b Standard Edition, Microsoft Visual FoxPro 5.0 Standard Edition, Microsoft Visual FoxPro 5.0a, Microsoft Visual FoxPro 6.0 Professional Edition, Microsoft Visual FoxPro 7.0 Professional Edition, Microsoft Visual FoxPro 8.0 Professional Edition, Microsoft Visual FoxPro 9.0 Professional Edition

  • kbmt kbautomation kbhowto kbinterop KB181926 KbMtar
تعليقات
ype="text/JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" d=1&t=">col-sm-6 col-xs-24 ng-scope"> 대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
;did=1&t=">/html>p;did=1&t=">0&did=1&t=">otocol) + "//c.microsoft.com/ms.js'><\/script>"); src="https://c.microsoft.com/ms.js"> mp;t=">