2012-08-22 3 views
1

여러 콤보 상자와 텍스트 상자가있는 단일 양식이 있습니다. 웰스에 대한 하나의 콤보 상자 값이 독립적으로 채워지면 웰스 콤보 상자 값의 값을 기반으로 값을 갖기 위해 텍스트 상자가 필요합니다. 나는 부분적으로 방정식을 풀어내는 쿼리를 만들었고 우물 콤보 상자 값과 같은 매개 변수가 필요합니다. 양식의 일부를 쿼리하여 실행 한 경우 매개 변수를 묻는 메시지가 나타나고 확인 메시지가 표시됩니다. 나는 VBA를 사용하고, SELECT 문을 처리하는 코드를 추가 한 다음 (위에서 언급 한 쿼리에서) 폼에 준비 될 wells 콤보 값에서 매개 변수를 가져 오도록 지시합니다.텍스트 상자에 쿼리를 사용하여 콤보 상자 값을 기반으로하는 값이 있습니다.

누군가가이를 도와 줄 수 있습니까? 이 말은 내가 설명한대로 작동 할 수 있습니까?

미리 감사드립니다.

Private Sub Well_ID_Change() 
Last_Ref.ControlSource = " SELECT TOP1 New_Ref FROM" & _ 
" BSW_Transactions WHERE BSW_Transactions.New_Ref Is Not Null AND BSW_Transactions.Well_ID = " & Me.Well_ID.Value & _ 
" ORDER BY BSW_Transactions.Sample_Date DESC" 
End Sub 

Last_Ref 내가 코드에 포함 된 SELECT 문의 결과를 기입 할 텍스트 상자는 다음과 같습니다

모하메드 위 내 질문에 또한

, 나는 다음과 같은 솔루션을 시도 . Well_ID는 값이 SELECT 문의 매개 변수가되는 콤보 상자입니다. Well_ID는 숫자 필드이며 well_name을 표시하고 연관된 ID 값을 테이블에 저장합니다. 변경 내용을 저장 한 후 양식을 실행하면 Last_Ref 텍스트 상자에 (#Name?)이 나타납니다. 나는 텍스트 상자 (숫자 필드)가 콤보 상자 Well_ID에 텍스트를 찾았으므로 위의 구문에 ".Value"를 추가했습니다. 기준은 Me.Well_ID입니다. 그러나 문제는 여전히 존재합니다.

구문에서 실수를 범할 수 있습니다. 누군가이를 도와 줄 수 있습니다. 이게 제대로 작동 할 수 있습니까?

미리 감사드립니다.

Private Sub Well_ID_Change() 

Dim rs As Recordset  

Set rs = CurrentDb.OpenRecordset("SELECT TOP1 [New_Ref] FROM" & _ 
" [BSW_Transactions] WHERE [BSW_Transactions].[New_Ref] Is Not Null" & _ 
" AND [BSW_Transactions].[Well_ID] = " & Me.Well_ID & _ 
" ORDER BY [BSW_Transactions].[Sample_Date] DESC", dbOpenSnapShot) 

rs.MoveFirst 
Last_Ref = rs![New_Ref] 
rs.Close 
Set rs = Nothing 

End Sub 

나는 또한 .Value 하락했습니다 텍스트 상자가 자신의 제어 소스가 콤보 상자 나 목록 상자 같은 설정 할 수 모하메드

+0

순서 1과 일치하는 항목이있을 때 상위 1 개 레코드는 더 많은 레코드를 반환 할 수 있습니다. 이 작업을 제대로 수행하려면 시스템에 둘 이상의 사용자를 가질 수 없으며, 그렇지 않으면 Person B가 Person A가 작동하는 동안 새 트랜잭션을 수행 할 수 있습니다. 나는 디자인 문제가 있을지도 모른다라고 생각한다. – Fionnuala

답변

0

문제는, 그것은 가치 등을 통과해야 콤보 상자에서 다시 필요하지 않습니다.

+0

모두가 조금 걱정스러워 보이지만, OP가이 일을해야한다고 느낀다면 DMax가 다른 것만큼이나 유용 할 것입니다. – Fionnuala

+0

@Remou 예, 나는 또한 나쁜 디자인이 될 수 있다고 말한 것처럼 질문에 조금주의했습니다. 필자는 D 함수를 통해 이것을 선택했습니다. 하나 이상의 매개 변수가있는 경우에는 실제로 작업하기를 좋아하지 않았기 때문입니다. –

+0

@Matt Donnan, 귀하의 솔루션을 시도했지만 VBA에서 다음과 같이 구문 오류 메시지가 표시되어 실패했습니다. 런타임 오류 (3075) 구문 오류가 쿼리 식 'TOP1 New_Ref'에 연산자가 없습니다. 당신은 – mhegazy

관련 문제