![]() |
MS Access Bericht öffnet im Hintergrund...
Ich hab da grad ein Programm in Access, welches ich ein wenig überarbeiten soll.
Ein Teil davon ist, dass ein Bericht in VBA docmd.openreport "Bericht", acViewPreview geöffnet wird. Jetzt öffnet sich dieser Bericht leider im "Hintergrund", da ein Formular im Vollbildmudus ist. Bei Formularen kann man das ganze mit dem Parameter "acDialog" öffnen, dann öffnet sich das Formular als Dialogfenster im Vordergrund. Gibts die Möglichkeit beim Bericht auch irgendwie. Oder müsste ich das "Hauptforular" auch als Dialogfenster verkleinern und dann Bericht öffnen, weil es keine andere Möglichkeit gibt? Hoffentlich könnts mir da helfen, weil eine Recherche mit Google und in der MSDN hat noch nix gebracht... :(;) |
acDialog gibt's natürlich auch für "OpenReport".
DoCmd.OpenReport "repMyReport", acViewPreview, , , acDialog Ich kann mir aber eigentlich nicht vorstellen, das der Report grundlos in den Hintergrund wandert. Die einzige Ursache, die mir dafür auf die Schnelle einfällt, wäre das das Formular als PopUp geöffnet ist. |
Zitat:
Aso das gibts auch - hmm cool. Ich hab mir das Ding nur mit dem Objektinspektor (oder wie das Ding heißt, wenn man F2 drück) angeschaut. Und da war nix. Und ja, das Ding wird als "PopUp" geöffnet, wenn Access gestartet wird. Aber jetzt sollte das ganze ja kein Problem mehr sein. |
Ehm... das muss ich aber jetzt energisch bestreiten ;)
Im Objektkatalog findet man für "OpenReport" unter anderem folgendes: Sub OpenReport(ReportName, [View As AcView = acViewNormal], [FilterName], [WhereCondition], [WindowMode As AcWindowMode = acWindowNormal], [OpenArgs]) Element von Access.DoCmd Diese Info kriegt man aber auch, wenn man mit dem Cursor auf OpenReport die Tastenkombination STRG+i drückt. |
Leider nein.
Auf jeden Fall nicht auf dem Rechner den ich da hab. Kannst dir ja meinen Anhang anschaun. ;) Aber danke für das STRG+I - das kannte ich noch nicht. Vielleicht liegts daran, dass du eine Developer Edition installiert hast...!? (ich denk zumindest, dass du die installiert hast) |
Nein. Ich arbeite zwar auch mit einer Developer-Version aber die betreffende Info habe ich aus einer normalen XP-Version. Dein Screenshot sieht so aus, als würde er aus ACC97 stammen. Dort hat es diesen Parameter meines Wissens noch nicht gegeben.
|
Zitat:
Ich denke auch, dass das ganze in Access 97 gemacht wurde - das ist sicher schon älter. Weil das ganze ist in einem Verwaltungsprogramm meiner (ex-)Schule. (hab ja schon maturiert). Ich bin jetzt nur als Zivi dort. :D Und das is eigentlich eine recht gemütliche Hacken (wie du dir sicher vorstellen kannst) Hab grad in einer "neuen" Access 2000 DB ausprobiert: dort schreibt er mir die Parameter auch nicht hin. Also wirds wahrscheinlich erst ab Access XP dort stehen. ;) BTW: gehst du auf einen der BigDays Events von Microsoft? (ich denke, du wirst auch eine Einladung bekommen haben - oder?) |
Aja, gleich noch was:
Gibts noch eine andere Möglichkeit in einem Bericht eine Sortierung und Gruppierung mit VB einzurichten, als mit CreateGroupLevel(...)? Weil das Ding funktioniert nur in der Entwurfsansicht. Oder muss ich zuerst den Bericht in der Entwurfsansicht öffnen, dann die Methode mit meinen Parametern aufrufen, und dann umschalten? Ich will nämlich für die Frage, keinen eigenen Thread aufmachen. ;) :D |
Hmm, ich sollt vielleicht länger überlegen/probieren, bevor ich was post - weil dann ists auch vollständiger.
Ich bin da jetzt ein wenig am Basteln. Und natürlich wenn ich den Bericht kurz im Design Modus aufmache, die Sortierung eintrage und dann in die Preview umschalte, wird die Sortierung als Veränderung gesehen. Und wenn man den Bericht schließen möchte, dann kommt natürlich die Meldung, ob man den Bericht speichern möchte (weil die Sortierung hat sich ja geändert) oder nicht. Nur das kann man net umgehen - oder? Weil der Event: Close wird erst nach der Meldung ob man speichern möchte oder nicht ausgelöst (das man das evt. wieder rückgängig macht). Und jetzt bin ich natürlich wieder in einer schönen Zwickmühle, das ganze elegant zu lösen.... Vielleicht hast ja du (als VB/VBA "Guru" - das wirst du bei mir nicht mehr los... :D) od. auch jemand anderer eine Idee... :rolleyes: |
@ LLR: Hat ein wenig gedauert aber ich hatte heute ziemlich zu tun.
Zu "Events von Microsoft": ------------------------------- Jepp, bin ich dabei! Den Office-Launch habe ich schon seit einiger Zeit mit Spannung erwartet. Mal sehen wie die Sache mit .NET zusammenspielt. Ich geb' mir die Aktion am 18.11.2003 im Grazer Congress. Zu Gruppierung / Sortierung: ------------------------------- Die Sortierung ist kein Problem. Public Sub DOWN() Sort "repMy", "fldMy", False End Sub Public Sub UP() Sort "repMy", "fldMy" End Sub Public Sub Sort(strReport As String, strFieldList As String, Optional Ascending) Dim strSort As String strSort = "ASC" If Not IsMissing(Ascending) Then If Not Ascending Then strSort = "DESC" End If End If DoCmd.OpenReport strReport, acViewDesign With Reports.Item(strReport) .OrderByOn = False .OrderBy = strFieldList & " " & strSort .OrderByOn = True End With DoCmd.Close acReport, strReport, acSaveYes End Sub Was die Gruppierung betrifft, so macht die ja ohne Anpassung des Layouts ja ohnehin nicht viel Sinn, oder? Wenn es dir nur darum geht die Speicherabfrage zu umgehen, dann kannst du ja das Open Event verwenden. Das wird ausgelöst, wenn du aus der Design- in die Preview-Ansicht wechselst. Allerdings ist das (wie du selbst bemerkt hast) wahrscheinlich auch nicht besonders clever. Immerhin hat ja so eine Abfrage auch ihren Sinn. ;) Falls du allerdings die Gruppierung wirklich per Code ändern willst, so funktioniert das natürlich nach dem selben Schema, wie das ändern der Sortierung. Zum Thema STRG+I: ------------------------------- Such' mal in der Hilfe nach "Shortcuts für das Code-Fenster" ;) |
das du relativ viel zu tun hattest hab ich mir dann eh schon gedacht.
Aber das macht natürlich nix - so ein tollen "Support" find ich sonst nirgends. ;) Das du am Office-Launch bist, hab ich mir gedacht. Naja, in Wien ists im Interconti, aber 90€+Mwst. sind ganz schön happig, drum werd ichs wohl auslassen. Außerdem müsst ich mir "frei" nehmen, was a) als Zivildiener net so leicht ist, aber möglich und ich dann b) die Zeit einarbeiten müsste. Bist du schon in .NET eingearbeitet? Ich hab nur gehört, dass z.B. VB.net ziemlich anders sein soll. Ich hab nur mal kurz in ASP.NET reingerochen (mitn Win2003 Server). Aber noch net wirklich was gemacht. Deine Funktion die du da gebastelt werd ich gleich ausprobieren. Herzlichen Dank. Es geht eh nur um die Sortierung. Da ist einfach ein Bericht, der als Datenquelle mit VB eine SQL Abfrage eingetragen bekommt. Nur stehen dann die Werte unsortiert im Bericht. |
Habs grad eingebaut - danke das funkt perfekt.
Gar net gewusst, dass man das direkt sortieren kann - ohne Gruppieren sortieren. Ich hätt mir die eigenschaften vom Bericht auch genauer anschauen sollen - dort kommt ja auch sowas vor. :rolleyes: Und dann eben die Properties die darauf in VB verweisen. (also das was du mir gepostet hast) Naja, ich muss da wieder rein kommen. |
Wenn du als Datenquelle ein SQL-Statement verwendest, dann ist meine Funktion ein unnötiger Umweg. Du kannst doch schon in diesem SQL-Statement ein ORDER BY verwenden.
SELECT * FROM tblMy WHERE u=1 AND v=2 ORDER BY x, y, z DESC; Was .NET betrifft, so bin ich leider noch nicht wirklich fit. Ich weiss zwar mittlerweile einiges über die Möglichkeiten aber ich komme einfach nicht dazu, mal wirklich einen vernünftigen Einstieg anzugehen. Vielleicht kann ich mich ja dieses Wochenende mal überwinden mehrere Stunden am Stück zu investieren. Man darf ja die Hoffnung nie aufgeben. :D Diesmal möchte ich die Sache auf jeden Fall ganz anders angehen als damals bei VB. Da habe ich einfach so drauf los programmiert und erst später angefangen zu lernen, wie's richtig gehen würde. Diesmal habe ich vor, mich von Anfang an auf die Konventionen der Sprache einzustellen. Auf die Art muss ich mich dann später nicht wieder mühsam mit schlechten Angewohnheiten herumschlagen. Auf jeden Fall ist .NET wirklich anders als VB. Das muss aber ja durchaus kein Nachteil sein :D |
stimmt eigentlich...
Naja, das is irgendwie komisch wenn man ein Programm erweitert, was man gar nicht selber geschrieben hat. Da is man sich net 100%ig sicher beim Aufbau und versucht dann eben das was man erreichen will zu erreichen (sortierte Ausgabe) Und dabei gibts viel bessere Lösungen. @.NET naja, ich würds mir auch mal gern anschaun. Nur ich hab so viele Ideen die ich gern machen würd und hab die Zeit/Durchhaltevermögen einfach nicht dazu. (.NET, eigene Homepage - wahrscheinlich PHP, MCP Prüfungen, Linux, Cisco CCNA Prüfung, ...) Und ich kann mich derzeit net entscheiden was ich machen soll, drum geht da auch net wirklich was weiter. ;) |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 13:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag