我对访问非常陌生。我的列中有一个与此类似的数据:
JONES/KEN
SMITH/TAMMY
MILLER FRED
PICARD.JOHN
我能抓住第一个非字母数字之前的字母吗?
所以我的结果是:
JONES
SMITH
MILER
PICARD
我对访问非常陌生。我的列中有一个与此类似的数据:
JONES/KEN
SMITH/TAMMY
MILLER FRED
PICARD.JOHN
我能抓住第一个非字母数字之前的字母吗?
所以我的结果是:
JONES
SMITH
MILER
PICARD
不幸的是,我不知道某些语言中可用的“Word”功能。我会使用 Instr 进行蛮力检查,然后使用 Mid 来提取代码。要获得各种角色,该构造将非常复杂。
我使用了 iif 函数并将其嵌套 - 这是这里的基本格式:
iif (instr (fieldname,"{the character}") > 0,
mid(fieldname,1, instr(fieldname,"{the character}")-1,
fieldname{or go further into ifs})
使用您的示例数据,其中客户名称作为字段和 3 个条件 - 空格、/和句点。IT 确实有效,但很丑陋 - 您必须向右滚动很远才能获得所有内容:
ShortName: IIf(InStr(1,[client_name]," ")>0,
mid(client_name,1,InStr(1,[client_name]," ")-1),
IIf(InStr(1,[client_name],"/")>0,
mid(client_name,1,InStr(1,[client_name],"/")-1),
IIf(InStr(1,[client_name],".")>0,
mid(client_name,1,InStr(1,client_name],".")-1),
Client_Name)))
将其放入基于您的表的查询中。
派生表怎么样:
SELECT Left([Surname],InStr([Surname],[NonAlpha])-1) AS LeftName,
MainTable.Surname
FROM MainTable,
(SELECT " " As NonAlpha From Table1
UNION
SELECT "." As NonAlpha From Table1
UNION
SELECT "," As NonAlpha From Table1
UNION
SELECT "/" As NonAlpha From Table1) AS n
WHERE (((MainTable.Surname) Like "*" & [nonalpha] & "*"));
Table1 是一个临时表,它确实包含记录,但查询将只
返回四个分配的行 (,./)
Maintable 是带有字段 Surname 的表,该字段是要拆分的字段。