Kann der Feldname einer Abfrage zur Laufzeit durch den Benutzer geändert werden ohne in den Entwurfmodus zu wechseln?
Danke
Gruss kussji
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:
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