1

这篇文章有点类似于我之前关于如何从表中返回多条记录的文章。但是,在这里我只想从表中返回一条记录。这是我尝试过的:

Private Sub UpdateSalary(RoleSelected As String)

Dim strSQL As String
strSQL = "SELECT Salary " & _
         "FROM Roles_Table " & _
         "WHERE Role = '" & RoleSelected & "'; "

Dim rcrd As Record
Dim salaryValue As Integer

'Get the values of the SQL from the data base
Set rcrd = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

End Sub

这背后的基本逻辑是,当用户在组合框中选择一个值时,它应该根据该选择更新文本框。组合框包含来自名为 Roles 的表中的值,该表包含该角色的角色定义和属性工资。

例如 - 假设会计主管被选中,那么薪水的文本框应该检查表格并获取与该角色相关联的薪水。我相信我的 SQL 很好,只是如何从我坚持的记录中获取价值。

谢谢

4

2 回答 2

3

你可以做

rcrd.MoveFirst
debug.print rcrd!Salary

要强制您的查询只返回一个结果,您可以添加 TOP:SELECT TOP 1 .... WHERE ... ORDER BY somethingLikeLastModified DESC

于 2013-01-21T15:49:32.887 回答
0

记录集不是从组合框将值返回到文本框的最佳方式。你的组合框大概是这样的:

 Row Source: SELECT ID, Role, Salary FROM Roles
 Column Count : 3

这意味着您可以简单地将文本框设置为:

 =ComboBoxName.Column(2) ''0 to 2
于 2013-01-21T15:57:25.503 回答