Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Berichtsoptionen

Begonnen von datekk, Juli 30, 2014, 11:43:04

⏪ vorheriges - nächstes ⏩

datekk

Hallo. Ich möchte gern von einem Formular aus einen Bericht öffnen - ein Angebot. Allerdings soll man für dieses Angebot ein paar Optionen angeben können. Ich stelle mir das so vor, dass ich im Hauptformular (frm_Haupt) eine Schaltfläche betätige, worauf sich ein kleines Popup Formular (frm_Optionen) öffnet mit zwei Checkboxen und wieder einer Schaltfläche. Wenn die Checkboxen aktiviert sind, sollen im Bericht (Angebot) bestimmte Felder aus oder eingeblendet werden. Beim klick auf die Schaltfläche des Popup öffnet sich dann der Bericht und kann mit den entsprechend vorher festgelegten Layout gedruckt werden.

Wie stelle ich das via VBA Code an?

LG
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

übergib dem Bericht eine "Kennung" (Zahl oder Text) entspr. der Checkbox-Kombination über den Openargs-Parameter der Openreport-Methode. Im Bericht in dessen "Öffnen"-Ereignis(Prozedur) stellt Du entspr. der Openargs-Eigenschaft die Textfelder ein.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

:) Der Franz... Danke :)

Wie immer brauch ich mal ein konkretes Codebeispiel... Von Openargs hab ich eben zum ersten Mal gehört..

Ich dachte man kann das ggf. mit Variablen regeln welche man dann beim öffnen des Berichts abfragt. Also das Formular frm_Optionen beinhaltet z.B. die Felder ChkBox1 und ChkBox2. Deren Wert wird an eine Variable gegeben z.B. Chk1 und Chk2... beim öffnen des Berichts wird dann mittels If Routine der Zustand der Felder behandelt und entsprechend die Felder aktiviert.. also z.B.

If Chk1 = 1 Then

me.Feld1.visible = True
else
me.feld1.visible = false

End If

Ich bin bloß nicht sicher, wie ich die Variable vom Formular auf den Bericht übergebe oder bleibt diese erhalten? Oder nutzt man hier die TempVars?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

naja....

'Im Formular:

.
Sub Drucken_Click()
Docmd.Openreport "rptBericht1",,,"AngebotID =" & Me!AngebotID , Openargs:=  2 * Me!chkbox1  + Me!chkbox2   
End Sub


'und Im Bericht:

Sub Report_Open()

If not Isnull(Me.Openargs) Then

Select Me.Openargs

Case 0
'Tu das , wenn kein Haken zu sehen ist

Case -1
'Tu das, wenn nur Chkbox2 angehakt

Case -2
'Tu das, wenn nur Chkbox1 angehakt

Case -3
'Tu das, wenn beide angehakt

Case else

'tu hier am besten gar nichts mehr...

End Select

End if

End Sub
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

#4
Mh... ok.. probier ich mal aus.. aber vorher noch eine Frage....

Ich öffne ja das Optionen Formular aus dem Hauptformular heraus via

Private Sub Befehl308_Click()

DoCmd.OpenForm "frm_Optionen", acNormal

End Sub


Das Optionen-Formular enthält aber gar nicht das Feld [AngebotID] welches als Filter dienen soll. Dieses Feld befindet sich im Hauptformular. Die Funktion me.AngebotID wird hier sicher eine Fehlermeldung bringen. Wie ist dies zu lösen?

UND:

Bei der Variante der OpenArgs sieht es so aus, als ob man für jeden Fall eine Lösung braucht - also für alle "Häkchenkonstellationen". Kann man nicht jedes Häkchen für sich bewerten? Es sollen nämlich mehr werden als 2 Checkboxen.. ggf. 4 oder 6...
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

Lösung 1:  Die AngebotID wird auf die Gleiche Art und Weise an das Optionen-Formular übergeben

Lösung 2: Man bezieht sich nicht auf "Me" (das akt. Form, in dem der Code läuft, sondern mit explizter Schreibweise auf das Hauptform:

,"AngebotID =" & Forms!Hauptformular!AngebotID,


wobei ein extra Form für nur diese Optionen eher überkanditelt  ist.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

ZitatUND:

Bei der Variante der OpenArgs sieht es so aus, als ob man für jeden Fall eine Lösung braucht - also für alle "Häkchenkonstellationen". Kann man nicht jedes Häkchen für sich bewerten? Es sollen nämlich mehr werden als 2 Checkboxen.. ggf. 4 oder 6...
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

wieso wird eigentlich bei docmd.openform das Formular geöffnet und bei docmd.openreport der Bericht gedruck? Wie kann man denn eigentlich den Bericht nur anzeigen lassen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

#8
Hallo,

"drucken" ist der standard-Fall. Um den Bericht in Voransicht zu öffnen ,  heißt das so:

Docmd.Openreport "rptBericht1",acPreview,,"AngebotID =" & Me!AngebotID , Openargs:=  2 * Me!chkbox1  + Me!chkbox2   
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Hallo,
Zitat von: datekk am Juli 30, 2014, 15:41:38
wieso wird eigentlich ...
wieso schaust du dir die Beschreibung der Funktionen nicht in der Access-Hilfe an, ehe du sie benutzt?!
Freundliche Grüße
MaggieMay

datekk

Ich habe das Thema anderweitig gelöst und zwar dank Franz seinem Vorschlag, den Pfad auf die Steuerelemente der geöffneten Formulare zu nutzen. Das Funktioniert sehr gut. Somit kann ich im Bericht auf die Felder der geöffneten Formulare zugreifen und mit IF, Then, Else super arbeiten. Bei geschlossenen Formularen habe ich die Variablenfunktion Public gefunden und diese funktioniert auch super.

Danke :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps