2017-06-12 190 views
1

我有一個MS Access查詢,我用它來爲醫院網站下了培訓文檔的訂單。我有一張表(tblEntSites),其中包含所有網站以及每個網站用於其類的命名約定的縮寫。爲了確定哪個站點正在接受培訓,我需要從我們的時間表的「Class_Name」字段中提取縮寫。我一直在使用下面的函數(雖然這個縮寫,因爲有超過20個網站)與一個選擇案例語句來做到這一點,它工作正常。然而,我們不斷添加網站和縮寫,每次我們這樣做,我都需要進入並修改代碼。我希望能夠做的是將一個函數看成「tblEntSites」,而不是下面的select case語句。所以基本上它會檢查strClassName與表中的所有縮寫,然後返回包含在strClassName中的縮寫。預先感謝您的幫助!MS Access VBA功能到

Public Function DetermineSite(strClassName As String) As String 

Select Case True 

    Case InStr(strClassName, "BMC") 
     DetermineSite = "BMC" 
    Case InStr(strClassName, "LCC") 
     DetermineSite = "LCC" 
    Case InStr(strClassName, "RPH") 
     DetermineSite = "RPH" 
    Case Else 
     DetermineSite = "Other" 
    End Select 

End Function 

的 「CLASS_NAME」 字段值的例子,縮寫並不總是在同一個地方:

ED Unit Coordinator LCC 
Ambulatory Nurse 100 BMC (G5) 
Ambulatory-HP Health Professional PT/OT 200 RPH (PGL) 
+2

'dlookup'還是得到了記錄所有和使用'.filter''find' –

+0

耶DLookup會爲你創造奇蹟。由於這個笨重的選擇案例,最有可能它會更快。 –

+0

縮寫是否放在每個班級名稱中的相同位置,如前三個字符? – Parfait

回答

0

這裏試試這個:

Dlookup("column name", "tbl name", "column name LIKE "*"" & strClassName & """*")