1

この投稿は、テーブルから複数のレコードを返す方法に関する私の以前の投稿にいくぶん似ています。ただし、ここでは、テーブルから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

この背後にある基本的なロジックは、ユーザーがコンボボックスで値を選択すると、その選択に従ってテキストボックスを更新する必要があるということです。コンボボックスには、ロールと呼ばれるテーブルの値が含まれています。このテーブルには、ロールの定義とそのロールの給与が含まれています。

たとえば、会計士の頭が選択されている場合、給与のテキストボックスでテーブルを調べて、その役割に関連付けられている給与を取得する必要があります。私のSQLは問題ないと思います。それは、私が立ち往生しているレコードから値を取得する方法です。

ありがとう

4

2 に答える 2

3

できるよ

rcrd.MoveFirst
debug.print rcrd!Salary

クエリが 1 つの結果のみを返すように強制するには、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 に答える