私は以下のようなものを使用して、バインドされていないフォームから別のフォームに情報を渡します(エラーチェックがないことをお許しください)。
Sub Button_Click()
Dim db as DAO.database
Dim rs as DAO.recordset
Dim sql as string
docmd.openform "NextFormIamAbouttoUse"
sql = "SELECT * FROM tblMain WHERE MainID = " & Me.As_MainID & ";"
' usually debug here
set db = currentdb
set rs = db.openrecordset(sql)
if rs.eof then
msgbox "oops message"
else
rs.movefirst
[Forms]![NextFormIamAbouttoUse].as_mainID = rs![MainID]
[forms]![NextFormIamAbouttoUse].value1 = rs![value1]
' etc
rs.close
set db = nothing
set rs = nothing
sql = ""
end if
'error stuff
end sub
わかりました。フォームからレポートに情報を転送するためにも、この種のものを使用できますか?テキストボックスでいっぱいのフォームをダッシュボードとして使用しているのを参照してください。テキストボックスは入力目的ではなく、クイック情報を表示します。
ユーザーはさまざまなフォームをナビゲートして「ダッシュボードのような」フォームを好みに合わせて作成し、ある時点で印刷したいと考えます。そのため、これらのフォームを介して作成した情報のページを印刷できるように、各ポイントで(提供されるデータの観点から)類似したレポートを作成したいと思いました。
だから私はレポートでこれをやろうとしました:
Sub Button_Click()
Dim db as DAO.database
Dim rs as DAO.recordset
Dim sql as string
docmd.openreport "ReportTester", acViewPreview
sql = "SELECT * FROM tblMain WHERE MainID = " & Me.As_MainID & ";"
' usually debug here
set db = currentdb
set rs = db.openrecordset(sql)
if rs.eof then
msgbox "oops message"
else
rs.movefirst
[reports]![ReportTester].as_mainID = rs![MainID]
[reports]![ReportTester].value1 = rs![value1]
' etc
rs.close
set db = nothing
set rs = nothing
sql = ""
end if
'error stuff
end sub
推測通り、それは機能しませんでした。エラーなどはありません。この方法では情報は表示されません。ID番号も渡さない。
したがって、AcViewPreviewでレポートを開くということは、事後にそれらのテキストボックスに情報を追加できないことを意味すると思いますが、確信はありません。したがって、これに関するアドバイスは大歓迎です。ありがとう!