2013-03-05 57 views
0

我打開了一箇舊的Access項目。我對這些不再使用的對象有一些問題。
我按照本指南:http://support.microsoft.com/kb/129883/en訪問動態集和快照

代碼有問題的部分是這樣的:

Private Sub AGG_Dati() 

Dim Dyna As Dynaset 
Dim DB As Database 

Set DB = CurrentDb() 
Set Dyna = DB.CreateDynaset("SELECT DISTINCTROW TOrdiniCartone.* FROM TOrdiniCartone WHERE ((TOrdiniCartone.[Tipo Ordine] = ""S""));") 

If Dyna.RecordCount > 0 Then Dyna.MoveLast 
n = Dyna.RecordCount 
If n > 0 Then 
    Dyna.MoveFirst 
    If " " & Forms![SOrdiniArticoli].[_CArt] <> " " & Dyna.[Codice Articolo] Then 
     Forms![SOrdiniArticoli].[_CArt] = Dyna.[Codice Articolo] 
     Forms![SOrdiniArticoli].[_CForn] = "" 
     MsgBox "Selezionare un Fornitore!" 
     Stato = 1 
    Else.... 

繼指導,我改爲:

Private Sub AGG_Dati() 

Dim Dyna As Recordset 
Dim DB As Database 

Set DB = CurrentDb() 
Set Dyna = DB.OpenRecordset("SELECT DISTINCTROW TOrdiniCartone.* FROM TOrdiniCartone WHERE ((TOrdiniCartone.[Tipo Ordine] = ""S""));", dbOpenDynaset) 

它給了我錯誤在這裏:Dyna。[Codice Articolo]

[Codice Articolo]是表中的一個字段TOrdiniCartone

有沒有人知道這些東西?

+0

什麼版本的Access,你現在用的? – 2013-03-05 18:49:42

+0

現在我使用的是Access 2010,但是我也使用Access 97打開數據庫時出現了同樣的錯誤。問題是,當時程序員已經使用Access 1.0使用的語法....但是,你的幫助現在就起作用。 – Gabry 2013-03-07 14:40:09

+0

太好了,如果我的解決方案工作確保將其標記爲已接受。 – 2013-03-07 15:00:54

回答

1

的Dyna應該被定義爲一個dao.recordset:

Dim Dyna As DAO.Recordset 

字段可以被引用

Dyna.Fields("Field Name") 

Dyna.Fields(<index>) 

其中,索引從0開始,爲第一列。

你也可以做

Dyna![FieldName]