2016-10-04 30 views
0

因此,我收藏了一堆带有不同列标题和不同格式的Excel电子表格。我需要将它们全部导入到我一直在使用的Access数据库中。我需要在追加期间从全名中提取名字

所以我基本上将它们全部导入为单独的表格,然后将它们全部附加到一个最终表格中。这样做我遇到了一个问题。我需要吸引每个客户的名字,但是在一个电子表格中,FULL_NAME是我能够从中获得的唯一一个专栏。

问题是这样的......格式就像是“John Michael Doe,MD”......当我只需要拉约翰时,这是一个头痛的问题。

我尝试以下表达式作为追加场

Left([strName],InStr([strName],” “)-1) 

它种工作。结果发生的是,它将EVERY名称分配给了每个现有的记录。所以我已经在我追加的表格中有492条记录,并且在这个表格中有200个字段,所以我最终获得了近100,000条记录。不好玩。

有没有办法解决这个问题?

编辑:从评论追加查询:

INSERT INTO Consolidated_Data ([Physician_First Name], [Physician _Last Name], Degree) 
SELECT Left([Full Name],InStr([Full Name],' ')-1) AS PullFirst, 
     Source_OddName.[Last Name], Source_OddName.Degree 
FROM Consolidated_Data, Source_OddName 
+1

请添加您试过的附加查询(?)的完整SQL。 – Andre

+0

我使用了设计向导,使用我自己的最小或没有SQL。 – Steven

+1

这不是问题,只需将查询切换到SQL视图并将SQL文本复制/粘贴到您的问题中即可。 – Andre

回答

0

也许一个简单的办法是只导入为正常的... ...然后做一个更新,从已有的全名栏获得名字。 append或INSERT语句应该可以工作,以便创建额外的记录。但是,如果你不想弄清楚为什么这些额外的记录正在被填充,或者只是在急于更新查询应该做你需要的。

0

我认为,由于某些表具有分隔的名字,所以您的统一决赛表有一个名字字段。如果可以返回到492记录表,只需创建一个更新查询,将FirstName列更新为上面使用的表达式,其中strName被FullName列名替换。如果您希望更复杂一些,并且不会弄乱已经有正确名字的行,只需在查询中添加FirstName列为“Is Null”的条件即可。