0

长话短说,我将一堆数据从数据仓库提取到本地 Access 数据库中。在展示我对第一个源数据集所做的操作之前,我将发布代码。其余数据集正在使用相同的概念进行提取。

本地表是预定义的,有问题的文本字段是本地数据库中的“备忘录”字段。我检查并加载到数据仓库中的源数据没有截断这些字段。此外,我还可以通过其他应用程序导出数据,而不会截断这些字段。因此,当我将数据从数据仓库导入本地访问数据库时,会发生一些事情。

这是我的(非常简单的)代码的相关摘录。我只是匹配字段名称并使用记录集 .value 属性将数据从服务器复制到本地表。

有任何想法吗?

Dim db As DAO.Database
Set db = CurrentDb

Dim conn As ADODB.Connection
Set conn = New ADODB.Connection

Dim rsServer As ADODB.Recordset
Set rsServer = New ADODB.Recordset

Dim rsLocal As Recordset
Dim fField As ADODB.Field

'Open Connection
With conn
    .ConnectionString = dataConnectionString
    .Open
End With

'*****************************
'*******Data set 1 data*******
'*****************************

'Open server DSET_1_SOURCE_DATA table
Set rsServer = conn.Execute(SQL_DSET1_SERVER)

'Open local DSET_1_LOCAL_DATA table
Set rsLocal = db.OpenRecordset(SQL_DSET1_LOCAL)

'DELETE ALL RECORDS FROM LOCAL TABLE
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE * FROM DSET_1_LOCAL_DATA")
DoCmd.SetWarnings True

rsServer.MoveFirst

Do Until rsServer.EOF
    rsLocal.AddNew

    For Each fField In rsServer.Fields
        rsLocal.Fields(fField.Name).Value = rsServer.Fields(fField.Name).Value
    Next

    recordCount = recordCount + 1
    rsLocal.Update
    rsServer.MoveNext
Loop
4

2 回答 2

0

也许你应该试试这个代码的备忘录字段

rsLocal.Fields(fField.Name).AppendChunk(rsServer.Fields(fField.Name).GetChunk(rsServer.Fields(fField.Name).ActualSize))
于 2018-09-14T05:53:17.917 回答
0

我解决了我自己的问题。这不是我认为的问题。

数据从我的服务器记录集中复制到我的本地记录集中就好了。它也很好地更新了适当的表格。我没有意识到从 SELECT 查询直接导出到 EXCEL 会截断 255 个字符后的备注字段。将最终查询放入表中,然后导出解决了我的问题。

感谢所有回复并试图提供帮助的人。

于 2018-09-14T19:54:36.987 回答