Feldname während der Laufzeit ändern

Kann der Feldname einer Abfrage zur Laufzeit durch den Benutzer geändert werden ohne in den Entwurfmodus zu wechseln?

Danke

Gruss kussji

Hallo,

Kann der Feldname einer Abfrage zur Laufzeit durch den
Benutzer geändert werden ohne in den Entwurfmodus zu wechseln?

meist Du den Namen eines in der Abfrage abgefragten Feldes, so wie in

SELECT Tabelle_Beispiel.Feld_Beispiel AS Beispiel FROM …

oder den Namen der Abfrage selbst? Was genau hast Du vor?

Ulrich

Ja ich habe eine Tabelle „Sprachen“ mit Sprachübersetzungen Felder:
Id, Deutsch, Französich, Italienisch, Englisch

Dann habe ich 3 Abfragen:

  1. mit Feldnamen „Deutsch, Französich“
  2. mit Feldnamen „Deutsch, Italienisch“
  3. mit Feldnamen „Deutsch, Englisch“
    alle aus der Tabelle Sprachen

nun möchte ich die Abfragen in ein dBase *.dbf exportiern, es ist aber notwendig, dass die Feldnamen in der Exportdatei für „Deutsch“ -> „Nativ“ heisst und für die Fremdsprache -> „Local“

Die einfachste Möglichkeit wäre es doch, zwei Abfrage anzulegen und bei Bedarf die jeweils gewünschte aufzurufen.

Eine andere (komplizierte) Möglichkeit: Du kannst mittels VBA (zum Beispiel hinter einen Button auf einem Formular plaziert) während der Laufzeit Abfragen komplett neu erstellen und dabei auch Elemente des Formulars (zum Beispiel Kombinationsfelder, in denen der Benutzer etwas ausgewählt hat mit einbinden. Man muß nur eine Stringvariable (stSQL siehe unten) mit der der Abfrage entsprechenden SQL-Ausdruck erstellen.

Hier ein Beispiel:

Dim db As Database
Dim stSQL As String
Dim qdfNew As QueryDef, qdfLoop As QueryDef
Dim stAbfrage As String

'Abfragen erstellen

'Prüfen, ob Abfrage existiert (Wenn ja, löschen)

stAbfrage = „Abfrage_Name“

Set db = CurrentDb

For Each qdfLoop In db.QueryDefs

If qdfLoop.Name = stAbfrage Then
db.QueryDefs.Delete stAbfrage
Else
'Nichts tun
End If

Next qdfLoop

'Abfrage_Name neu erstellen

stSQL = „SELECT Tabelle_Beispiel.Feld AS wasauchimmer …“
Set qdfNew = db.CreateQueryDef(stAbfrage, stSQL)

Set qdfNew = Nothing
Set db = Nothing

Ulrich