여기 내 질문 : 나는 메인 폼 내부에 하위 폼이 있습니다. 기본 폼에는 고객 번호가 들어 있고 하위 폼에는 해당 고객의 주문이 들어 있습니다. 따라서 한 고객이 여러 주문을 할 수 있습니다. 나는 그 고객을 위해 다음 순서로 이동했을 때 buttom을 만들고 싶다. 나는 아무 문제가 코드와 함께이 일을하지가 : 그 고객의 마지막 순서에 도착하면 나는 문제가서브 폼, VBA 액세스 2010의 레코드를 통해 루프하는 방법
Private Sub next_comp_Click()
[Forms]![Customer]![Order Subform].SetFocus
DoCmd.GoToRecord , , acNext
end sub
입니다. 첫 번째 순서로 돌아가고 싶습니다. 이렇게하려면이 코드를 사용 : 주석 처리 된 코드와 같이
Private sub next_comp_click()
[Forms]![Customer]![Compressor Subform].SetFocus
Dim dbcustomer As Database
Dim rstorder As Recordset
Set dbcustomer = CurrentDb
Set rstorder= dbcustomer.OpenRecordset("orders", dbOpenSnapshot)
With rstEmployees
If .AbsolutePosition = - 1 Then
MsgBox (.RecordCount)
'DoCmd.GoToRecord , , acFirst
Else
DoCmd.GoToRecord , , acNext
End If
End With
end sub
내가 오전 어떤 기록을 내기 위해 디버그의 종류 MsgBox 함수를 사용하는을 (궁극적으로 내가 다시 첫 번째 레코드로 루프를 원하는),하지만 어떤 이유로, 그것은 내가 첫 번째 레코드에 있다는 것을 알려줍니다. 즉, RecordCount가 1이라고합니다. 즉, 내가 작업중인 레코드의 대부분이 여러 개의 주문을 가지고 있기 때문에 이렇게되지 않아야합니다. 조건을 .AbsolutePosition = 3과 같은 것으로 변경하면 마지막 또는 빈 레코드에 도달 할 때까지 레코드가 다음 레코드로 이동하고 거기에서 다음을 클릭하면 런타임 오류 '2105'가 표시됩니다. 지정한 레코드로 이동할 수 없습니다.
문제는 .AbsolutePositon 속성이 올바른 양식이나 테이블을 찾지 못한다고 생각합니다. 그러나 모든 대답은 크게 감사 할 것입니다.
미리 감사드립니다.
코드는 rstorder가 아니라 rstEmployees를 나타냅니다. 그러나 실제 * 코드를 게시해야합니다. –