Короче говоря, я перетаскиваю кучу данных из хранилища данных в локальную базу данных Access.Я опубликую код перед тем, как показать, что я делаю с первым набором исходных данных.Остальные наборы данных извлекаются с использованием тех же концепций.
Локальные таблицы предварительно определены, а рассматриваемые текстовые поля являются полями "memo" в локальной БД.Я проверил, и исходные данные, загружаемые в хранилище данных, не усекают эти поля.Также я могу экспортировать данные через другие приложения без усечения этих полей.Итак, что-то происходит, когда я импортирую данные из хранилища данных в мою локальную базу данных доступа.
Вот соответствующая выдержка из моего (очень простого) кода.Я просто сопоставляю имена полей и использую свойство набора записей .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