Nur ausgefüllte Spalten in einen Bericht übergeben - Access

Matze7

Mitglied
Hallo,

ich habe eine Tabelle mit z.B. 5 Spalten. (Es sind aber nicht immer alle Spalten gefüllt.)

Jetzt möchte ich über einen Bericht, diese Spalten ausdrucken. Ich könnte jetzt alle 5 Spalten untereinander darstellen und drucken, aber...

Ich hätte gerne, das wenn eine Spalte leer ist, er diese mit der nächsten Spalte ausfüllt, also quasi die leere mit der nächst vollen ausfüllt.

Beispiel: Tabelle

Spalte 1 Spalte 2 Spalte 3 Spalte 4 Spalte 5

Beispiel: Bericht

Spalte 1
Spalte 2
Spalte 3
Spalte 4
Spalte 5

Wenn jetzt aber z.B. Spalte 2 & 3 leer wären, dann hätte ich zwischen Spalte 1 und 4 eine Lücke.
Ich hätte jetzt gerne, das er an die leere Stelle von Spalte 2 die Spalte 4 einfüllt, genauso mit Spalte 3 und 5

Also wie folgt.

Wenn Spalte 2 und 3 leer sind, dann soll es so aussehen:

Spalte 1
Spalte 4
Spalte 5

Ist das irgendwie möglich? Hat irgendjemand eine Idee?
 
Im Bericht kannst du dem Feld die Eigenschaft 'Can Grow' und 'Can Shrink' (keine Ahnung wie sie im deutschen Access heissen) mitgeben. 'Can Shrink' bedeutet, dass sich die Feldhöhe auf den Feldinhalt anpasst. Also wenns leer ist minimiert.

Mach also die Fleder so gross, dass du zweischen den Feldern keinen Abstand aht (Also Feldgrösse = Texthöhe + Abstand) und gib das Attribut 'Can Shrink' mit true an.
 
Ich musste mal in einem Bericht jede 2. Zeile einfärben (aufgrund der leserlichkeit)
dafür hab ich die Funktion (ich glaub es war) Detail_Format benützt.

In diese Funkion wird dann bei jedem mal Detail durchlaufen aufgerufen.
Die Daten stehen zu diesem Zeitpunkt bereits in dem Bericht, also könntest du nachsehn, ob in einem Gewissen Feld ein Inhalt steht und wenn nicht, kA...dann mach was du willst :)
(zB: ausblenden oder so)

greez
THEJS
 
Dann musst du die anderen Felder nachrutschen. Das ist kompliziert. Hast du die Eigenschaft 'Can Shrink' (wahrscheinlich heissts auf deutsch 'verkleinerbar') nicht gefunden?

Alternativ dazu kannst du auch ein grosses Feld machen wo alle Texte zusammengeführt sind
Code:
= IIF(Not isNull([Spalte 1]) And Not isEmpty([Spalte 1] AND Not [Spalte 1] = vbNullString); [Spalte 1] & vbCrLf ; vbNullString) 
& IIF(Not isNull([Spalte 2]) And Not isEmpty([Spalte 2] AND Not [Spalte 2] = vbNullString); [Spalte 2] & vbCrLf ; vbNullString)
...
vbCrLf = Wagenrücklauf & neue Zeile
vbNullString = Leerer String
 
Zuletzt bearbeitet:
Zurück