PDA

View Full Version : error BC30002 :type ' Word.ApplicationClass is not defined



sirwan
یک شنبه 26 مهر 1383, 00:34 صبح
سلام
آقای نصیری قبلا از search روی word از شما سوال کرده بودم
راه حلش را پیدا کرده م:
یک کلاس ایجاد کرده ام که یک کنترل سفارشی است تعاریف زیر در این کلاس آمده است:

Private oWordApplic As Word.ApplicationClass ' a reference to Word application
Private oDoc As Word.Document ' a reference to the document
__________________________________________________ ___________
برای کامپایل کردن این کلا س از دستور زیر استفاده کرده ام:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc /t:library /r:System.dll /r:System.web.dll /r:System.Data.dll CCWordApp.vb
__________________________________________________ __________
اما error می دهد که :
error BC30002 :type ' Word.ApplicationClass is not defined
__________________________________________________ __________
در ضمن قبلا reference _ com مورد نیاز را به پروژه اضافه کرده ام:
فکر می کنید چه reference _ای باید به این فرمان اضافه شود؟؟؟؟؟؟؟؟؟
ممنون

Vahid_Nasiri
یک شنبه 26 مهر 1383, 18:43 عصر
چرا از کامند لاین برای کامپایل می خواهید استفاده کنید. اگر کد حاضر و آماده از جایی پیدا کرده اید خدمت شما عرض کنم که یک سری از خواص و متد ها و همچنین کلاس های به اشتراک گذاشته شده از ofiice برای برنامه نویسان در ورژن های مختلف آفیس با هم فرق می کنند. بنابراین به این نکته باید دقت داشته باشید
======
تا کد برنامه را نبینم نظری ندارم.

sirwan
یک شنبه 26 مهر 1383, 23:04 عصر
سلام !

مرسی که جوابم را دادید !
+++++++++++++++++++++++++
و اما کدم :
پیغام بعدی راببینید.

1- آنقدرها هم آماده نبوده از مقاله ای با نام Office Solutions Developmentاز MSDN Library استفاده کرده ام :

2- در ضمن راجع به اینکه کلاس های به اشتراک گذاشته شده از ofiice برای برنامه نویسان در ورژن های مختلف آفیس با هم فرق می کنند:

باید بگم که این مورد را هم تا حدی می دانستم و از کد های مربوط به Office XP استفاده کرده ام که اگردر اشتباهم لطفا تذکر بدهید با توجه به اینکه Office 2003 روی سیستمم(xp) نصب است .

3- لینکه چرا از کامند لاین برای کامپایل کدم استفاده کرده ام :
در کتاب ASP.NET آقای Duthie G.Andrew راجع به کامپایل کنترلهای سفارشی خواندم که در صورتی که از Visual Basic استفاده شود باید برای کامپایل کنترل از کامند لاین استفاده شود.
+++++++++++++++++++++++++++++
در ضمن چه طور می شود کلاسهای برای تمام نسخه های Office نوشت ؟
++++++++++++++++++++++++++++++++++++++++++++++

باز هم ممنون وامیدوارم کمکم کنید !

sirwan
یک شنبه 26 مهر 1383, 23:06 عصر
Imports System
Imports System.ComponentModel



Namespace WordApp

Public Class CCWordApp

Private oWordApplic As Word.Application ' a reference to Word application
Private oDoc As Word.Document ' a reference to the document

Public Sub CCWordApp()

' activate the interface with the COM object of Microsoft Word
oWordApplic = New Word.ApplicationClass
End Sub

' Open a file (the file must exists) and activate it

Public Sub Open(ByVal strFileName As String)
oDoc = oWordApplic.Documents.Open(strFileName, ReadOnly:=True)
oDoc.Activate()
End Sub
Public Sub find()

oWordApplic.Selection.HomeKey( _
Word.WdUnits.wdStory, Word.WdMovementType.wdMove)

Dim strFind As String = "dolor"
Dim fnd As Word.Find = oWordApplic.Selection.Find
fnd.ClearFormatting()
fnd.Text = strFind


End Sub
Public Sub Quit()
oWordApplic.Application.Quit(Word.WdSaveOptions.wd DoNotSaveChanges)
End Sub



End Class

End Namespace

Vahid_Nasiri
دوشنبه 27 مهر 1383, 18:15 عصر
سلام من مثال فوق رو در وی بی دات نت (یک پروژه ی ASP.NET تحت وی بی دات نت) تست کردم و مشکلی نداشت . فقط از منوی project گزینه ی Add reference را انتخاب کنید. سپس در صفحه ی باز شده به برگه ی com‌ رفته و سپس Microsoft office word 11 object library را انتخاب و سپس ok کنید (من از آفیس 2003 استفاده می کنم و نامش این است احتمالا در آفیس های پایین تر شماره ی نگارش بجای 11 ، 10 و یا کمتر است). سپس پروژه به راحتی در محیط ویژوال استودیو کامپایل می شود.

موفق باشید

sirwan
سه شنبه 28 مهر 1383, 17:59 عصر
سلام
اقای نصیری این کاری هم که گفتید (add reference...) را هم انجام داده ام اما نمی دانم چرا کلاسم کامپایل نمی شود از طریق کامند لاین هم که error می دهد ؟
در هنگام کامپایل یک کنترل سفارشی باید (namespace) یک فایل dll ساخته شود که اینکار در محیط Microsot Visual Basic.NET انجام نمی شود وerror می دهد که :
File or assembly name WordApp, or one of its dependencies, was not found
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!
دیگه دارم دیوونه می شوم چون فکرم به جایی نمی رسد
بازهم از کمکتان ممنونم :flower:

Vahid_Nasiri
سه شنبه 28 مهر 1383, 18:12 عصر
شما نیازی به استفاده از کامند لاین ندارید...
با همان شرایط فوق که گفته شد (البته اینبار یک پروژه کتابخانه جدید)، من یک dll‌ وی بی برای شما درست کردم و ضمیمه ی این پست است.

sirwan
یک شنبه 03 آبان 1383, 12:15 عصر
خیلی خیلی ممنون :flower: :flower: :flower:
اسمبلی شما را هم امتحان کردم باز error می داد!!
مهم نیست از خیر کنترل سفارشی گذشته وکدها را به صفحه aspx منتقل وتغییرات لازمه را ایجاد کردم
باز هم ممنونم .
می دونید که پروژه پایانی ام است و باید بتونم روی فایلهای word از هر version جستجو کنم و نمی دانم که چطور روی تمام versionهاوبدون اینکه فایلها را باز کنم انجام بدم؟؟
امیدوارم بازم بتونید کمکم کنید :sorry: