1

Microsoft Access 2007 で、手動で RecordSet オブジェクトを生成し、そのオブジェクトを Microsoft Access レポートおよびサブ レポートに渡すことはできますか?

ユーザーがボタンをクリックすると、OnClick イベントが動的に 2 つの RecordSet を作成し、Report を開き、最初の RecordSet を Report に、2 番目の RecordSet をその Report の SubReport にアタッチするフォームが必要です。そして、レポートを生成/表示します。

ありがとう。

4

1 に答える 1

1

フォームまたはレポートのレコード ソースを SQL 文字列に設定できます。OpenForm または OpenReport の WHERE 引数を使用して、既存のクエリまたはテーブルに基づいてフォームまたはレポートをフィルター処理することもできます。最後に、フォームのレコードセットを既存のレコードセットに設定できますが、これはレコード ソースを sql に設定するよりも少し複雑です。

  sSQL = "SELECT [" & Me.AField & "] FROM [" & Me.ATable & "] " _
       & "WHERE [" & MeAnotherField & "] " & Me.Operator & Me.Value

  Forms!AnotherForm.Recordsource = sSQL

切断されたレコードセット

Private Sub Form_Load()
Set rs = New ADODB.Recordset ''CreateObject("ADODB.RECORDSET")

 With rs
    'Set .ActiveConnection = cn
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
 End With

'Create arrays from the lists
asL1 = Split("a,b,c,", ",")
asL2 = Split("b,e,c,d", ",")

'Create a disconnected recordset
rs.Fields.Append "Srt", adVarChar, 25
rs.Fields.Append "L1", adVarChar, 25
rs.Fields.Append "L2", adVarChar, 25

rs.Open

'Add list 1 to the recordset
For i = 0 To UBound(asL1)
    rs.AddNew Array("Srt", "L1"), Array(asL1(i), asL1(i))
    rs.Update
Next

rs.Sort = "Srt"

Set Me.Recordset = rs
Set rs = Nothing
Set cn = Nothing
End Sub
于 2013-01-25T10:26:53.673 に答える