![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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... ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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. |
![]() |
![]() |
![]() |
#3 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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. |
|
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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. |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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) |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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.
|
![]() |
![]() |
![]() |
#7 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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. ![]() 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?) |
|
![]() |
![]() |
![]() |
#8 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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. ![]() ![]() |
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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... ![]() ![]() |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() @ 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" ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|