在 SQL select 查询中将格式从数值更改为文本值

Changing the format from numerical value to text value in an SQL select query

在下面的字符串中,我试图将值 'tblContacts.JobTitle 从数值转换为文本值,而不必 link 我的查询到 table 其中原始记录 ('tblJobTitles.JobTitle') 坐。 table 'tblContacts' 中的字段 'JobTitle' 从 table 'tblJobTitles' 中提取它的值。当我使用下面的查询时,不幸的是查询提取了职位的唯一 ID 号而不是文本值。是否需要重新格式化 select 查询才能这样做?下面是我的代码,我认为您可以通过添加“.text”将值格式化为文本,但不幸的是,这不起作用。

 sql_get = "SELECT [tblContacts].[CompleteName], [tblContacts].[CurrentPosition], [tblContacts].[Level], [tblContacts].[ContractType], [tblContacts].[ID], [tblContacts].[Foto], [tblTeams].[Team], [tblJobTitles].[JobTitle] FROM [tblContacts] INNER JOIN [tblTeams] ON [tblContacts].[Team] = [tblTeams].[ID] LEFT JOIN [tblJobTitles] ON [tblJobTitles].[ID] = [tblContacts].[JobTitle] WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"
Me.frmstaticdatadepartments08.Form.RecordSource = sql_get

据我了解tblContacts.JobTitle是一个外键。实际职位位于另一个 table、tblJobTitles 中。获得它的唯一方法是通过 sub-select 或加入另一个 table 来索取它。

SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level, 
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto, 
tblTeams.Team, tblJobTitles.JobTitle 
FROM tblContacts 
LEFT JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID 
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"

我不得不猜测一些列名称,tblJobTitles.IdtblJobTitles.JobTitle,但我希望你明白我的意思。

我所做的更改是加入 tblJobTitles 然后要求标题而不是参考 ID,tblJobTitles.JobTitle

编辑:

显然 Access 需要括号才能进行多个连接 - see msdn:

In cases where you need to join more than one table, you can nest the INNER JOIN clauses.

所以改为这样做:

SELECT tblContacts.CompleteName, tblContacts.CurrentPosition, tblContacts.Level, 
tblContacts.ContractType, tblContacts.ID, tblContacts.Foto, 
tblTeams.Team, tblJobTitles.JobTitle 
FROM (tblContacts 
INNER JOIN tblTeams ON tblContacts.Team = tblTeams.ID)
LEFT OUTER JOIN tblJobTitles ON tblContacts.JobTitle = tblJobTitles.Id
WHERE [tblTeams].[team] = '" & cboDepartments.Value & "'"