String MS Access:如何删除字符串中两个特定字符后的所有内容

String MS Access:如何删除字符串中两个特定字符后的所有内容,string,ms-access,String,Ms Access,当我的数据如下所示时,如何删除数字和字符串中的空格: randomtext = 567897 otherrandomtext = 3827475 evendifferentone : 483838 andsoon : 03948 type of contact 594837 other type of contact 453222223 randomtext otherrandomtext evendifferentone andsoon type of contact other type

当我的数据如下所示时,如何删除数字和字符串中的空格:

randomtext = 567897
otherrandomtext = 3827475
evendifferentone : 483838
andsoon : 03948
type of contact 594837
other type of contact 453222223
randomtext
otherrandomtext
evendifferentone
andsoon
type of contact
other type of contact
所以它可以像这样:

randomtext = 567897
otherrandomtext = 3827475
evendifferentone : 483838
andsoon : 03948
type of contact 594837
other type of contact 453222223
randomtext
otherrandomtext
evendifferentone
andsoon
type of contact
other type of contact
我设法使用更新查询(写在下面)删除“=”之后的所有内容,但如何同时更新这两个内容(使用“=”和“:”)

UPDATE [MyTable] 
SET [Name] = Left([Name], InStr([Name], "=") - 1)
WHERE [Name] Like "*=*"

我可以在两个单独的查询中完成它,虽然它只是带有“=”或“:”的数据,但当我还有诸如“联系人类型594837”之类的数据时,我不知道如何处理它。也许有一种方法可以删除所有数字、=和:符号?

相当简单。。您可以编写一个VBA函数,实际上可以将其嵌入到SQL查询中来实现这一点。我转到数据库工具(MS Access顶部),Visual Basic,右键单击模块文件夹,插入->模块。编写/复制代码后,转到Visual Basic for Applications IDE顶部的“调试”,然后单击“编译数据库名”

见下文:

选项比较数据库
选项显式
公共函数TrimString(fieldToTest作为变量)作为变量
Dim测试,测试2作为变型
作为变体的Dim trm
Dim intSearch,lngth为整数
TrimString=Null
测试=仪表(fieldToTest,“=”)
test2=InStr(fieldToTest,“:”)
lngth=Len(现场测试)
如果测试>0,则
“我们知道它包含一个等号
trm=左侧(现场测试,测试-1)
trm=微调(trm)
调试.打印trm
ElseIf test2>0则
“我们知道它包含一个冒号
trm=左(fieldToTest,test2-1)
trm=微调(trm)
调试.打印trm
如果lngth>0,则
'查找其中是否包含整数
'重新生成不带整数的字符串
对于intSearch=1到lngth
如果不是数字(Mid$(fieldToTest,intSearch,1)),则
trm=trm&Mid$(fieldToTest,intSearch,1)
其他的
如果结束
下一个
trm=微调(trm)
其他的
'正则字符串
“什么也不做
trm=现场测试
如果结束
TrimString=trm
端函数
没有太多的错误处理,但我认为这回答了您的问题

我把它放在一个表中,字段数据类型是文本:

桌子
输出:
SQL:
选择Table2.ID,
TrimString([stringTest])作为Expr1
来自表2;
从VBA代码中调用
TrimString
是函数名


如果有什么我忽略了-请告诉我,我会尽力纠正。

你可以运行两个单独的查询吗?可能是@Kazark的重复,我可以运行两个查询,但由于我刚刚开始使用Access,我想知道是否有其他方法:)我离开了我的计算机哈哈,你能进行编辑吗@HansUp@HansUp你做了什么有什么吗?我所看到的只是将
trm
更改为
Variant
。通过将trm声明为Variant而不是String来避免“无效使用Null”“当fieldToTest为空时,
trm=fieldToTest
出错。@HansUp明白了。我不知道。谢谢祝你愉快weekend@Invent-谢谢你的帮助!我刚刚意识到在我的表格中还有不同类型的数据,即“家庭住址变更59604934”和数字变更的数量,有没有关于如何删除这些数据的想法?我只想要文本