ingchris
Goto Top

Access 2010 - Bericht sofort ohne Öffnen des Druckermenüs drucken

Hallo,

Bin derzeit dabei von Access 2003 (auf Terminalserver 2003) auf Access 2010 (auf Terminalserver 2008 R2) umzustellen.

Habe testweise meine Access 2003-DB in Access 2010 importiert.
Wenn ich einen bereits in Access 2003 erstellten Bericht über eine Bef.schaltfläche in einem Formular ausdrucke, wird dieser sofort gedruckt (OHNE Öffnen des DruckerMenüs)

Erstelle ich nun in Access 2010 einen Bericht und drucke diesen über eine Bef.schaltfläche in einem Formular aus, so wird jedesmal
das Druckermenü geöffnet (ist ja jetzt nicht unbedingt ein Nachteil, da man zu diesem Zeitpunkt noch einen anderen Drucker auswählen kann, aber doch nicht immer gewünscht) und erst nach Bestätigung gedruckt.
Genau diese Funktion möchte ich aber für manche Berichte nicht, d.h. ich möchte auch - bestimmte, aber nicht alle - Access2010 - Berichte - ohne weitere Bestätigung - sofort drucken.

Ich nehme mal an, daß es eine Option gibt, wo mann festlegen kann, ob das Druckermenü vor dem Drucken - für einen betimmten Bericht - geöffnet werden soll oder nicht.
Habe es allerdings in Access (bei den Berichts-Einstellungen oder Seite einrichten - ich muss zugeben ich habe schon einige Zeit gesucht bis ich überhaupt die Option "Seite einrichten" fand) nicht gefunden...

Langer Rede, kurzer Sinn...
Kann mir jemand sagen, wo ich in Access 2010 einstellen kann, daß Berichte OHNE Öffnen des Druckermenüs sofort gedruckt werden (und zwar individuelle Festlegung für jeden Bericht!) ?


LG IngChris

Content-ID: 147045

Url: https://administrator.de/contentid/147045

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

NetWolf
NetWolf 16.07.2010 um 19:52:26 Uhr
Goto Top
Hallo IngChris,

bei einem Bericht hast du die Auswahl (Seite einrichten): Standard Drucker oder spezieller Drucker

Ist im System kein Standarddrucker definiert, kommt die Auswahl.
Wurde im Bericht ein spezieller Drucker definiert, der nun nicht mehr vorhanden ist, kommt die Auswahl.

Ich gehe mal davon aus, dass keine extra Programmierung für die Druckausgabe existiert.
Hilfreich wäre der Code hinter dem Button.

Grüße aus Rostock
Wolfgang
(Netwolf)
IngChris
IngChris 17.07.2010 um 13:28:59 Uhr
Goto Top
Hallo Beowulf,

Nur zur Info: Meine Datenbank habe ich bereits unter Access 97 begonnen, auf Access 2000 - Format adaptiert (läuft derzeit unter Access 2003), Access 2007 "ignoriert", nun soll der Sprung auf Access 2010 erfolgen.

Ich weiß nicht, ob Du Access 2010 in Verwendung hast, aber ich versuchs mal zu beschreiben (aber den Code hinter dem Button gibt´s hier so nicht wie bei Access 2003) ...
Das ganze ist unabhängig, ob Standarddrucker oder spezieller Drucker, es hängt anscheindend damit zusammen wie die entspr. Befschaltfläche im Formular erzeugt wird.

Wenn ich - in Access 2010 -in einem Formular die Befehlsschaltfläche für das Drucken des Berichts komplett über den "Befehlschaltflächen-Assistenten" erstelle und dann auf die Befschaltfläche klicke wird immer vor dem Drucken das Druckermenü geöffnet.
(D. h. Formular im Entwurfmodus, über Steuerelemente im Ribbon das Element Befehlschaltfläche auswählen Berichtsoperationen/Bericht drucken entspr. Bericht auswählen).

Wenn ich dann die Eigenschaften der Befschaltfläche anklicke --> unter Ereignis / Beim Klicken steht hier unter Access 2010 "[Eingebettetes Makro]", Klicke ich auf die 3 Punkte "..." dann wird die - völlig neue - Makro - Oberfläche geöffnet, hier wird - soweit ich die Syntax mal verstehe - der "Bericht in der Seitenansicht geöffnet" und der Menübefehl "Drucken Objekt" ausgeführt. Das führt anscheinend dazu daß das Druckermenü vor dem Drucken geöffnet wird. (verhält sich also so, wie wenn ich über Datei /drucken den entspr. Bericht ausdrucken will)

Ersetze ich das "[Eingebettetes Makro]" durch "[Ereignisprozedur]" und füge folgenden Code ein, dann erfolgt der Druck wie schon unter Access 2003 sofort (ohne Öffnen des Druckermenüs).

Dim stDocName As String

stDocName = "Bericht_Test_Standarddrucker"
DoCmd.OpenReport stDocName, acNormal

Das ist genau der Code "[Ereignisprozedur]", den Access 2003 erzeugt, wenn ich dort eine Befschaltfläche über den Befschaltflächenassistenten erzeuge.

Der Unterschied zw. Access 2003 und Access 2010 ist anscheinend folgender:
Access 2003: erzeugt über den Bef.schaltflächenassistenten eine "Ereignisprozedur" mit obigen Code der bei Klicken der Bef.schaltfläche ausgeführt wird, Druck wird sofort ausgeführt.
Access 2010: erzeugt über den Bef.schaltflächenassistenten ein "Eingebettetes Makro", wo entspr. Makrokommandos für Seitenansicht und Drucken hinterlegt sind, Druck wird erst ausgeführt nachdem das Druckermenü geöffnet wurde.

Ich habe noch nicht herausgefunden, ob man bei Access 2010 bei Nutzung der Assistenten (z.B. Bef.schaltflächen-Assistent) angeben kann, daß genau so wie bei
Access 2003 eine entspr. "[Ereignisprozedur]" erzeugt wird und NICHT "[Eingebettetes Makro]

Hast Du eine Ahnung?

PS: Generell geht´s mir wahrscheinlich so wie vielen anderen, die von der 2003er -Oberfläche auf Access 2010 umsteigen (wollen/müssen).
- alles geht irgendwie langsamer
- Ich suche ständig, wo die entspr. Befehle / Funktionen versteckt sind.
- Office 2010 dürfte zwar ein bisschen schneller als Office 2007 sein, ist aber im Vergleich zu Office 2003 ein enormer "Performance-Fresser"!

Genauso geht´s mir, wenn ich den Terminalserver 2003 mit dem Terminalserver 2008 R2 vergleiche.

Meine persönliche Meinung:
Allen, die so ein komplexes Projekt vorhaben, würde ich empfehlen auf die entspr. 1. Servicepacks (sowohl Access 2010 als TS 2008 R2) zu warten und viel Zeit und Geduld einzuplanen...


LG Ingchris
-
IngChris
IngChris 17.07.2010 um 15:27:15 Uhr
Goto Top
Also ich hab´ das Makro, daß von Office 2010 generiert wird, in VBA konvertiert

Liefert folgendes Ergebnis:

DoCmd.OpenReport "Bericht_Test_Standarddrucker", acViewPreview, "", "", acNormal
DoCmd.RunCommand acCmdPrint

bedeutet:
Bericht in Seitenansicht öffnen
Bericht drucken --> in diesem Fall wird vor dem Drucken das Druckermenü geöffnet

mit folgender Anweisung kann man ohne Druckermenü öffnen sofort drucken:

DoCmd.OpenReport "Bericht_Test_Standarddrucker", acViewNormal

Das ganze funktioniert bereits in Access 2003 genauso (hab´s mir gerade nochmal angesehen - aufgefallen ist mir nur, daß es in meiner Konfiguration einige Sekunden dauerte, bis daß das Druckermenü geöffnet wurde, die Syntax variiert auch etwas, d.h."acNormal" ist das gleiche wie "acViewNormal")

D.h wie schon vorher vermutet ...
Der Unterschied zw. Access 2003 und Access 2010 ist:
Access 2003: erzeugt über den Bef.schaltflächenassistenten eine "Ereignisprozedur" die sofort druckt
Access 2010: erzeugt über den Bef.schaltflächenassistenten ein "Eingebettetes Makro" und der Druck wird erst ausgeführt nachdem das Druckermenü geöffnet wurde.

Aber sowohl in Access 2003 und Access 2010 sind beide Varianten per VBA-Code (bzw. nehm ich auch an per Makro) umsetzbar.

Ich glaube mich zu erinnern, daß ich im Internet gelesen habe, daß man mit der geänderten Makro-Programmierung in Access 2010 den (unerfahrenen) Anwender den Einstieg in die VBA-Programmierung erleichtern möchte, aber ich möchte eigentlich all meine Makros loswerden bzw. durch VBA-Code ersetzen!

Mich würde jetzt immer noch interessieren, ob man trotzdem in Access 2010 den Bef.schaltflächen-Assistent dazu bringen kann, direkt VBA-Code zu erzeugen und NICHT Makros !?


LG IngChris


PS: Ich kann mich dunkel erinnern, früher - ich nehme an bis access 2000 - konnte man das Druckermenü vor dem Drucken NICHT öffnen, eine Änderung des Druckers unmittelbar vor dem Ausdrucken war da seinerzeit nicht möglich, da funktionierte generell immer nur der Standarddrucker od. ein im Bericht (im Entwurfsmodus) speziell zugewiesener Drucker.
Ich dachte mir daß eine Druckerzuweisung vor dem Ausdrucken auch in Access 2003 noch nicht funktioniert, da habe ich mich wohl geirrt.
NetWolf
NetWolf 18.07.2010 um 13:15:51 Uhr
Goto Top
wer ist Beowulf?

Hallo IngChris,

Mich würde jetzt immer noch interessieren, ob man trotzdem in Access 2010 den Bef.schaltflächen-Assistent dazu bringen
kann, direkt VBA-Code zu erzeugen und NICHT Makros !?

DAS ist die -auch in meinen Augen- negativste Änderung von Access 2007/2010.
Mir ist kein "Schalter" bekannt, wo man das umstellen kann, außer du machst es jedes mal manuell selber, also nicht über den Assistenten.

Da Access 2010 einige in Access 2007 lieb gewonnene Features nicht mehr hat, sehe ich z.Z. keinen Grund umzusteigen.


Grüße aus Rostock
Wolfgang
(Netwolf)
IngChris
IngChris 19.07.2010 um 09:29:35 Uhr
Goto Top
Hallo NETWolf,

Sorry, hab mich bei der Anrede wohl verschrieben (Beowolf ist ein Kinofilm, aber 20 J. Computerarbeit hinterlassen ihre Spuren ...)

Dann hinterlege ich den VBA-Code halt manuell, halt ich aus ...

Mich erschreckt nur das: Wenn´s jetzt schon etliche Features von Access 2007 nicht mehr gibt, dann wird ja auf mich bei der Umstellung von Access 2003 auf Access 2010 noch einiges an Überraschungen kommen (wollen wir mal hoffen, daß beim SP1 für Office 2010 noch einige Optimierungen kommen)...

LG IngChris
NetWolf
NetWolf 19.07.2010 um 19:35:05 Uhr
Goto Top
Hallo IngChris,

Sorry, hab mich bei der Anrede wohl verschrieben (Beowolf ist ein Kinofilm, aber 20 J. Computerarbeit hinterlassen ihre Spuren
...)
*LOL* der Witz ist, ein User mit dem Nick Beowulf ist mir aus einem anderen Forum persönlich bekannt face-smile

Mich erschreckt nur das: Wenn´s jetzt schon etliche Features von Access 2007 nicht mehr gibt, dann wird ja auf mich bei der
Umstellung von Access 2003 auf Access 2010 noch einiges an Überraschungen kommen
ja leider, wie bei jeder Umstellung, aber die Vorteile überwiegen doch, wenn man gelernt hat sie auch zu nutzen face-smile
(z.B. die Anlagen. Leider ist speziell der VBA Bereich ganz schlecht dokumentiert)

(wollen wir mal hoffen, daß beim SP1 für Office 2010 noch einige Optimierungen kommen)...
da ist laut Aussage von diversen Fachleuten nicht viel zu erwarten face-sad aber warten wir es mal ab face-smile

Grüße aus Rostock
Wolfgang
(Netwolf)
IngChris
IngChris 07.08.2010 um 16:03:15 Uhr
Goto Top
Hallo Netwolf,

Hast du vielleicht schon Infos, wann das SP1 für Office 2010 erscheinen soll?
Kann man deiner Erfahrung nach damit rechnen, daß das SP1 vor Sommer 2011 erscheint?

PS: Passt zwar nicht ganz zum Office 2010 Thema, aber für Server 2008 R2 und Win 7 gibt´s ja bereits seit Mitte Juli das SP1 in der Beta - Version.
Offizielles SP1 für die beiden Betriebssystem sollen lt. Recherche im Internet im 1.Halbjahr 2011 erscheinen, hast Du hierzu genauere Infos?

Vielen Dank
L.G. IngChris
NetWolf
NetWolf 07.08.2010 um 16:52:32 Uhr
Goto Top
Hallo,

wie du z.B. hier lesen kannst, vermutet man das erste SP1 für Office 2010 erst Mitte 2011.
http://pcsupport.about.com/od/keepingupwithupdates/a/office-service-pac ...

Außer bei M$ selber, findest du hier immer eine aktuelle Liste der Updates / Service Packs usw.
http://beqiraj.com/office/2010/index.asp

Für Windows 7 soll das erste SP1 schon im September kommen
http://www.pcwelt.de/specials/windows_7/news/2108229/erste-infos-zum-wi ...


Grüße aus Rostock
Wolfgang
(Netwolf)
FlyingFish
FlyingFish 28.06.2011 um 13:52:00 Uhr
Goto Top
Hallo,

es ist zwar schon eine Weile her, aber ich hoffe, ihr seid weiterhin aktiv in diesem Forum. face-smile

Zitat von @IngChris:
Also ich hab´ das Makro, daß von Office 2010 generiert wird, in VBA konvertiert


Kannst du mir bitte sagen wie du das hingekriegt hast? Mein Access 2010 unterstützt das nicht, die Buttons "Speichern unter" und "Makros zu Visual Basic konvertieren" sind zwar noch da, aber bei Ansicht eingebetteter Makros deaktiviert. In A2007 ging das noch!

Ich würde mich sehr über eine Antwort freuen.

Gruß FF
IngChris
IngChris 28.06.2011 um 20:30:59 Uhr
Goto Top
Hallo,

Du hast Glück, dass ich die email-Benachrichtigung eingestellt habe und zufällig heute ein ganz anders Thema hier eingestellt habe.
Eigentlich dachte ich, daß darauf jemand geantwortet hat, aber ich helfe natürlich gerne weiter ...

Ich nehme an dich interesssiert nicht das Thema Berichtdruck, sondern Du meinst wie man ganz allgemein ein beliebiges Makro in Access 2010 in VBA konvertiert.

Es gibt hier einen Unterschied zu früheren Versionen!
Zumindest bei Access 2003 war´s - glaube ich - so, daß man das Makro markiert hat und dann konnte man es in VBA konvertieren

Access 2010:
Du musst das Makro markieren UNDin die ENTWURFSANSICHTgehen !!

Viel Erfolg
LG Ingchris
IngChris
IngChris 28.06.2011 um 21:08:23 Uhr
Goto Top
Oder meinst Du z.B. wenn Du in einem Formular ein eingebettetes Makro hast ?

Habe ich soeben erstmalig ausprobiert:

Ichhabe testweise in einem Formular eine Bef.schaltfläche "Formular schliessen" erstellt; in diesem Fall wird ja unter Access 2010 ein
eingebettetes Makro erzeugt.

Es ist zwar etwas umständlich, funkionierte bei meinem Test aber:

- Formular im Entwurfsmodus
- das eingebettete Makro über anklicken von ... (die 3 Punkte) mit dem Makro Editor öffnen
- alle Aktionen und Ebenen reduzieren
- entspr. Makroanweisung (linke Maustaste) oder mehrere Makroanweisungen (bei mehreren mittel SHIFT + linke Maustaste od. STRG + linke Maustaste) in die Zwischenablage kopieren
- Formular schliessen
- neues Makro erzeugen (über Erstellen / Makro)
- Makroanweisungen aus der Zwischenablage einfügen
- "Makro zu Visual Basic konvertieren"

LG IngChris
FlyingFish
FlyingFish 28.06.2011 um 21:55:46 Uhr
Goto Top
Hallo und vielen Dank für deine Antwort.

Ja, ich meine "das von Access generierte" Makro was für mich gleichbedeutend ist mit dem "Eingebetteten" Makro.

Es gibt also doch einen (Um)Weg, da bin ich aber froh. Auch wenn der noch umständlicher ist als in der 2007er Version.
Ich programmiere mit Access-VBA und kann mit den Makros nichts anfangen. Ich habe mich schon schrecklich geärgert, über diese neue Kehrtwende hin zu den Makros und dass man keine Wahlmöglichkeit hat, was der Assistent generieren soll. Denn das Grundgerüst der Ereignisprozeduren habe ich doch immer gern für weitere "Ausbauten" angenommen. face-wink

Ich werde das gleich morgen ausprobieren und wenn es klappt hast du mich möglicherweise glücklich gemacht - auch wenn sich dieser Aufwand auf den zweiten Blick nicht wirklich zu lohnen scheint. Dann kann man den Code auch gleich selbst schreiben...

LG FF