2016-09-02 1 views
0

영업 견적에서 임대 자격 양식으로 제품 정보를 이동하는 데 필요한 다음 코드가 있습니다. 제품은 데이터 시트보기에있는 하위 폼으로 이동하지만 레코드 집합의 각 행은 하위 폼의 첫 번째 행을 업데이트합니다.DAO 레코드 집합을 데이터 시트 하위 폼의 행으로 추가하는 방법

sql = "SELECT ProdID, ProdQty, ProdPrice FROM ProductsQuoted WHERE quoteID = " & quoteeID 
    Set db = CurrentDb 
    Set rs = CurrentDb.OpenRecordset(sql) 

    If Not (rs.EOF And rs.BOF) Then 
    rs.MoveFirst 
    Do Until rs.EOF 
     [Forms]![Qualification]![QualificationDetails]![Item] = rs.Fields("ProdID").Value 
     [Forms]![Qualification]![QualificationDetails]![Qty] = rs.Fields("ProdQty").Value 
     [Forms]![Qualification]![QualificationDetails]![Price] = rs.Fields("ProdPrice").Value 
     rs.MoveNext 
    Loop 
    End If 

어떻게 데이터 집합의 각 레코드를 하위 폼의 새 행으로 업데이트 할 수 있습니까?

+0

= CurrentDb.OpenRecordset (SQL)', 왜 사용하지 않는'설정 RS = db.OpenRecordset()'? – Barranka

+0

예, 좋은 생각입니다. 나는 그것을 할 수 있었다. 나는 그 변화를 만들었습니다. – Hawsidog

답변

1

좋아, 나는 DoCmd.GoToRecord ,, acNewRec을 사용할 수 있었고 나의 필요를 채울 수 있었다. 대신`설정 RS를 사용

sql = "SELECT ProdID, ProdQty, ProdPrice FROM ProductsQuoted WHERE quoteID = " & quoteeID 
    Set db = CurrentDb 
    Set rs = db.OpenRecordset(sql) 

     If Not (rs.EOF And rs.BOF) Then 
     rs.MoveFirst 
     Do Until rs.EOF 
      Debug.Print rs.Fields("ProdID") & ", " & rs.Fields("ProdQty") & ", " & rs.Fields("ProdPrice") 
      QualificationDetails.SetFocus 
      QualificationDetails!Item.SetFocus 
      DoCmd.GoToRecord , , acNewRec 
      [Forms]![Qualification]![QualificationDetails]![Item] = rs.Fields("ProdID").Value 
      [Forms]![Qualification]![QualificationDetails]![Qty] = rs.Fields("ProdQty").Value 
      [Forms]![Qualification]![QualificationDetails]![Price] = rs.Fields("ProdPrice").Value 
      rs.MoveNext 
     Loop 
    End If 
관련 문제