1

我对访问非常陌生。我的列中有一个与此类似的数据:

JONES/KEN

SMITH/TAMMY

MILLER FRED

PICARD.JOHN

我能抓住第一个非字母数字之前的字母吗?

所以我的结果是:

JONES

SMITH

MILER

PICARD

4

2 回答 2

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 个条件 - 空格、/和句点。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)))

将其放入基于您的表的查询中。

于 2013-02-07T20:32:08.200 回答
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 的表,该字段是要拆分的字段。

于 2013-02-07T20:50:02.037 回答