在将信息导入数据库之前进行“清洗”是相当标准的操作——毕竟,你开始使用数据库的原因之一就是为了能够根据预设条件对数据库进行可预测的查询,对吧?那么,你该如何处理一些外部情况呢?例如,你需要从一个文件中导入信息,其中有人输入了“$”,而另一个人却认为你知道它代表的是金额;或者更糟糕的是,有人输入了“上午”或“下午”,而另一个人却使用24小时制?和往常一样,有很多方法可以解决这个问题,其中一种方法是检查字符串是否只是一组数字,还是包含任何“非数字”字符。使用一些VBA代码,这种检查非常简单——本文将向你展示它究竟有多么简单……
为什么我们需要这样做?
如果您导入的信息类型不受您控制,无法控制其输入或提取方式,那么您肯定已经多次遇到过这个问题——人们会以自己最习惯的方式输入信息,而不是采用统一的方式。这意味着您迟早会遇到以下问题: 使 在你导入它之前,它是统一的。
一个典型的例子是您需要将数据导入数字字段,但当您查看数据时,您会发现有些数据用逗号分隔千位,有些则添加了货币符号——谁知道还有什么。
快速警告!
将尚未清理的数据导入数据库可能是灾难性的——充其量它会扭曲你的报告,更糟糕的是你最终可能会遇到各种各样的问题——不要让“脏”数据导入成为你的原因正在努力 修复访问问题 整个周末!
如何“摆脱”字母字符
当然,您可以手动搜索和替换,但这样做会花费时间,而且您可能会错过一些东西(例如,如果您只是搜索美元符号,您可能会错过欧元符号或逗号、空格等) . 因此,最简单和更可靠的方法是让 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
代码做什么

调整代码以适合您
如您所见——该函数返回“long”数据类型——如果您使用整数或浮点数等,那么您将需要相应地更改该函数,以便它为您的数据库返回正确类型的值。
作者简介:
Mitchell Pond 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 SQL Server 数据库 和 excel 恢复软件产品。 欲了解更多信息,请访问 datanumen.com