Alias Namen einer Tabellenspalte ändern
Karl Donaubauer
Gesendet: 08.04.12 10:59
Betreff: RE: Alias Namen einer Tabellenspalte ändern



Elite Veteran

Beiträge: 849
50010010010025
Ort: Wien
absalom - 07.04.12 18:51

ich suche eine Möglichkeit, den Alias Namen einer Tabellenspalte mit SQL / VBA zu ändern.

Ich meine wirklich den Alias einer Tabellenspalte ohne nachgeschaltete Abfrage.

Das weitere klingt eher, als meintest du keinen Alias, sondern die Eigenschaft "Beschriftung" eines Tabellenfeldes. Also die Überschrift in der Datenblattansicht einer Tabelle usw. Falls dem so ist, dann geht das nicht per SQL, weil es sich um eine Access-Eigenschaft handelt. Man kann sie aber per DAO-Programmierung einstellen bzw. erstellen, falls die Eigenschaft noch nicht existiert:

Public Sub procSetProp(strPrpVal As String)

On Error GoTo ErrProp

Dim db As DAO.Database
Dim tdf As TableDef
Dim prp As Property
Dim fld As Field

Set db = CurrentDb
Set tdf = db.TableDefs("DeineTabelle")

Set fld = tdf.Fields("DeinFeld")
fld.Properties("Caption") = strPrpVal

ExitProp:
db.Close: Set db = Nothing
Exit Sub

ErrProp:
If Err.Number = 3270 Then
Set prp = fld.CreateProperty("Caption", dbText, strPrpVal)
fld.Properties.Append prp
Resume ExitProp
End If

End Sub

Diese Prozedur kannst du z.B. in ein Standardmodul kopieren, also jene, die man im Datenbankfenster bzw. Navigationsbereich sieht. Dann kannst du sie von überall her aufrufen, z.B. so: procSetProp "1.2.2012"

Darauf gekommen bin ich aufgrund folgender Aufgabenstellung:
Eine Gruppe von Leuten machen ein oder mehrere Meetings, wobei nicht alle Leute bei allen Meetings dabei sind. Folgende Anzeige- und Tabellenstruktur möchte ich verwenden:

..........................1.2.2012......5.4.2012
Maier........................ja...............ja
Müller.....................nein..............ja
Schmidt....................ja..............nein

Für jedes weitere Meeting möchte ich die Tabelle um eine Spalte erweitern, wobei der (angezeigte) Name ein Datum ist (Ein Datum lässt sich aufgrund der konventionen) nicht als Name verwenden.
In meinem Formular könnte ich dann die Tabelle ohne Umwege anzeigen (nur die Breite müsste wohl angepasst werden) und bearbeiten.
Wenn das nicht fkt. müsste wohl eine extra Tabelle her, wo das echte Datum gespeichert wird. Ich schätze, dass ich an weiteren Stellen Mehraufwand hätte, den ich aber jetzt noch nicht abschätzen kann.

Das o.a. war die rein programmiertechnische Erläuterung, wie es ginge. Datenbanktechnisch rate ich dir heftig von einem solchen Vorgehen ab. Das wäre ok in einer Excel-Tabelle, aber nicht in einer relationalen DB. Du solltest das in mehrere Tabellen gliedern und mithilfe von Formularen und evtl. einer Kreuztabellenabfrage optisch und eingabetechnisch so gestalten wie in deiner Beschreibung.

Also 1 Tabelle für die Personendaten, 1 Tabelle für die Meetingdaten, 1 Tabelle in der du einträgst, wer teilgenommen hat. Das ist am Anfang etwas mehr Aufwand, aber sauberes DB-Design und wird dir bei vielen Auswertungen, Datenänderungen, Darstellungen in Formularen und Berichten usw. Arbeit ersparen.

-----
Servus
Karl
*********
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Access DevCon Vienna: https://www.donkarl.com/devcon
Access Forever: https://www.accessforever.org
Access News: https://www.youtube.com/playlist?list=PLVCeBbJIMDvdJ8ghMbEakJ6_EQyvy...
Top of the page Bottom of the page