2014-02-28 58 views
0

我試圖將數據庫1中的表1的數據移動到數據庫2的表2中。表1與表2具有相同的字段。表1有數據和表2沒有。MS Access 2010 - 使用DAO實例化子記錄集並獲取「無當前記錄」錯誤

rsDenuncia是表1從數據庫中記錄1 regNuevoDenuncia是表2中從數據庫中recorset 2

我實例rsDenuncia的子記錄名爲rsODenuncia和它的作品,因爲 我可以使用來獲取數據msgboxes。

Set rsODenuncia = rsDenuncia.Fields("pdfAdjunto").Value 
MsgBox "Nombre el archivo: " & rsODenuncia("FileName").Value 
MsgBox "Tipo de archivo: " & rsODenuncia.Fields("FileType").Value 
MsgBox "Data del archivo: " & rsODenuncia.Fields("FileData").Value 

但是,當我嘗試實例表2的記錄(這是一個空表,但有相同的字段的表1)給出了一個錯誤。 「沒有當前記錄」

Set regONuevoDenuncia = regNuevoDenuncia.Fields("pdfAdjunto").Value 

有沒有一種方法來實例化regONuevoDenuncia不使用值的方法,所以我可以添加新的數據?

在此先感謝。

回答

0

您需要與regNuevoDenuncia.AddNew創造新父記錄,然後才能打開孩子的記錄及其附件。以下代碼是一個簡單示例:

Option Compare Database 
Option Explicit 

Sub CopyRecordsWithAttachments() 
    Dim cdb As DAO.Database 
    Dim rsDenuncia As DAO.Recordset2, rsODenuncia As DAO.Recordset2 
    Dim regNuevoDenuncia As DAO.Recordset2, regONuevoDenuncia As DAO.Recordset2 

    Set cdb = CurrentDb 
    cdb.Execute "DELETE FROM NuevoDenuncia", dbFailOnError ' clear previous test data, if any 
    Set rsDenuncia = cdb.OpenRecordset("Denuncia", dbOpenSnapshot) 
    Set regNuevoDenuncia = cdb.OpenRecordset("NuevoDenuncia", dbOpenDynaset) 
    Do Until rsDenuncia.EOF 
     regNuevoDenuncia.AddNew 
     regNuevoDenuncia!ID = rsDenuncia!ID 
     Set rsODenuncia = rsDenuncia.Fields("pdfAdjunto").Value 
     Set regONuevoDenuncia = regNuevoDenuncia.Fields("pdfAdjunto").Value 
     Do Until rsODenuncia.EOF 
      regONuevoDenuncia.AddNew 
      regONuevoDenuncia!FileName = rsODenuncia!FileName 
      regONuevoDenuncia!FileData = rsODenuncia!FileData 
      regONuevoDenuncia.Update 
      rsODenuncia.MoveNext 
     Loop 
     regONuevoDenuncia.Close 
     Set regONuevoDenuncia = Nothing 
     rsODenuncia.Close 
     Set rsODenuncia = Nothing 
     regNuevoDenuncia.Update 
     rsDenuncia.MoveNext 
    Loop 
    regNuevoDenuncia.Close 
    Set regNuevoDenuncia = Nothing 
    rsDenuncia.Close 
    Set rsDenuncia = Nothing 
    Set cdb = Nothing 
    Debug.Print "Terminado." 
End Sub 
0

在記錄集填充之前,您無法以您所處的方式在DB2的記錄集中引用該字段。一旦將記錄添加到DB2中,那麼錯誤將消失。 沒有看到所有的代碼,我建議你做這樣的事情:

If not regNuevoDenuncia.eof then 
    Set regONuevoDenuncia = regNuevoDenuncia.Fields("pdfAdjunto").Value 
相關問題