2014-08-31 2 views
1

다중 선택 목록 상자의 열 내에서 일치하는 값을 사용하여 레코드 세트를 열고 싶습니다. 지금은 코드가 열리고 선택 항목의 마지막 레코드 만 편집되며 모든 코드를 열어 보겠습니다. 여기 내 코드입니다 : -이 링크를 클릭하면 목록 상자 http://msdn.microsoft.com/en-us/library/office/ff823015%28v=office.15%29.aspx 에서 선택한 값을 얻을 수있는 for 루프를 제안하지만 SQL 문 내에서이 작업을 수행하는 방법을 잘 모르겠습니다 또는 심지어 약을 이동해야하는지 여부를SQL 문에서 ListBox 다중 선택 값 참조

Set oRSAppt = Application.CurrentDb().OpenRecordset("Select * FROM [Appointments] WHERE [SlotID] =" & ListBox.Column(7, ListBox.ItemsSelected)) 
With oRSAppt 
    If .BOF = True And .EOF = True Then 
     MsgBox "No records found", , "Failed" 
     Exit Sub 
    Else 
    .MoveFirst 
    Do While Not .EOF 
    .Edit 
    .Fields("Status").Value = "Invoiced" 
    .Fields("InvoiceID").Value = vInvoiceID 
    .Update 
    .MoveNext 
    Loop 
    .Close 
    End If 
End With 

이 방법은 - 그리고 어쩌면 나는 방금 너무 오랫동안 이것을 보았습니다. 명백한 해결책을 놓친 것입니다. 어떤 도움을 주시면 감사하겠습니다.

답변

2

먼저 SQL 문을 작성해야하며 루프를 사용해야합니다. 이 같은 트릭을해야합니다 :

+0

정확하게 내가 필요로하는 것, 완벽하게 작동합니다 - 객체보다 DAO.Recordset가 더 낫습니까? 당신의 도움을 주셔서 감사합니다. – sigil5

+0

null 값을 처리하기 위해 If 문에 ListBox.ItemsSelected.Count = 0을 추가했습니다. – sigil5

+0

'DAO.Recordset'이 바람직합니다. itellisense 타이핑을 얻으면 추가 참조를 필요로하지 않는 변수를 명시 적으로 선언하는 것이 좋습니다. – Simon1979