2016-04-15 2 views
0

私は報告のためのボタンを持っているフォームを持っています。私はReport.Recordsourceを画面上の何にでも設定したいので、基本的には.RecordsetCloneをReportに送る必要があります。ここで私が試したことはありますが、動作しません:アクセスレポート - Recordsetclone as。 Recordsource

Me.Recordsource= Forms!Myform.RecordsetClone 

無効な引数があります。任意のアイデアをどのようにこれを解決するには?

EDIT:

私もこれを試してみました - このボタンは、レコードを持っているとレポートを開き、フォーム上に配置されて:あなたはそれを行うことはできません

Private Sub cmdOpenReport_Click() 

DoCmd.OpenReport "MyReport", acViewReport 
    Reports![MyReport].RecordSource = Me.RecordSource 
Reports![MyReport].Filter = Me.Filter 
Reports![MyReport].FilterOn = True 

End Sub 
+0

'Recordsource'は文字列(クエリまたはSQL)を要求します。あなたは 'Set Me.Recordset = Forms!Myform.RecordsetClone'を試すことができますが、これがうまくいくかどうかはわかりません。 – Andre

+0

@Andre、これをReport_Openイベントに貼り付けると、「この機能はADPでのみ利用可能です」というエラーが表示されます。それは動作しませんように見えます。 – LuckyLuke82

答えて

0

グスタフは、これが正解です。私はそれのために別のスレッドを開いたが、私は何が間違っているのか、どこに気づいていなかった。クロスポストをして申し訳ありません。ここに私のスレッドへのリンクです: Access Report - show current recordsource of another form

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 & ") 

モデレーターをスレッドのいずれかを削除することができますが、私はそれを行うことはできません。

0

、しかし、あなたが逃げることがあります。

Me.RecordSource = Forms!Myform.RecordSource 

ただし、フォームに適用されるフィルタは含まれません。しかし、フィルターはその後、同じようにコピーし、することができます。

Me.Filter = Forms!Myform.Filter 
Me.FilterOn = True 

レポートに通常の方法を指定する必要があり仕分けながら。コンセプトの

証明

Private Sub Report_Open(Cancel As Integer) 

    If MsgBox("Mod 2?", vbQuestion + vbYesNo, "Select") = vbYes Then 
     Me.RecordSource = "Select * From TestTable Where Id Mod 2 = 0" 
    End If 

End Sub 
+0

Gustav、Report_Openイベントでどこでどのようにこれを試してみるべきですか?私は試しましたが、何も起こりません。または、私はbutton_clickイベントで何かをしなければならないのですか?私はレポート(DoCmd.Openreport、 "myReport"、AcViewPreview)を開きます – LuckyLuke82

+0

私はクリックイベントを使用しますが、 'Me'を' Reports.No'に置き換えなければなりません。 – Gustav

+0

私の編集した質問をチェックしてください。動いていない。いくつかの空白の連続フォームでテストを試してみてください - 2行を入力し、フォームを閉じずにレポートを開いて2行を表示すると、最後に保存されたレコードは1つだけ表示されます。 – LuckyLuke82

関連する問題