Hallo Access-O-Maniacs,
suche eine bessere Lösung um Werte (.2, ..3, ...4) in 2, 3, 4 umzuwandeln. Es soll bis ins unendliche gehen und nicht so wie im unteren Code bis .........10)
'hier wird der Wert in der Spalte "Level" in eine reale Zahl um gewandelt
Set db = CurrentDb ' Datenbank definieren
Set rs = db.OpenRecordset("tblImport_Stuecklisten_neu") 'Tabelle definieren und öffnen
If Not rs.EOF Then rs.MoveFirst ' gehe zum ersten Datensatz
Do While Not rs.EOF
If rs.Fields("Level") = "0,2" Then
rs.Edit
rs.Fields("Level") = "2"
rs.Update
End If
If rs.Fields("Level") = "..3" Then
rs.Edit
rs.Fields("Level") = "3"
rs.Update
End If
' oberes wiederholt sich bis
If rs.Fields("Level") = ".........10" Then
rs.Edit
rs.Fields("Level") = "10"
rs.Update
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
Danke schon mal
Hallo,
dazu reicht eine Aktualisierungsabfrage in der die zu ersetzenden Zeichen durch "" ersetzt werden. ggf anschliessend in ein Feld vom Typ Zahl überführen.
Update tblImport_Stuecklisten_neu
SET Level = replace([Level],".","")
Moin Jürgen (El Gomero)
habe dein Code genommen und noch ein wenig manipuliert .-)
CurrentDb.Execute "UPDATE tblImport_Stuecklisten_neu " & _
"SET Level = Replace([Level], ".", "") "
Leider ist da ein Syntaxfehler drin, aber ich sehe ihn nicht.
Gruss
Atuatuca (von der Ostseeküste)
falscher Anhang zu diesem Beitrag
was ich dir gepostet habe ist ein SQL-Statement und kann direkt in eine Abfrage eingegeben werden, dazu braucht es keinen Code.
Wenn einer benötigt wird, wird beim Zusammenbau des SQL-Strings ein Anführungszeichen " durch ein einfaches ' maskiert.
Hallo Jürgen,
habe
UPDATE tblImport_Stuecklisten_neu SET tblImport_Stuecklisten_neu.[Level] = Replace([Level],".","");
in die Abfrage qryLevel_Normalisieren reingepackt und rufe in mit:
'hier wird der Wert in der Spalte "Level" in eine reale Zahl um gewandelt
Set db = CurrentDb ' Datenbank definieren
Set rs = db.OpenRecordset("tblImport_Stuecklisten_neu") 'Tabelle definieren und öffnen
If Not rs.EOF Then rs.MoveFirst ' gehe zum ersten Datensatz
Do While Not rs.EOF
If rs.Fields("Level") = "0,2" Then
rs.Edit
rs.Fields("Level") = "2"
rs.Update
End If
DoCmd.OpenQuery "qryLevel_Normalisieren", acViewNormal
'Hier wird für jeden Datensatz eine ID generiert aus verschiedenen Spalten der Tabelle
rs.Edit ' Wenn Daten im Datensatz geändert werden sollen
rs.Fields("[ID_Temp_Stueckliste_Neu]") = rs!ID_Stueckliste_Neu & "_" & rs!Stueckliste & "_" & rs!Sachnummer & "_REV_[0" & rs![Stü-ÄZ] & "]"
rs.Update 'Änderungen am / neuen Datensatz speichern
'Hier wird die Sachnummer und die Revisionsnummer in eine neue Spalte geschrieben
rs.Edit ' Wenn Daten im Datensatz geändert werden sollen
rs.Fields("[SachNr_Rev]") = rs!Sachnummer & "-0" & rs![Stü-ÄZ]
rs.Update 'Änderungen am / neuen Datensatz speichern
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
Auf.
Leider hängt er in eine Endlosschleife
Hallo Jürgen,
problem der Endlosschleife gelöst und die Werte in Spalte Level werden berichtigt wie gewünscht 8)
'hier wird der Wert in der Spalte "Level" in eine reale Zahl um gewandelt
Set db = CurrentDb ' Datenbank definieren
Set rs = db.OpenRecordset("tblImport_Stuecklisten_neu") 'Tabelle definieren und öffnen
DoCmd.OpenQuery "qryLevel_Normalisieren", acViewNormal
If Not rs.EOF Then rs.MoveFirst ' gehe zum ersten Datensatz
Do While Not rs.EOF
If rs.Fields("Level") = "0,2" Then
rs.Edit
rs.Fields("Level") = "2"
rs.Update
End If
'Hier wird für jeden Datensatz eine ID generiert aus verschiedenen Spalten der Tabelle
rs.Edit ' Wenn Daten im Datensatz geändert werden sollen
rs.Fields("[ID_Temp_Stueckliste_Neu]") = rs!ID_Stueckliste_Neu & "_" & rs!Stueckliste & "_" & rs!Sachnummer & "_REV_[0" & rs![Stü-ÄZ] & "]"
rs.Update 'Änderungen am / neuen Datensatz speichern
'Hier wird die Sachnummer und die Revisionsnummer in eine neue Spalte geschrieben
rs.Edit ' Wenn Daten im Datensatz geändert werden sollen
rs.Fields("[SachNr_Rev]") = rs!Sachnummer & "-0" & rs![Stü-ÄZ]
rs.Update 'Änderungen am / neuen Datensatz speichern
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
Danke für deine Unterstützung. Bleibt nur noch das Problem mit den Stücklisten .-)
Gruss
Atuatuca (von der kalten Ostsee)