记录不返回所有数据VBA

问题描述:

我有一些问题,试图从记录中提取一些数据,VBA代码是如此简单的东西:记录不返回所有数据VBA

cnt.Open stDB 

Query = "SELECT TriggerDescription," 
Query = Query & " FROM Research_Control" 
Query = Query & " WHERE (((Research_Control.Status) = 1))" 
Query = Query & " ORDER BY Research_Control.Enterprise;" 

rs.Open Query, cnt, adUseClient 

    While Not rs.EOF 

     Sheets("Research_Review").Cells(lineResearch + line, colResearch) = rs.Fields(0) 

     line = line + 1 
     rs.MoveNext 

    Wend 

rs.Close 

cnt.Close 

的“TriggerDescription”是500大characteres和当我复制此值到Excel中的单元格时,它只出现,直到300 characteres

所以我的问题是:如何提取记录集中的所有数据?

PS:我已经尝试改变与“cnt.CommandTimeout = 60”超时,但它不工作,要么

编辑:在表设计领域“TriggerDescription”是ntext的数据类型仅供参考。

+0

为什么这一切的**文字... **? – Sami

+0

该触发描述不大于32,767个字符,因为这是[单元]的最大值(https://support.office.com/zh-cn/article/Excel-specifications-and-limits-1672b34d-7043- 467e-8e27-269d656771c3)? – rene

+0

根据文本的大小以及访问的ADO DB提供程序是否支持它,您可以尝试['GetChunk'](https://msdn.microsoft.com/zh-cn/library/ms681747(v = vs。 85).aspx)。 – rene

@ A.S.H已经给出了答案,使用CopyFromRecordset我所有的数据复制到细胞

Sheets("Test").Range("test").CopyFromRecordset rs

+0

很高兴知道它的工作。那么,Excel的内置方法总是比自定义循环更可取,因为它们经过优化和强大。为什么它不适用于你的循环是一个谜,但最有可能的原因是Excel单元格赋值运算符的大小有一定的限制。 –

+0

@ A.S.H谢谢!我从现在开始尝试使用更多的excel的内置方法 –