2008-10-10 3 views
3

Access VBA에서 현재 레코드 형식과 관련된 테이블의 모든 레코드를 표시하는 레코드 집합을 만들려고합니다. 나의 현재 코드는 다음과 같습니다 : 내가 가장 많은 후이 새 레코드를 추가 할 때 그래서 그들이 번호가 될 수있다 순차적를하고있는 중이 야VBA에서 레코드 집합 만들기 SQL 문

Private Sub Form_Load() 

    Dim rst As Recordset 

    Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = [Forms]![Order Data Entry Header]![ID]))") 

    rst.MoveLast 
    Forms![Order Data Entry Header].LineNum = rst![Ln] 

End Sub 

. 폼을 실행할 때 "런타임 오류 : '3061'매개 변수가 너무 적습니다. 예상되는 1." 첫 번째 줄 설정.

도움을 주시면 감사하겠습니다.

답변

7

문제는 드라이버에 전달되는 문자열이 정확히 표시된다는 것입니다.

당신은과 같이 문자열을 "구축"해야합니다!

Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = " & [Forms]![Order Data Entry Header]![ID] & "))") 

시계 [양식]을 [주문 데이터 입력 헤더] [ID] 안전 내용은, 당신이 있기 때문에 있는지 확인 SQL 문 작성하기.

+1

즉, SQL을 OpenRecordset 메서드에 전달하기 전에 Access 개체에 대한 모든 참조를 확인해야합니다. –