2016-09-02 16 views
0

Ich habe den folgenden Code, um Produktinformationen aus einem Angebot in ein Leasingqualifikationsformular zu verschieben. Die Produkte wechseln zu einem Unterformular, das sich in der Datenblattansicht befindet. Jede Zeile im Recordset aktualisiert jedoch nur die erste Zeile des Unterformulars.So fügen Sie ein DAO-Recordset als Zeilen in einem Datenblatt-Unterformular hinzu

Wie kann ich jeden Datensatz im Dataset eine neue Zeile im Unterformular aktualisieren lassen?

+0

Anstelle der Verwendung von 'Set rs = CurrentDb.OpenRecordset (SQL)', warum Sie nicht verwenden 'Set rs = db.OpenRecordset()'? – Barranka

+0

Ja, das ist ein guter Gedanke. Das könnte ich machen. Ich habe diese Veränderung gemacht. – Hawsidog

Antwort

1

Okay, ich konnte DoCmd.GoToRecord ,, acNewRec verwenden und meine Bedürfnisse erfüllen.

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 
Verwandte Themen