문제

아래와 같은 것을 사용하여 하나의 무부애 양식에서 다른 양식으로 정보를 전달합니다 (실례하지 않음 확인) : 다음과 같습니다.

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 인수의 특정 메인으로 필터링하지 않습니까? 그런 다음 양식을 열 필요없이 보고서를 실행할 수 있습니다.

양식이 결합되지 않거나 즉석에서 계산하는 데 비용이 많이 드는 필드가 없다면 보고서를 양식에 전혀 바인딩하는 이점을 볼 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top