2017-10-15 474 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) 

让我知道,如果这两种解决方案不工作,生病做多挖。

相关问题