ich habe folgendes Problem.
Ich habe eine Tabelle, bei der ich via VBA eine Spalte mit dem Namen „Periode“ hinzufüge. Diese Spalte soll anschließend komplett mit dem Namen der Tabelle befüllt werden.
Momentan verwende ich den foglenden Code:
’ Feld Periode in Tabelle 2 einfügen
Set db = CurrentDb()
Set td = db.TableDefs(„2“)
With td
.Fields.Append .CreateField(„Periode“, dbText, 20)
.Fields.Refresh
End With
Set td = Nothing
Set db = Nothing
’ Felddatentyp in Zahl umwandeln
CurrentDb().Execute „ALTER TABLE 2 Alter COLUMN Periode LONG“, dbFailOnError
’ Felder in Spalte füllen
Set rstPeriode = CurrentDb.OpenRecordset(„2“, dbOpenDynaset)
rstPeriode.Edit
rstPeriode!Periode = „2“
rstPeriode.Update
Problem dabei ist, dass nur ein Feld befüllt wird und nicht die ganze Spalte. Außerdem habe ich hier noch nicht den Tabellennamen als Inhalt genommen, sondern erstmal nur eine fixe Zahl. BTW der Tabellenname ist eine Zahl, deswegen habe ich den Felddatentyp auf Zahl umgestellt.
Ich hoffe jemand hat eine Lösung, ich weiß bei dem Problem nicht weiter.
Naja wir haben mehrere von diesen Tabellen, die sehr sehr viele Zeilen haben und wir das nicht alles händisch machen wollen, weil es auch ständig aktualisiert wird. Im Allgemeinen die Spalte überhaupt nötig, um anschließend damit weiter zu rechnen.
Das wäre die Technik, um Werte einzubringen. Für eine Konstante würde man schlicht schreiben
db.Execute "Update
Set = ‚2‘"
Abgesehen davon schließe ich mich Franz’ Meinung an: Eine Spalte über alle Zeilen „automatisch“ zu befüllen ist fachlich unsinnig. Versuch lieber, das Datenmodell zu verbessern.