2017-10-15 127 views
1

我有一個包含數千條記錄的字段。在那些記錄中有一堆名字。MS Access:將姓氏和名字分隔爲單獨的字段

問題是第一個和最後一個名字都列在一起(而不是在兩個不同的領域)。我將如何去分離它們。對於名稱的格式現在是John Smith

FirstName: Left([PlayerName],InStr([PlayerName]," ")-1) 

我試過,但沒有奏效。它只是返回#Func!爲我的每個記錄FirstName查詢字段

任何幫助,將不勝感激。謝謝。

+0

尼克,你是否將其輸入到查詢生成器中?我將你的表達式粘貼到查詢生成器中,它工作正常。或者你在VBA代碼中構建這個查詢?你究竟如何使用它? – xpofer

+0

是的,我正在使用查詢生成器。我應該如何使用它。我選擇第一列中的字段和列。在第二列中,我只是複製並粘貼「字段」行中的對象? –

+1

該查詢應該在查詢生成器中獨自工作。換句話說,只要你的表格*顯示*(包含[PlayerName]的表格),將你的表達式粘貼到第一列的'Field:'中。這應該是你需要的一切。看看它是否與*一起運行*。要在SQL視圖中驗證,它應該如下所示:'SELECT Left([FullName],InStr([FullName],「」)-1)AS FirstName FROM T_Crewmembers;' – xpofer

回答

1

我在想你的原始表中的數據有問題,例如:在「John Smith」(「John Smith」)中的「John」之前可能有一個空格。

檢查的好方法是使用替換功能。

SELECT Replace([PlayerName]," ","-") as [TestName] 
FROM YourTableName; 

如果在名字前面有短劃線。那就是問題所在。

您也可以嘗試檢查您嘗試使用的功能。 instr([開始],[字符串1],[字符串2])可能需要在函數的「[開始]」部分放置一個1。

基本上你的新功能將如下所示:

FirstName: Left([PlayerName],instr(1,[PlayerName]," ")-1) 

讓我知道,如果這兩種解決方案不工作,生病做多挖。

相關問題