我有兩個表,我加入名字字段有時有一箇中間的名字後面的名字,中間有一個空格。所以對同一個人來說,價值可能是Jane M
或Jane Moriarty
。我該如何處理#func!函數不適用的單元格中的錯誤?
(我也加入了關於姓氏和出生日期,但那些都不是這個問題的一部分)
兩個表之間,一個通常整個中間名,而其他通常有中間初始。由於這種不匹配,我需要在加入之前修剪空間和字符。
搶我想要的文字,我使用
LEFT(Patients.FIRST_NAME, Instr(Patients.FIRST_NAME, ' ',) -1) as FIRST_NAME_TRIM
到目前爲止,一切都很好。但是,對於既沒有初始名也沒有中間名的單元,例如Jane
,訪問返回#func!
。推測是因爲Instr
找不到空間。所以當我嘗試加入修剪的var時,Access會引發錯誤。如果我嘗試這樣
SELECT var1, var2, var3,
LEFT(Patients.FIRST_NAME, Instr(Patients.FIRST_NAME, ' ') -1) as FIRST_NAME_TRIM,
LEFT(Roster.FST_NM, Instr(Roster.FST_NM, ' ') -1) as FST_NM_TRIM
FROM Patients
INNER JOIN Roster
ON FIRST_NAME_TRIM = FST_NM_TRIM;
我得到JOIN expression not supported
如果我嘗試這樣
SELECT var1, var2, var3,
Patients_mod.FIRST_NAME_TRIM,
Roster_mod.FST_NM_TRIM
FROM
(
SELECT var1, var2, var3,
LEFT(Patients.FIRST_NAME, Instr(Patients.FIRST_NAME, ' ') -1) as FIRST_NAME_TRIM
FROM Patients
) as Patients_mod
LEFT JOIN
(
SELECT var1, var2, var3,
LEFT(Roster.FST_NM, Instr(Roster.FST_NM, ' ',) -1) as FST_NM_TRIM
FROM Roster
) as Roster_mod
ON Roster_mod.FST_NM_TRIM = Patients_mod.FIRST_NAME_TRIM;
我得到Syntax error in FROM clause
,和我沒有看到一個語法錯誤。
所以我要麼首先要防止#func!
問題,要麼找到忽略具有#func!
的單元的代碼。
完美。我驚訝地發現模塊名稱似乎並不重要。我可以將一堆函數放在一個模塊中,還是每個模塊只有一個?我懷疑這是一個好主意,但我很好奇。 – Rominus
您可以將任意數量的功能放入一個模塊中(並且通常將多個功能合併到一個模塊中)。模塊名稱不能與子/函數相同,否則確實無關緊要。 @ReidMcCamish – Andre
是的,發現了困難的方式! – Rominus