2013-01-21 2 views
0

이 게시물은 테이블에서 여러 레코드를 반환하는 방법에 대한 이전 게시물과 다소 비슷합니다. 그러나, 여기 나는 테이블에서 하나의 레코드 만 반환하고 싶습니다. 여기에 내가 시도 무엇 :이 뒤에테이블에서 단일 레코드 반환 Visual Basic

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이 좋다고 믿는다. 그것은 내가 붙어있는 레코드에서 값을 얻는 방법이다. 당신은 하나 개의 결과를 반환하는 쿼리를 적용하려면

rcrd.MoveFirst 
debug.print rcrd!Salary 

을 할 수

감사

답변

2

, 추가 할 수 TOP : SELECT TOP 1 .... WHERE ... ORDER BY somethingLikeLastModified DESC

+0

좋음 - 귀하의 의견에 따라 내 실수를 발견 :) 내가 틀렸다면 정정 해줘하지만, 레코드 세트를 열면 자동으로 첫 번째 레코드가 보이지 않습니다. - 정확해야합니까? – Katana24

+0

이것은 동일한 테이블 *에 기반한 콤보 상자에서 텍스트 상자에 값을 가져 오는 것에 대한 긴 방법입니다. – Fionnuala

+0

@Remou : 네 말이 맞아. 나는 무엇을, 왜 그렇게 오래 보이는지 보지 않았다. 영업 인은 솔루션을 조사해야합니다. 그는 특히 combobox 제목이있는 경우 선택한 행을 볼 필요가 있습니다. – ExternalUse

0

레코드 집합 값을 반환 할 수있는 가장 좋은 방법은 아니다 콤보 상자에서 텍스트 상자에.

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

단순히로 텍스트 상자에 설정할 수있는 의미합니다 : 귀하의 콤보는 아마도 뭔가처럼

=ComboBoxName.Column(2) ''0 to 2