Abfragen ändern

02/06/2008 - 16:40 von Marko Lemmel | Report spam
Hallo,
ich muss bei ca 50 mdb die Abfragen àndern.
Der Aufbau ist bei allen gleich.

Nun muss ich bei ca 60 Anfügeabfrage in einer DB was àndern.

Und zwar muss ich einfach eine Spalte àndern.

Nun wollte ich sie erst löschen und dann per VBA wieder einfügen.

Die Tabellen Struktur hat sich geàndert und muss nun die Tabelle àndern.

Der Ansatz war erstmal so:
Dim db As dao.Database, tbl As dao.TableDef, f As dao.Field
Dim ab As dao.QueryDef, fi As dao.QueryDef
Set db = CurrentDb

Set db = CurrentDb
'On Error GoTo ErrHandler
For Each fi In db.QueryDefs
If IsNumeric(fi.Name) Then
Select Case CLng(fi.Name)
Case 1 To 3
fi.Fields.Delete ("Warengrp") 'Hinzufügen von einer Spalte in der
Abfrage 1 bis 60
Debug.Print fi.Name
End Select

End If
Next fi

Set db = Nothing

Nur leider geht das nicht so.und ich weiß nicht warum

1. Mache ich was total falsch mit den QueryDefs
2. Kann ich nicht einfach die Tabelle per VBA àndern?

Im Bereich der Tabellen habe ich es per VBA hinbekommennur bei den
Anfüge abfragen nicht.

Vielleicht hat ja jemand ein TIPP.

Danke erstmal aus dem heißen Norden

LG
 

Lesen sie die antworten

#1 Thomas Möller
02/06/2008 - 17:51 | Warnen spam
Hallo Marko,

"Marko Lemmel" schrieb:
ich muss bei ca 50 mdb die Abfragen àndern.
Der Aufbau ist bei allen gleich.
Nun muss ich bei ca 60 Anfügeabfrage in einer DB was àndern.
Und zwar muss ich einfach eine Spalte àndern.



Du kannst den SQL-String einer Abfrage über die Eigenschaft SQL des
QueryDef-Objekts auslesen und in einer Variablen speichern.
Mittels der Funktion Replace kannst Du den Feldnamen ersetzen.
Danach kannst Du den SQL-String wieder über die Eigenschaft SQL des
QueryDef-Objekts zurückschreiben:

strSQL = db.QueryDefs("qryDeineAbfrage").SQL

strSQL = Replace(.

db.QueryDefs("qryDeineAbfrage").SQL = strSQL


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen