2016-09-02 9 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

の代わりに 'を設定し、RSを使用して= CurrentDb.OpenRecordset(SQL)'、なぜあなたは ''セットRS = db.OpenRecordset()を使用しないのですか? – Barranka

+0

はい、これは良い考えです。私はそれをすることができた。私はその変更を行った。 – Hawsidog

答えて

1

私はDoCmd.GoToRecord ,, acNewRecを使用して、私の必要性を満たすことができました。

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 
関連する問題