title image


Smiley "Leider nicht möglich, es anders zu lösen"...
... mag ich immer nicht glauben, aber egal...



Schreib dir halt eine kleine Funktion, z.B.:



Public Function BastleBezeichnungenZusammen(ParamArray P())

Dim I as long, Res as String

For I = LBound(P) To UBound(P) Step 2

If NZ(P(I),False) then

if NZ(P(I+1),"") "" then

Res = Res & ", " & Trim(P(I+1))

end if

end if

next I

If Res = "" then

BastleBezeichnungenZusammen =Null

Else

BastleBezeichnungenZusammen = Mid(Res,3)

End if

End Function





Die kannst du dann z.B. im Steuerelementinhalt eines Berichts-Textfelds aufrufen:



= BastleBezeichnungenZusammen ([Störung],"Störung",[Neubau],"Neubau", ...)





Denkbar - und pflegeleichter - wäre auch eine Funktion der folgenden Art:



Public Function ListeJaNeinFelderAuf(ID As Long)

Dim RS as DAO.Recordset, Fld As DAO.Field, Res As String

Set RS = CurrentDb.OpenRecordset("SELECT * FROM MeineTabelle WHERE ID = " & ID)

For Each Fld in RS.Fields

If Fld.Type = dbBoolean Then

If Fld.value Then

Res = Res & ", " & Trim(Fld.Name)

End if

End if

Next Fld

If Res = "" Then

ListeJaNeinFelderAuf = Null

Else

ListejaNeinFelderAuf = Mid(Res, 3)

End If

End Function



zumindest, wenn du immer jeweils die Feldnamen - so wie sie in der Tabelle stehen - im Bericht ausgeben willst. Der Aufruf dieser Funktion wäre zwar simpler (du musst nur jeweils den Primärschlüssel der Zeile übergeben), die Funktion selbst ist aber wegen des separat geöffneten Recordsets leicht ineffizient.



Es gibt wie immer viele Wege zum Ziel...


Gruß aus dem Norden
Reinhard


Bitte immer die Access-Version angeben!
DB-Wiki


Wie man Fragen richtig stellt

YaccessAccess-FAQUnd ansonsten: Wikipedia




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: