2016-10-04 35 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」的條件即可。