如何通过 Access VBA 检查字符串是否包含字母(非数字)字符

立即分享:

在将信息导入数据库之前“清理”信息是非常标准的——毕竟,这是您选择tar特德使用数据库是为了让您可以预测地查询该数据库以获取设置的标准……对吗? 那么你如何处理外部情况,例如,你必须从一个文件中导入信息,一个人输入“$”但另一个人假设你知道这是一个货币tary 值——或者更糟,有人输入“am”或“pm”但另一个人使用 24 小时制? 像往常一样,有很多方法可以解决这个问题,但一种方法是检查一个字符串是否只是一组数字,或者它是否包含任何“非数字”。 使用一点 VBA,这种检查很简单——本文将向您展示多么简单……

为什么我们需要这样做?

数据字符如果您要导入任何类型的信息,而您无法控制它的输入或提取方式,那么您之前会遇到很多(很多!)次这个问题——人们输入详细信息的方式是 most 对他们来说很舒服,而不是统一的方式。 这意味着你必须这样做只是时间问题 使 在你导入它之前,它是统一的。

一个典型的例子是您需要将数据导入数字字段,但当您查看数据时,您会发现有些数据用逗号分隔千位,有些则添加了货币符号——谁知道还有什么。

快速警告!

将尚未清理的数据导入数据库可能是灾难性的——充其量它会扭曲你的报告,更糟糕的是你最终可能会遇到各种各样的问题——不要让“脏”数据导入成为你的原因正在努力 修复访问问题 整个周末!

如何“摆脱”字母字符

当然,您可以手动搜索和替换,但这样做会花费时间,而且您可能会错过一些东西(例如,如果您只是搜索美元符号,您可能会错过欧元符号或逗号、空格等) . 因此,最简单和更可靠的方法是让 Access 使用下面的代码完成艰苦的工作。

在代码上……

Public Function removeNonNumeric(inString As String) As Long
    Dim outputString, chrString As String
    Dim strPos As Integer
    
    For strPos = 1 To Len(inString)
        chrString = Mid(inString, strPos, 1)
        If IsNumeric(chrString) Then outputString = outputString & chrString
    Next
    
    removeNonNumeric = CLng(outputString)
End Function

代码做什么

VBA代码这里的功能非常简单。 我们在这里所做的就是遍历传入的字符串,一次一个字符。 如果字符是一个数字,那么我们将其添加到我们的节奏中rary 字符串,完成后我们将其转换为“long”。

调整代码以适合您

如您所见——该函数返回“long”数据类型——如果您使用整数或浮点数等,那么您将需要相应地更改该函数,以便它为您的数据库返回正确类型的值。

作者简介:

Mitchell Pond 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 SQL Server 数据库 和 excel 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。