Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Detailbereich bei Endlosformular

152 views
Skip to first unread message

Werner Partner

unread,
Jul 29, 2002, 3:34:18 AM7/29/02
to
[access 97]
Bei mir hat der Detailbereich bei einem Endlosformular immer eine
bestimmte Größe, so wird er recht groß gezeigt, obwohl vielleicht nur
2-3 Sätze vorhanden sind.
Manchmal sind aber mehr Sätze vorhanden als in diesen Bereich rein gehen
und der Detailbereich wird nicht vergrößert, obwohl auf dem Bildshcirm
noch viel Platz wäre.

Gibt es die Möglichkeit, den Detailbereich klein, aber dynamisch zu
halten, also etwa so:

Der Detialbereich soll eigentlich nur xx,x klein sein, soll aber bis zu
20 Sätze aufnehmen, danach soll Scrollbalken kommen.

Werner

--
-----------------------------------------------------------
kairos: Werner Partner * Tel +49 2366 886606 * Fax: 886608
kai...@t-online.de * http://www.sonopt.de/partner

Thomas Pomper

unread,
Jul 29, 2002, 5:10:26 AM7/29/02
to

>-----Originalnachricht-----
>.
>
Hi,

versuchs doch mal so:

bei allen Ereignissen, die die Anzahl der Datensätze
ändern (z. B. Nach Eingabe, Beim Löschen bzw. Nach
Löschbestätigung, beim Öffnen): folgenden Quelltext:

DoCmd.MoveSize , , , Me!Section(acPageHeader).Height + Me!
Section(acPageFooter).Height + (Section(acDetail).height *
DCount("*",Me!RecordSource)) + [irgendeineZahl]

Den Wert [irgendeineZahl] musst Du expermientell ermittel,
er ergibt sich z. B. aus der Höhe der Titelzeil des
Fensters, der Rahmendicke, ob das Fenster ein Menü hat usw.

Gruß
Thomas

Richard Ernstberger

unread,
Jul 29, 2002, 8:51:58 AM7/29/02
to
Hallo Werner,

"Werner Partner" <kai...@t-online.de> schrieb im Newsbeitrag
news:3D44EFFA...@t-online.de...


> [access 97]
> Bei mir hat der Detailbereich bei einem Endlosformular immer eine
> bestimmte Größe, so wird er recht groß gezeigt, obwohl vielleicht nur
> 2-3 Sätze vorhanden sind.
> Manchmal sind aber mehr Sätze vorhanden als in diesen Bereich rein gehen
> und der Detailbereich wird nicht vergrößert, obwohl auf dem Bildshcirm
> noch viel Platz wäre.
>
> Gibt es die Möglichkeit, den Detailbereich klein, aber dynamisch zu
> halten, also etwa so:
>
> Der Detialbereich soll eigentlich nur xx,x klein sein, soll aber bis zu
> 20 Sätze aufnehmen, danach soll Scrollbalken kommen.
>

Mache in Deinen Detailbereich für die Höhe eines Datensatzes ein
Rechteck rein. Dieses "formatierst" Du unsichtbar.

Jetzt weißt Du (und das Programm ) wie "hoch" ein Datensatz ist.

Zähle jetzt die Anzahl Deiner Datensätze.
Schaue dazu bitte selber in der OH bei Dcount nach. (Ich weiß jetzt
auch nicht auswendig die Parameter)

Dann in VBA (nur grob hingefaselt):

dim anzahl_datensätze
anzahl_datensätze = dcount(.....)
if anzahl_datensätze < 20 then
me.detailbereich.height = anzahl_datensätze * rechteck.height
else
me.detailbereich.height = 20 * rechteck.height
endif
me.repaint


Grüße
Richard Ernstberger


Werner Partner

unread,
Jul 29, 2002, 10:29:43 AM7/29/02
to
Thomas Pomper schrieb:

Vielen Dank für den Tip, aber gibt's jetzt weitere Probleme.
ich bekomme einen Fehler bei Me.Section(acPageHeader), das ist angeblich
unbekannt, obwohl ich einen Header habe. Außerdem gibt es einen Fehler
beim DCount: Er findet Me.Recordsource nicht, obwohl diese (eine
SQL-Abfrage) ganz korrekt ist.

Grüße

Werner


--
-----------------------------------------------------------

Thomas Pomper

unread,
Jul 30, 2002, 4:53:28 AM7/30/02
to
>Vielen Dank für den Tip, aber gibt's jetzt weitere
Probleme.
>ich bekomme einen Fehler bei Me.Section(acPageHeader),
das ist angeblich
>unbekannt, obwohl ich einen Header habe. Außerdem gibt es
einen Fehler
>beim DCount: Er findet Me.Recordsource nicht, obwohl
diese (eine
>SQL-Abfrage) ganz korrekt ist.
>
>Grüße
>
>Werner
>
>
>--
>----------------------------------------------------------
-
> kairos: Werner Partner * Tel +49 2366 886606 * Fax:
886608
> kai...@t-online.de * http://www.sonopt.de/partner
>.
>

Tschuldigung, hatte einen Fehler gemacht: Statt der
Ausrufezeichen müssen Punkte stehen.

Weiterhin gilt acPageHeader und acPageFooter für
Seitenköpfe und -füße. Im Formular hat man jedoch meistens
einen Formularkopf, -fuß. Dann gilt acHeader und acFooter.

Die korrekte Zeile müsste also lauten:

DoCmd.MoveSize , , , Me.Section(acHeader).Height + Me.
Section(acFooter).Height + (Me.Section(acDetail).height *
DCount("*",Me.RecordSource)) + [irgendeineZahl]

Gruß
Thomas

Werner Partner

unread,
Jul 30, 2002, 10:07:58 AM7/30/02
to
Thomas Pomper schrieb:

Habe ich schon gemerkt, ich bin am testen :-)

Werner


--
-----------------------------------------------------------

Birgit Dannenberg

unread,
Jul 31, 2002, 5:26:44 AM7/31/02
to
Hallo,

vielleicht verwechselst Du Formularkopf und Seitenkopf - letzterer wird
normalerweise nicht benötigt.

Das DCount kannst du auch ersetzen durch Me.RecordsetClone.recordCount.

Gruss Birgit

Werner Partner schrieb:

> Thomas Pomper schrieb:

Werner Partner

unread,
Jul 31, 2002, 7:14:34 AM7/31/02
to
Birgit Dannenberg schrieb:

>
> Hallo,
>
> vielleicht verwechselst Du Formularkopf und Seitenkopf - letzterer wird
> normalerweise nicht benötigt.
>
> Das DCount kannst du auch ersetzen durch Me.RecordsetClone.recordCount.
>

Danke, das wars, was ich gsucht habe

0 new messages