我很擅长访问。我的专栏中有一个与此类似的数据:
JONES/KEN
SMITH/TAMMY
MILLER FRED
PICARD.JOHN
我可以在第一个非字母数字之前抓住字母吗?
所以我的结果是:
JONES
SMITH
MILER
PICARD
答案 0 :(得分:0)
不幸的是,我不知道某些语言中提供的“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个条件 - 空格,/和句点。它确实有效,但它很难看 - 你必须向右滚动才能获得所有东西:
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)))
根据您的表格将其放入查询中。
答案 1 :(得分:0)
派生表怎么样:
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的表,该字段是要拆分的字段。