2010-03-22 110 views
0

我需要从大量访问字段中的字符串中删除连字符。要做到这一点,最好的方法是什么?删除访问字段中的非字母数字字符

目前,该项目是按照这个一般格式为:

2010-54-1 
    2010-56-1 
    etc. 

我试图运行追加查询过这一领域,但我一直都想与导致查询失败验证错误。我认为造成这种失败的原因是条目中的问题,这就是为什么我需要删除它们。

我google了,我看到有一些使用vbscript的格式化指南,但我不知道如何将vb集成到Access中。这是新的给我:)

由于提前, 雅克

编辑:

所以,我已经运行测试用例的一些价值观是简单的文本。他们也不工作,问题不是连字符。

+3

向我们展示失败追加查询的SQL视图,并向我们提供您遇到的错误的更详细描述。 – HansUp 2010-03-22 18:03:51

+0

对于第二个@HansUp,现在您已经发现连字符不是问题,您需要提供错误消息。 – 2010-03-22 19:43:18

+0

这个字段的数据类型是什么? – Nick 2010-03-23 10:18:10

回答

1

我不确定连字符实际上是没有看到示例数据/查询的问题,但如果您所需要做的就是摆脱它们,则替换函数应该足够了(您可以在查询中使用它)

例如:http://www.techonthenet.com/access/functions/string/replace.php

如果你需要做一些更先进的字符串操作比这个(或多次调用替换),你可能要创建一个VBA功能,您可以从您的查询调用,像这样:

http://www.pcreview.co.uk/forums/thread-2596934.php

要做到这一点,你只需要添加一个模块到你的访问项目中,然后在那里添加函数,以便能够在你的查询中使用它。

+0

不幸的是,查找/替换功能仅适用于最多65,000个条目。我得到的数额至少是10倍:/ – 2010-03-22 16:52:46

+0

你从哪里得到这个数字?我最近没有使用过很多访问,但是不记得任何有关函数可以工作的行数的限制(也许有人对访问有更多的了解将会更有帮助) 您是否正在查看数据集,还是使用查询? – AlexCuse 2010-03-22 17:00:58

+0

我试过了!剪贴板将不会处理更多的值。 我正在做一些非常简单的工作,只是试图将一个字段附加到另一个表中,但我始终在每个条目上都收到验证错误。 我还没有尝试vb函数,说实话主要是因为它不是我熟悉的东西。 – 2010-03-22 17:09:43

0

我有一个函数,我使用时删除除字母数字字符的一切。只需创建一个查询,并在查询中使用该函数试图修改的任何字段。运行速度比查找和替换要快得多。

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 

只是注意到代码的链接,看起来类似于我的。猜猜这只是另一种选择。

相关问题