LuckyLuke82
LuckyLuke82

Reputation: 604

Access Report - show current recordsource of another form

I have a report that displays another form's recordsource. When I add some record on this form and click for report, this records is not being displayed. How can I achieve displaying what is on screen - allways ? Here is my simple code for report:

Private Sub cmdOpenReport_Click()

   DoCmd.OpenReport "MyReport", acViewReport

End Sub

Private Sub Report_Open(Cancel As Integer)

   Me.RecordSource = Forms![MyForm].Form.RecordSource

End Sub

Upvotes: 0

Views: 763

Answers (3)

LuckyLuke82
LuckyLuke82

Reputation: 604

I have an answer, I knew It's not so easy (in click event of OpenReport button):

Dim strWhere As String

    Me.Dirty = False

    With Me.Recordset.Clone
        Do Until .EOF
            strWhere = strWhere & "," & !ID
            .MoveNext
        Loop
    End With
    strWhere = Mid(strWhere, 2)
    DoCmd.OpenReport "MyReport", acViewReport, WhereCondition:="ID In (" & strWhere & ")

Answer provided by Leigh Purvis (Access MVP), a BIG thanks once more !!

Upvotes: 0

Anthony Griggs
Anthony Griggs

Reputation: 1641

Try requerying your Forms Recordset before opening the report:

Private Sub cmdOpenReport_Click()
   Me.FilterOn = False
   Me.Requery
   DoCmd.OpenReport "MyReport", acViewReport
End Sub

Upvotes: 0

ron tornambe
ron tornambe

Reputation: 10780

You need to close the Report before re-opening it and save the new record.

In the click event of your Open Report button insert the following:

Private Sub OpenReport_Click()

    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.Close acReport, "Test1", acSaveYes
    DoCmd.OpenReport "Test1", acViewPreview

End Sub

Upvotes: 0

Related Questions