none
關於版本衝突 RRS feed

  • 問題

  • 小弟最近寫了一支程式,在台灣已作過五台電腦的測試了(都是在繁體中文xp環境下所作的,office_xp_sp2及office_2003_sp2)
    但送到客戶那邊還是不行(客戶用的是英文xp_sp2,office_xp_sp2
    實在百思不解
    能否請各位先賢幫幫忙
    看是出在那邊的問題好嗎?
    謝謝

    客戶安裝完後,會選一個EXCEL FILE 作為轉換用
    但當要轉換時,卻冒出這個錯誤訊息
    找不到問題在那
    麻煩大家了

    請按此連結以下網址,看實際問題的截圖
     

    PS:
    windows xp及office版本已確定是一樣的了
    但還是不能用
    我們目前找了一台win 2000 英文版的來跑
    證實真的是跑不了
    好奇怪
    為什麼寫出來的程式在中文版xp可跑
    英文版的2000不能跑呢??
    有什麼要改的地方嗎??
    大家有遇過相關的問題嗎???
    請指導一下謝謝!!

    2007年9月28日 上午 07:03

解答

  • 那篇回給你的是猜測,請確認你的專案有參照哪些 COM 的元件,因為別人不知道你專案到底參照了哪些 COM 元件。

     

    你若沒動專案參照只動變數宣告,是無法改善型態程式庫不正確的問題。

     

    另外你說到你用 Visual Studio 2005 寫的串列埠是指使用 SerialPort 還是透過 MSCOMM ?你說的不清不楚。例如裡面還有 Printer 命令控制,VS2005 並沒有直接操控印表機的類別,所以才會猜你用 VB6 的控制項。

     

    你錯誤訊息盒最右側有個詳細的按鈕,請點下去複製裡面的錯誤訊息,若是 Debug 模式,理面可能會有錯誤行號,請把錯誤行號所指的相關程式碼與上下的宣告貼出來,並把錯誤訊息貼出來。

    2007年9月28日 上午 08:45
    版主

所有回覆

  • 你提供的資訊並不明確,無法猜測可能的問題。

     

    依據錯誤訊息盒有提到型態版本不正確,我假設你專案中使用了提前連結,參照了 Excel 版本:

    Dim xlApp As Excel.Application

     

    請移除,並改用延後連結:

    Dim xlApp As Object = CreateObject("Excel.Application")

     

    使用提前連結會鎖 Office 版本,改用延後連結不會鎖版本,但效能比較差。

     

    註:型態版本不正確也有可能是其他 COM 物件造成,請確認你使用的 COM 物件,比如你圖上有存取序列埠,就要看看你是不是用 VB6 的 MSCOMM 這種會鎖版本的,那就不一定是 Excel 版本不正確了。

    2007年9月28日 上午 07:53
    版主
  •  

    您好…首先對於您的回答感到非常感動

    針對您給我的回覆

    我仔細研究了一下

    並post我的碼給您過目

     

     If txtFile.Text <> "" Then
                myxls = CreateObject("Excel.Application") '啟動Excel
                myxls.Visible = True '顯示Excel
                mybooks = myxls.workbooks
                mybook = mybooks.open(txtFile.Text) '開檔案
            Else
                MsgBox("Please choose your excel source file first")
                Exit Sub
            End If

     

    還有我用的是Visual Studion 2005 .Net 寫的串列埠

     

    謝謝您的指導

    2007年9月28日 上午 08:33
  • 那篇回給你的是猜測,請確認你的專案有參照哪些 COM 的元件,因為別人不知道你專案到底參照了哪些 COM 元件。

     

    你若沒動專案參照只動變數宣告,是無法改善型態程式庫不正確的問題。

     

    另外你說到你用 Visual Studio 2005 寫的串列埠是指使用 SerialPort 還是透過 MSCOMM ?你說的不清不楚。例如裡面還有 Printer 命令控制,VS2005 並沒有直接操控印表機的類別,所以才會猜你用 VB6 的控制項。

     

    你錯誤訊息盒最右側有個詳細的按鈕,請點下去複製裡面的錯誤訊息,若是 Debug 模式,理面可能會有錯誤行號,請把錯誤行號所指的相關程式碼與上下的宣告貼出來,並把錯誤訊息貼出來。

    2007年9月28日 上午 08:45
    版主