2016-06-08 2 views
0

각 프로젝트의 모든 부품을 저장/구성하기 위해 Access 데이터베이스를 사용하고 있습니다. 2 개의 콤보 박스가 올바르게 설정되고 작동합니다. 첫 번째는 Customer Name이며, 두 번째 콤보 박스를 선택하면 해당 고객의 일련 번호 (프로젝트 ID 번호) 목록이 채워집니다. 각 프로젝트에는 보고서가 인쇄되어야하는 몇 가지 구성 요소가 있습니다.콤보 박스 선택을 기반으로 올바른 보고서를 엽니 다.

대부분의 구성 요소 세부 정보가 별도의 다른 테이블에 나열되어 있으므로 구성 요소 번호는 해당 구성 요소 번호가있는 테이블과 상호 참조되어야하며 해당 보고서를 가져와야합니다.

이것은 콤보 상자가 정보를 가져 오는 테이블입니다. 먼저 고객 이름과 해당 고객과 관련된 일련 번호. 거기에서 관련 CATALOG 번호가있는 USER3 테이블의 보고서를 원합니다.

enter image description here

예를 들어, 여기 내 콤보 상자의 선택입니다 :

CUSTOMERNAME - CIPLA 나에게 하나 EF-1092,96, 99

내가 선택 일련 번호의 SerialNumbers을 줄 것이다 선택 EF- 1096 next - USER3의 MV 테이블에있는 EDF50-00170, FIL 테이블에 EDF12-01114 및 EDF12-00532 (테이블이 지정되지 않음) CATALOG 번호가 있습니다.

그래서, EDF50-00170를 들어, 여기에 내가합니다 (MV 보고서가 자동으로 포함) 그것에서 원하는 모든 정보와 함께 MV 표입니다 : 여기 enter image description here

그리고 해당있어 보고 :

enter image description here

는 지금 까다 롭습니다 EDF50-00170, EDF12-01114 및 EDF12-00532 보고서가 수동으로 모든 것을 찾아야하는 대신 시스템에서 자동으로 가져와야하는 부분. 이것은 수동 벨브 (위 그림 참조), 필터 및 기타 각 범주의 카탈로그 번호가 모두 포함 된 보고서입니다. ,

If partnumberselect.RowSource = "MV" Then 
    DoCmd.OpenReport "RPTManualValve", acViewPreview, , "CATALOG = '" & Me.partnumberselect.value & "'" 

이 요약 :

은 이미 이전의 콤보 설정에서 이와 같은 각각의 보고서에 연결된 테이블을 모두 가지고 있고, 나는이 새로운 하나를 가정하고있어 유사 할 것이다 특정 일련 번호와 관련된 보고서 그룹이 필요합니다. 미리 감사드립니다. 죄송하지만이 질문에 대한 답변은 오래되었습니다. 메시지 상자 미리보기

+0

를 잘 설명한다, 바로 지금 당신을 도울 너무 혼란 .. 나는 사용자 3/보고서 이름에 대한 조회 테이블이있을 수 있다고 생각 그건 당신을 많이 도울 것입니다. 그러나 문제가 어떻게 생겼는지 정말로 모르겠습니다. 어쩌면 다른 테이블과 관련 필드를 보여 주면 도움이 될 것입니다. – dbmitch

+0

@dbmitch 더 많은 그림을 추가하고 최선을 다해 설명하려고했습니다.호프가 도움이됩니다, 다시 감사합니다 – cdomination

+0

'올바른 보고서'를 말하면 보고서를 적절히 필터링하거나 실제로 다른 보고서 개체를 가지고 있다는 뜻입니까? – SunKnight0

답변

1
Dim ThisDB As DAO.Database 
Dim d As DAO.Recordset 
Dim q As String 

Set ThisDB = CurrentDb 
q = "SELECT CATALOG, User3 FROM [mainSourceTableName] WHERE SerialNumber='" & Me.[SerialNumberSelected] & "'" 
Set d = ThisDB.OpenRecordset(q, dbOpenDynaset) 
d.MoveFirst 
Do While Not d.EOF 
    Select Case d!User3 
     Case "MV" 
      Rem Print MV Report for d!CATALOG 
     Case "FV" 
      Rem Print FV Report for d!CATALOG 
     Rem same for other tables/reports 
     End Select 
    d.MoveNext 
    Loop 
d.Close 

예 :이로

DoCmd.OpenReport "RPTManualValve", acViewPreview, , "CATALOG = '" & d!CATALOG & "'" 
MsgBox "Test" 
DoCmD.Close acReport,"RPTManualValve" 
+0

고맙습니다. 유망 해 보입니다. 렘 프린트 섹션에 무엇을 넣을까요? 'DoCmd.OpenReport "RPTManualValve"for d! CATALOG'? – cdomination

+0

올바른 보고서가 열리지 만 필터가 작동하지 않습니다 (선택한 테이블 대신 MV 테이블의 모든 구성 요소가 표시됨). 데이터베이스 이름은 "default_cat"이고 기본 테이블은 "_MASTER_UPLOAD"이며 콤보 상자 이름은 각각 "CustomerSelection"및 "SerialNumberSelection"입니다. – cdomination

+0

또한, 내가 작동 시키려고 노력하는 방법에 상관없이, 'for'를 좋아하지 않는다. 'd! CATALOG = Something'과 같은 비교 조건을 기대하고있다. 지금까지 모든 도움에 감사드립니다. 내 문장은 이제 다음과 같이 보입니다. : "Case"MV " DoCmd.OpenReport"RPTManualValve ", acViewPreview,"CATALOG = ""& d! CATALOG & " '"'. 그러면 해당 유형의 FIRST 카탈로그 번호가있는 올바른 보고서가 열립니다. 이제 우리는 그 유형의 나머지 모든 보고서가 나타나기 만하면됩니다. 어쩌면 카운터가 있을까요? – cdomination

관련 문제