Abfrage in Access

Hallo,
Habe ein Problem in Access,
ich habe versucht in einer Abfrage einer Spalte einen Wert zuzuordnen der sich auf die palte davore bezieht.

Im Klartext :smile:

Hat Zeile 1 Spalte 1 den Wert 7 soll Spalte 2 den Wert 2 haben
Hat Zeile 2 Spalte 1 den Wert 9 soll Spalte 2 den Wert 3 haben
Hat Zeile 3 Spalte 1 den Wert 7 soll Spalte 3 den Wert 2 haben

dachte man könnte sowas irgendwie nach dem Motto
If (Spalte1) = 7 Then (Spalte2) = 2
If (Spalte1) = 9 Then (Spalte2) = 3
usw.

aufbauen - nur gibt der Ausdrucksgenerator irgendwie nichts her was sich nach ner if Abfrage anhört und ich habe keinen Plan wie ich jetzt in der (sehr langen) Tabelle die Werte zugeordnet bekomme.

Muss ich dieses Problem mit einem VB_Makro lösen oder geht sowas auch einfach über eine Abfrage?

zusätzlich zu dieser Zuordnung müsste diese noch etwas verfeinert werden - wird der Tätigkeit 7 (wie im Beispiel oben) die Punktezahl 2 zugeordnet so wäre die Punktezahl noch davon abhängig wie oft die Tätigkeit ausgeführt wurde (steht in einer anderen Spalte). So müsste 1 mal z.B. 2 Punkte geben 5 mal 3 Punkte und mehr als 7 mal 4 Punkte.

Hoffe Ihr könnt mir sagen wie ich sowas am besten lösen kann - habe momentan einfach keinen Plan in welche Richtung ich mich dafür schlau machen müsste - VisualBasic, Access, SQL…

Habe wie man merkt aber noch keinen großen Plan von der Thematik

Für schnelle Hilfe wäre ich euch sehr dankbar!!!
Gruß Thomas

Hallo,

Morgen!

Habe ein Problem in Access,
ich habe versucht in einer Abfrage einer Spalte einen Wert
zuzuordnen der sich auf die palte davore bezieht.

Zunächst: Vergiss beim Umgang mit Access bitte mal das Zeilen/Spalten-Denken! Das geht in Excel, aber nicht hier. Wir reden von Datensätzen, dabei gehören alle „Spalten“ -> also Felder einer Zeile (also eines Datensatzes) zwangsläufig immer zusammen. Nun aber zu deinem Problem:

Im Klartext :smile:

Hat Zeile 1 Spalte 1 den Wert 7 soll Spalte 2 den Wert 2 haben
Hat Zeile 2 Spalte 1 den Wert 9 soll Spalte 2 den Wert 3 haben
Hat Zeile 3 Spalte 1 den Wert 7 soll Spalte 3 den Wert 2 haben

dachte man könnte sowas irgendwie nach dem Motto
If (Spalte1) = 7 Then (Spalte2) = 2
If (Spalte1) = 9 Then (Spalte2) = 3
usw.

aufbauen - nur gibt der Ausdrucksgenerator irgendwie nichts
her was sich nach ner if Abfrage anhört und ich habe keinen
Plan wie ich jetzt in der (sehr langen) Tabelle die Werte
zugeordnet bekomme.

Muss ich dieses Problem mit einem VB_Makro lösen oder geht
sowas auch einfach über eine Abfrage?

über Abfragen müsste das in einzelnen Schritten gemacht werden.
Ist daher nicht wirklich empfehlenswert.

über VBA hast du mehrere Möglichkeiten.
zum einen ist da das Aktualisieren durch Ausführen mehrerer SQL-Statements mit
DBEngine(0) (0).Execute („UPDATE DeineTabelle SET DeineTabelle.Feld2 = 2 WHERE (((DeineTabelle.Feld1)=7))“)

(entspricht im Prinzip den Abfragen, nur wird hierbei keine Abfrage gespeichert…kann ich somit auch nicht wirklich empfehlen!

zum anderen bleibt noch ein Recordset.
Ist zwar etwas mehr Code, jedoch kannst du in einem Tabellendurchlauf alle Varianten einbauen und die Tabelle komplett aktualisieren lassen.

z.b. (Verweis auf DAO3.x sollte hierfür gesetzt sein!)

Dim rs as DAO.Recordset
Dim Wert as Integer
Set rs=CurrentDB.OpenRecordset(„DeineTabelle“)
rs.MoveFirst
Do Until rs.EOF
With rs
If .(„Feld1“)=7 then
Wert=2
Else If .(„Feld1“)=9 then
Wert=3
Else If .(„Feld1“)=… then
Wert=…
End if
.Edit
.(„Feld2“)=Wert
.Update
End With
rs.MoveNext
Loop
rs.Close

zusätzlich zu dieser Zuordnung müsste diese noch etwas
verfeinert werden - wird der Tätigkeit 7 (wie im Beispiel
oben) die Punktezahl 2 zugeordnet so wäre die Punktezahl noch
davon abhängig wie oft die Tätigkeit ausgeführt wurde (steht
in einer anderen Spalte). So müsste 1 mal z.B. 2 Punkte geben
5 mal 3 Punkte und mehr als 7 mal 4 Punkte.

Den Abschnitt hab ich ehrlich gesagt nicht verstanden!
Wenn ich raten sollte, steht also in einem weiteren Feld ein zusätzliches Kriterium, von dem der Wert für Feld 2 ebenfalls abhängig ist.
In VBA würde ich das in die If-abfragen mit AND und einbauen.

Hoffe Ihr könnt mir sagen wie ich sowas am besten lösen kann -
habe momentan einfach keinen Plan in welche Richtung ich mich
dafür schlau machen müsste - VisualBasic, Access, SQL…

Ich würde VBA verwenden und bei diesen Vorgaben dann ein Recordset benutzen.

Habe wie man merkt aber noch keinen großen Plan von der
Thematik

Nicht schlimm, jeder hat mal angefangen…

Für schnelle Hilfe wäre ich euch sehr dankbar!!!
Gruß Thomas

HTH, Jan