Ms access 删除访问字段中的非字母数字字符
我需要从大量访问字段中的字符串中删除连字符。做这件事最好的方法是什么 目前,条目采用以下通用格式:Ms access 删除访问字段中的非字母数字字符,ms-access,Ms Access,我需要从大量访问字段中的字符串中删除连字符。做这件事最好的方法是什么 目前,条目采用以下通用格式: 2010-54-1 2010-56-1 etc. 我试图在这个字段之外运行append查询,但我总是遇到验证错误,导致查询失败。我认为失败的原因是条目中的催眠,这就是为什么我需要删除它们 我在谷歌上搜索过,看到有很多使用vbscript的格式化指南,但我不确定如何将vb集成到Access中。这对我来说是新的:) 提前感谢,, 雅克 编辑: 因此,我用一些简单的文本值运行了一个测试用例
2010-54-1
2010-56-1
etc.
我试图在这个字段之外运行append查询,但我总是遇到验证错误,导致查询失败。我认为失败的原因是条目中的催眠,这就是为什么我需要删除它们
我在谷歌上搜索过,看到有很多使用vbscript的格式化指南,但我不确定如何将vb集成到Access中。这对我来说是新的:)
提前感谢,,
雅克
编辑:
因此,我用一些简单的文本值运行了一个测试用例。它们也不起作用,问题不在于连字符。在没有看到示例数据/查询的情况下,我不确定连字符是否真的是问题所在,但如果您需要做的只是去除它们,那么替换函数应该足够了(您可以在查询中使用此函数) 例如: 如果需要执行比此更高级的字符串操作(或多次调用以替换),则可能需要创建一个VBA函数,可以从查询中调用,如下所示:
要做到这一点,您只需在access项目中添加一个模块,并在其中添加函数,以便能够在查询中使用它。我有一个函数,用于删除除字母数字字符以外的所有内容。只需创建一个查询,并在您试图修改的任何字段上使用查询中的函数。运行速度比查找和替换快得多
Public Function AlphaNumeric(inputStr As String)
Dim ascVal As Integer, originalStr As String, newStr As String, counter As Integer, trimStr As String
On Error GoTo Err_Stuff
' send to error message handler
If inputStr = "" Then Exit Function
' if nothing there quit
trimStr = Trim(inputStr)
' trim out spaces
newStr = ""
' initiate string to return
For counter = 1 To Len(trimStr)
' iterate over length of string
ascVal = Asc(Mid$(trimStr, counter, 1))
' find ascii vale of string
Select Case ascVal
Case 48 To 57, 65 To 90, 97 To 122
' if value in case then acceptable to keep
newStr = newStr & Chr(ascVal)
' add new value to existing new string
End Select
Next counter
' move to next character
AlphaNumeric = newStr
' return new completed string
Exit Function
Err_Stuff:
' handler for errors
MsgBox Err.Number & " " & Err.Description
End Function
刚刚注意到代码的链接,看起来和我的类似。我猜这只是另一个选项。不幸的是,查找/替换功能最多只能用于65000个条目。我至少有10倍于这个数字:/你从哪里得到这个数字的?我最近很少使用access,但我不记得函数将处理的行数有任何这样的限制(也许更了解access的人会更有帮助)。您是在查看数据集时尝试这样做,还是在使用查询时尝试这样做?我尝试过这样做!剪贴板不会处理更多的值。我正在做一些非常简单的工作,只是试图将一个字段附加到另一个表中,但我总是在每个条目上得到验证错误。老实说,我还没有试过vb函数,主要是因为我对它一点都不熟悉。啊,我明白了。查看您的后续评论,我认为我们需要查看相关的查询,以了解您需要做什么(HansUp介绍了如何获取查询文本以向我们展示)@Jacques Tardie:您显然没有阅读@AlexCuse发布的链接,该链接指的是Replace()VBA函数,可在Access中的更新查询中使用。任何时候都没有人建议使用UI的Find/Replace函数。向我们展示失败的append查询的SQL视图,并向我们提供您遇到的错误的更详细描述。对于@HansUp,现在您已经发现连字符不是问题所在,您需要提供错误消息。此字段的数据类型是什么?