none
[VB6.0]有關ADODC元件使用的問題 RRS feed

  • 問題

  • Dear All :

    我使用了ADODC元件來連結ACCESS資料庫來撰寫程式

    用了ADOXXX_MOVECOMPLETE這個Procedure

    但是在Compile的時候會發生Compile Error ,

    出現的訊息是Procedure declaration does not match description of event or procedure having the same name .

    但是語法看起來都沒有問題

    但是我電腦有安裝Visual Studio .NET 2005

    所以想請教大家是否因為upgrade 到 ADO.NET才發生此問題?

    有什麼可以解的方法?

    或是可以替代的方法嗎?

     

    2008年4月17日 上午 12:18

解答

  • Dear All :

    我目前是先將movecomplete裡面的程式

    搬到datagrid的Click觸發

    不過這樣如果使用Adodc的物件 , 將無法直接觸發動作

    而且點DataGrid的時候 , 好像也會有資料顯示不正確的樣子

    大家有沒有比較好的方式?

    煩請協助

    謝謝!!

    2008年4月21日 上午 01:43

所有回覆

  • 安裝 VB2005 不會影響到你原先的 VB6 執行環境。VB6 在未經包裝下,也不能用 ADO.NET 。

     

    出問題時,先針對資料庫作壓縮及重整,你的錯誤訊息是說引數不合,自己檢查一下吧。

     

    2008年4月17日 上午 12:48
    版主
  • 不好意思 , 我的確有檢查過引數 , 也重新開過一個新元件來測試 , 不過還是在這地方會出現問題 , 我是直接VB6.0的下拉Object和Procedure來選出我的Object adoPlan和Procedure MoveComplete

    出現語法如下 :

    可否煩請幫我檢查看看 , 只要一Compile就會出現錯誤 !!!!!

    不好意思 , 麻煩了............

     

    Private Sub adoPlan_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
       
    If adoPlan.Recordset.EOF = True Or adoPlan.Recordset.BOF = True Then
       
    Else
        If userRole = "Browser" Then
            cmdAdd.Enabled = False
            cmdDelete.Enabled = False
            cmdEdit.Enabled = False
        ElseIf userRole = "Planner" Then
            If adoPlan.Recordset.Fields("CreateUser") = userID Then
                cmdEdit.Enabled = True
                cmdDelete.Enabled = True
            Else
                cmdEdit.Enabled = False
                cmdDelete.Enabled = False
            End If
        Else
        End If
    End If
       
    End Sub

     

    2008年4月17日 上午 01:25
  • 我的電腦沒有灌 VB6 ,建議你透過物件瀏覽器 (好像是 F2) ,找到這個原型宣告,比對參數。

    2008年4月17日 上午 01:51
    版主
  • 我的宣告 :

    Private Sub adoplan_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

     

    原型 :

    Event MoveComplete(adReason As EventReasonEnum, pError As Error, adStatus As EventStatusEnum, pRecordset As Recordset)

     

    看起來應該是一樣的 , 真的遇到障礙了 ~~~~~

    movecomplete有沒有什麼方法可以取代呢?

    目前我的運用方式是因為有一個DataGrid在顯示資料 ,

    選取的資料會影響到某些button的使用與否 ,

    是否有其他方法可以取代movecomplete呢??

    煩請指教 , 謝謝 !!

    2008年4月17日 上午 03:06
  • 此問題困擾我已久~

    煩請各位高手大大協助~

    感激不盡~

    2008年4月18日 上午 12:08
  • Dear All :

    我目前是先將movecomplete裡面的程式

    搬到datagrid的Click觸發

    不過這樣如果使用Adodc的物件 , 將無法直接觸發動作

    而且點DataGrid的時候 , 好像也會有資料顯示不正確的樣子

    大家有沒有比較好的方式?

    煩請協助

    謝謝!!

    2008年4月21日 上午 01:43