Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Brallu am Oktober 31, 2025, 17:07:30

Titel: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Brallu am Oktober 31, 2025, 17:07:30
Hallo Gemeinde,
ich habe eine Tabelle mit 6 Feldern. In diesen Feldern stehen Zahlen.
Diese Zahlen sollen in einem berechneten Feld zusammengefast werden.
Allerdings sollen die Fleder mit dem Wert Null nicht mit erfasst werden.

Bild für Anfrage Felder.png

In diesem Bild habe ich die Felder als Text formatiert und mit dem Code zusammengefasst!

NrBerechnet: [anAnNr1] & "."+[anAnNr2] & "."+[anAnNr3] & "."+[anAnNr4] & "."+[anAnNr5] & "."+[anAnNr6]

Jetzt brauche ich die Werte aber als Zahl. Gibt es da eine Möglichkeit das einfach zu erstellen??

Gruß  :)

Danny
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: andyfau am Oktober 31, 2025, 18:45:40
Hallo Danny,
was heißt "als Zahl"? Ohne Punkte? Dann multipliziere doch einfach mit 10, 100, 1000, usw. Dann steht der Eintrag an der jeweiligen Stelle.
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: MzKlMu am Oktober 31, 2025, 19:01:37
Hallo,
das kann als Zahl nicht dargestellt werden, Du verkettest da ja Punkte (.) Das ist und bleibt Text.

Was sind das für Werte (anAnNr1 - ..6) ?
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Brallu am Oktober 31, 2025, 19:15:10
Moin es handelt sich um den Felddatentyp Zahl!

Die Felder sind zum sortieren in Reihenfolge für mich wichtig (glaube ich)!
Das was zusammengefasst werden soll muss keine Zahl sein und ist nur für das Formular zum Anzeigen gedacht.
Kann ich auch über die Textfilter richtig in Reihenfolge sortieren??

Dann könnte das ja so bleiben wie es ist. Das ganze ist sowas wie die Reihenfolge eines Inhaltsverzeichnisses.

Also sind die Werte als Zahl Quatsch??
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: MzKlMu am Oktober 31, 2025, 19:36:33
Hallo,
das berechnete Feld kann nur Text sein und wird auch als Text sortiert.
Mit einem Filter kann man nicht sortieren.
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Bitsqueezer am Oktober 31, 2025, 22:03:21
Hallo,

ich verwende so eine Verkettung auch bei hierarchischen Daten, ganz besonders, um eben eine Reihenfolge hinzubekommen, die der Hierarchie entspricht und innerhalb einer Ebene nicht unbedingt nach z.B. einem enthaltenen Namen sortiert werden soll, sondern z.B. nach einer Sortierzahl.

Die richtige Sortierung ist auch mit Text ganz einfach zu bewerkstelligen: Du mußt wissen, wie groß die größte Zahl werden könnte, und dann formatierst Du die Zahl mit führenden Nullen. Dabei ist nur wichtig, daß die Anzahl der größten Zahl auf der gleichen Ebene entspricht.

Ergebnis ist dann z.B.

0001.0001.0001.000000016.00003.000001

Der gesamte String kann dann mit korrekter numerischer Sortierung je Hierarchieebene verwendet werden.
Die Umwandlung ist simpel mit "Format" zu bewerkstelligen.

In SQL Server gibt es rekursive Abfragen, da kann man sich solche Sortierpfade automatisch erstellen lassen, wenn die Hierarchie ordentlich aufgebaut wurde (nicht wie hier in Aufzählungsfeldern).

Gruß

Christian
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Normalo0815 am November 01, 2025, 07:41:52
Hallo Brallu,

Zitat von: Bitsqueezer am Oktober 31, 2025, 22:03:21Der gesamte String kann dann mit korrekter numerischer Sortierung je Hierarchieebene verwendet werden.
Die Umwandlung ist simpel mit "Format" zu bewerkstelligen.

In dem Fall also z. B. so (Beispiel Abfrage in SQL-Ansicht):

SELECT
  ...
  anAnNr1 & "." + anAnNr2  & "." + anAnNr3 & "." + anAnNr4 & "." + anAnNr5 & "." + anAnNr6 AS NrBerechnet
  ...
FROM
  DeineTabelle
ORDER BY
  anAnNr1,
  anAnNr2,
  anAnNr3,
  anAnNr4,
  anAnNr5,
  anAnNr6

Das würde auch eine Indexnutzung zulassen, falls die Aufzählungsfelder indiziert sind (bessere Performance bei vielen Datensätzen).
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Bitsqueezer am November 01, 2025, 10:40:56
Hallo,

in SQL Server kann man solche Spalten auch als persistent markieren, dann sind sie selbst gespeichert und indizierbar. Das geht in Access zwar leider nicht, aber man kann natürlich den Ergebnisstring als Feld speichern und indizieren, dann hat man nur ein Sortierkriterium.

Nur reicht es hier nicht, die Zahlen mit "." zu verketten - wie gesagt, mit führenden Nullen auffüllen mit Format, ansonsten werden die Zahlen im String als Text sortiert.

Gruß

Christian
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Brallu am November 01, 2025, 15:48:08
Danke für eure Hilfe aber das passt so noch nicht.  :-\
Hier noch ein paar Anmerkungen:

Also das Berechnete Feld kann Text sein! Das ist nur das was in der Abfrage angezeigt werden soll.
Mit diesem Feld wird später nichts berechnet oder so und es soll genau so aussehen!
Aber die 6 Felder brauche ich um die Reihenfolge der Datensätze in der Abfrage zu sortieren!
Also die sollen Aufsteigend sortiert werden!!!
Um beim Sortieren nicht die Reihenfolge 1, 10, 11, usw. zu bekommen
(Felder sind als Text Formatiert und da kommt dann das Ergebnis raus)
benötige ich die 6 Felder als Zahl formatiert. Hier bekomme ich dann beim Sortieren die Reihenfolge 1, 2 ,3 usw. wie ich sie brauche.

Daher habe ich das Problem das ich die Variante aus meinem ersten Beitrag nicht verwenden kann!
Also mit      & "."+    zwischen den Feldern geht es ja so nur bei Textfeldern.

Also würde ich gerne die 6 Felder (mit Zahlenwert) verbinden (mit . zwischen den Zahlen) und das Ergebnis kann Zahl, Sonderformat oder Text sein.
Dafür brauche ich eine Formel Idee für das berechnete Feld!

Ich hoffe das ist jetzt besser erklärt. Sorry
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Knobbi38 am November 01, 2025, 16:42:46
Hallo Brallu,

die Lösungsweg, welchen du suchst, steht bereits in #5. Formatiere die String mit führenden "0" auf eine gleiche Stringlänge für alle Felder und setzen diese Teilstrings zusammen. So erhältst du ein Sortkriterium, das deinen Wünschen entsprechen sollte, solange es sich nur um Ziffern handelt.

Der Lösungsansatz aus #6 sollte ebenfalls funktionieren.

Wenn das immer noch nicht richtig sein sollte, musst du dein Problem nochmal mit anderen Worten beschreiben und ggf. eine Beispiel DB hier hochladen.

Knobbi38
 
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Brallu am November 01, 2025, 17:08:13
Hallo Knobbi,
#5 versuche ich noch einmal

#6 anAnNr1 & "." + anAnNr2  & "." + anAnNr3 & "." + anAnNr4 & "." + anAnNr5 & "." + anAnNr6 AS NrBerechnet
Hier müssen die 6 Felder aber als TEXT gespeichert sein.

Das passt so aber nicht!

Aber egal ich habe mir ein Feld Sortierung eingebaut und die Datensätze durchnummeriert. So kann ich das Problem umgehen!

Danke für eure Antworten!  :)
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Normalo0815 am November 01, 2025, 17:43:54
#gelöscht (doppelt)
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Normalo0815 am November 01, 2025, 17:46:56
#gelöscht (doppelt)
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Normalo0815 am November 01, 2025, 17:48:51
Hallo Brallu!

Zitat von: Brallu am November 01, 2025, 17:08:13#6 anAnNr1 & "." + anAnNr2  & "." + anAnNr3 & "." + anAnNr4 & "." + anAnNr5 & "." + anAnNr6 AS NrBerechnet
Hier müssen die 6 Felder aber als TEXT gespeichert sein.

Da hast du Recht. Wenn diese vom Datentyp Zahl sind, dann müsste es so lauten:
anAnNr1 & Format(anAnNr2,"\.0") & Format(anAnNr3,"\.0") & Format(anAnNr4,"\.0") & Format(anAnNr5,"\.0") & Format(anAnNr6,"\.0") AS NrBerechnet
und es könnte wie in #6 angeführt nach den Zahlenfeldern sortiert werden (Order by anAnNr1, anAnNr2 usw.)
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Knobbi38 am November 02, 2025, 00:18:16
Anstatt mit Format() könnte man das berechnete Feld in einer Abfrage auch so erstellen:
SELECT Replace(Trim$(Nz([anAnNr1],"") & " " & Nz([anAnNr2],"") & " " & Nz([anAnNr3],"") & " " & Nz([anAnNr4],"") & " " & Nz([anAnNr5],"") & " " & Nz([anAnNr6],"")) , " ", ".")
FROM MyTable
Order By [anAnNr1] ,[anAnNr2] ,[anAnNr3] ,[anAnNr4] ,[anAnNr5] ,[anAnNr6]
Hier kann die Sortierung dann wie gewünscht ebenfalls mit den numerischen Feldwerten erfolgen.

Als VBA Funktion dann so:
Public Function FMTHY(ParamArray FValue()) As String
  Dim s As String
  Dim i As Long
 
  For i = 0 To UBound(FValue)
    s = s & " " & Nz(FValue(i), "")
  Next
   
  FMTHY = Replace(Trim(s), " ", ".")
End Function

und der Aufruf in SQL:
SELECT FMTHY(f1,f2,f3,f4,f5,f6) AS HY
FROM MyTable;
Titel: Re: Zahlenwerte in Feldern zusammenfassen
Beitrag von: Normalo0815 am November 02, 2025, 05:04:46
Hallo Knobbi38,

interessante kreative Lösung.

Die nz-Funktion könnte auch weggelassen werden bei Abfragen in Access. Dadurch würde auch die Performance noch besser.

SELECT Replace(Trim([anAnNr1] & " " & [anAnNr2] & " " & [anAnNr3] & " " & [anAnNr4] & " " & [anAnNr5] & " " & [anAnNr6])," ",".")
FROM MyTable
Order By [anAnNr1] ,[anAnNr2] ,[anAnNr3] ,[anAnNr4] ,[anAnNr5] ,[anAnNr6]

Und statt Trim$ (VBA-Funktion) würde ich Trim verwenden (VBA-Funktion aber auch eigenständige SQL-Funktion nach meinem Kenntnisstand).