Access 2007
Ich habe eine Tabelle XY mit einer Spalte "Werte" mit folgendem Text-Inhalt (7 Zeilen):
10;10;10
10;7;10
7;7
7;7;7
8;7;8;10
8;8
8
Wie kann ich eine Abfrage über die Tabelle XY erstellen, die mir die Anzahl z.B. aller "10" innerhalb einer Zelle sowohl als auch über die gesamte Tabelle ausliest? In dem Beispiel wären es 6 x "10" (und 7 x "7", 5 x "8".
Hallo,
per Abfrage ist das nicht möglich.
Aber per VBA-Recordset das durchlaufen wird, und in jedem Durchgang die Anzahl der 10 aufsummiert. Ist aber etwas aufwendiger als eine Abfrage.
Gruß Andreas
Dim db As DAO.Database
Dim rs AS DAO.Recordset
Dim Anzahl10 As Long
Dim i AS long
Dim arr1 AS Variant
set db = Currentdb
set rs = db.openRecordset("TabelleXY",dbopendynaset)
Do While not rs.eof
arr1 = split(rs!Werte,";")
For i = lbound(arr1) to ubound(arr1)
if arr1(i) = 10 then Anzahl10 = Anzahl10 + 1
Next i
rs.moveNext
loop
rs.close
set db = Nothing
msgbox Anzahl10
Hallo,
da Hondo in seiner Antwort ja bereits einen gangbaren Weg zur Lösung des Problems vorgestellt hat, bleibt mir 'nur' das zu Grunde liegende Datenmodell zu hinterfragen.
Die Speicherung von unterschiedlichen Werten in ein und der selben Spalte eines Datensatzes widerspricht den Normalisierungsregeln!
Siehe dazu auch: http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Grundlagen_des_Datenbank-Designs (http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Grundlagen_des_Datenbank-Designs)