MS Access 2003- 정보 전달에 대한 질문에 대한 질문
-
20-09-2019 - |
문제
아래와 같은 것을 사용하여 하나의 무부애 양식에서 다른 양식으로 정보를 전달합니다 (실례하지 않음 확인) : 다음과 같습니다.
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에서 보고서를 열면 사실 이후 해당 텍스트 상자에 정보를 추가 할 수 없지만 확실하지 않습니다. 따라서 이것에 대한 조언은 대단히 감사합니다. 감사해요!
해결책
몇 가지 옵션이 있습니다. 쿼리를 생성하고 양식 컨트롤 값을 값으로 전달하여 1 개의 레코드 쿼리를 만들어 보고서를 기반으로 할 수 있습니다.
각 열은 다음과 같습니다. 데이터 : 양식! [myform]! [myControl
또는 양식에서 컨트롤을 보고서 컨트롤에 직접 바인딩 할 수 있습니다.
이 경로 중 하나를 선택하면 보고서가 열리는 동안 값이 포함 된 양식을 열어야합니다. 복잡한 코드가 필요하지 않습니다.
다른 팁
뭔가 빠진 것 같아요. 왜 보고서의 레코드 소스가 Form의 레코드 소스와 동일하게 한 다음 런타임을 Docmd.openReport의 wherecondition 인수의 특정 메인으로 필터링하지 않습니까? 그런 다음 양식을 열 필요없이 보고서를 실행할 수 있습니다.
양식이 결합되지 않거나 즉석에서 계산하는 데 비용이 많이 드는 필드가 없다면 보고서를 양식에 전혀 바인딩하는 이점을 볼 수 없습니다.