最近在写一个VBA工具时,遇到一个比较怪异的问题,由于工具使用了ADODB方式查询(在VBA中使用SQL操作方式)处理数据,出现部分单元格的内容被固定的截断了。
经过多方查找原因,最后在一些博客中发现了可能存在的原因为Excel使用ADODB操作时,默认会以前8行数据来判断整列的数据类型及结构,包括字符串的长度。如果第9行开始出现都大于前8行中最长的单元格内容时,将会被截断。
解决方案是需要修改注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows ”值为更大,但此参数只支持最大16(如果设置为0,则会扫描所有行,大数据时慎重)。
此方法暂未验证,明天到公司使用真实数据验证一下。
微软官方的问题解决方案:http://support.microsoft.com/kb/189897/
同时,也有其他同学遇到了插入数据库,发现字段被截断的问题,给出的解决方案是替换单元格内容中所有的单引号,因为单引号在数据库中作为关键字使用,可能内容被提前结束导致字段被截断。
Public Function FormatSql(ByVal strValue As String) As String 100 On Error GoTo errhandle Const TAG1 As String = "'" Const TAG2 As String = "''" '将一个单引号'替换成两人单引号'' '如 a'b'c --> a''b''c ' a''b --> a''''b 102 FormatSql = Replace(strValue, TAG1, TAG2) Exit Function errhandle: 104 Call PutLog( Erl, Err.Description) End Function
CSDN:http://bbs.csdn.net/topics/190013271
相关推荐
VBA正则提取A字符串之后B字符串之前中间的内容.txt
固定长度的字符串声明时包含指字的字符数,例如 `Dim strFixedLong As String*100`,总是只包含 100 个字符,但字符串最长不超过 65526 个字符,且需要使用 Trim 函数去掉字符串中多余的空格。动态字符串可以给该...
本示例主要探讨如何利用VBA从字符串中提取纯数字,这对于处理含有混合文本和数字的数据时非常有用。下面我们将深入讲解这个主题。 首先,我们需要了解VBA中的字符串函数,它们是实现这一目标的关键。主要有`Mid`、`...
VBA-SQL查询数据解决数据行超过65536行获取不到数据的问题 VBA-SQL查询数据并赋值给数组 需要使用office的excel、wps适配待研究
1. **固定长度字符串**:当您知道字符串的最大长度时,可以使用这种类型。 ```vba Dim strFixedLong As String * 100 ``` 这里的字符串长度被限定为100个字符。需要注意的是,字符串的最小长度是1个字符,最大...
本话题主要关注如何使用VBA来查找包含特定字符串的单元格,并对这些单元格进行颜色标注。这在处理大量数据时尤其有用,可以大大提高工作效率。 首先,我们需要了解VBA的基本结构。VBA代码通常包含模块、子程序(Sub...
本示例将探讨如何利用VBA来统计一个字符串中包含的数字字符数量。这对于数据处理和分析尤其有用,比如在处理大量文本数据时,可能需要快速统计其中的数字出现频率。 首先,我们需要了解VBA中的基本概念。`String`...
在IT领域,Excel VBA(Visual Basic for Applications)与SQL Server的交互是常见的数据处理技术。Excel VBA允许用户自定义Excel的功能,而通过VBA连接到SQL Server数据库,则可以实现对大量数据的高效管理和分析。...
值得注意的是,字符串的最大长度不能超过65526个字符,并且在实际使用过程中需要使用`Trim`函数来移除多余的空格。 2. **动态字符串**:与固定长度字符串不同,动态字符串的长度可以根据需要动态改变。例如,通过...
在VBA编程中,字符串操作是经常使用的一种功能,因为几乎所有的程序设计都会涉及到文本数据的处理。VBA提供了丰富的字符串函数以满足不同需求的文本操作,以下是一些基本的VBA字符串函数及其知识点: 1. Len(string...
在上面的代码中,我们首先定义了 ADO 连接对象和记录集对象,然后使用连接字符串打开连接,最后使用记录集对象执行 SQL 查询语句。 VBA 提供了多种连接方式和字符串来连接不同的数据库类型,开发者可以根据实际情况...
VBA SQL数据查询数据被截断问题.zip 有些时候我们查询数据,发现有些字段的字符超过256个字符,但是提取不完整字符串,缺失了一部分 需要进行一些操作才能获取得到
在本文中,我们将深入探讨如何使用VBA(Visual Basic for Applications)通过ADO(ActiveX Data Objects)连接到SQL Server数据库并执行数据查询。这个过程在Excel中尤其常见,因为VBA是Excel内置的编程环境,允许...
本文将详细介绍如何使用 VBA 链接 SQL 数据库,并提供三个示例代码,展示如何使用 VBA 和 ADO 连接对象来执行 SQL 查询。 一、使用 VBA 链接 SQL 数据库 要使用 VBA 链接 SQL 数据库,需要使用 ADO(ActiveX Data ...
使用`+`运算符可以有效地将多个字符串拼接在一起,形成完整的SQL查询语句。 #### 三、查询执行时间过长导致VBA提示查询超时的问题 当查询执行时间较长时,VBA可能会提示超时错误。为了避免这种情况,可以通过设置...
在使用固定长度字符串时,通常需要使用`Trim`函数去除尾部的空白,以避免出现不必要的空格问题。 ### VBA中的变长字符串 变长字符串变量可以自动调整大小来适应存储的实际字符串长度: ```vb Dim strDynamic As ...
接下来,定义 SQL 查询命令字符串: ```vba strSQL = "select username from information where sno = '09141324'" ``` 其中,`select` 指定了要查询的字段,`from` 指定了要查询的表名,`where` 指定了查询条件。 ...
Excel+vba通用SQL查询输出器源码 用于对Excel表格的SQL查询,被SQL操作的Excel表格必须有表头,作为类似数据库的字段,并位于表格第一行,SHEET1名称被指定时请注意替换默认的from后的表名称。
Excel VBA 里面有个function可以按byte读取字符串