Ich habe heute in meiner DB eine Tabellenerstellungsabfrage und möchte diese
durch eine VBA Prozedur ersetzen:
SELECT qryMove.RegionName, qryMove.ProductID, qryMove.QtyRec, qryMove.Datum,
qryMove.QtyDel, qryMove.Type, qryMove.ID INTO tblStockTraffic
FROM qryMove;
Region, type und ID sind Text, der Rest is Double oder Date
Dabei möchte ich ProductID, Datum und RegionName indexieren (Dublikate
erlaubt), was ja eben mit einer Abfrage so einfach nicht geht. Ich denke auch
per VBA wäre das schneller, aber da ist mein Latein schon am Ende.
Hilft mir jemand mindestens mit einem kurzen Ansatz, so mit tableDef habe
ich mich schon herumgequält, aber ich kommen nicht klar mit den Indexen
Vielen Dank!
--
Franz
I.d.R. ist es besser und performanter so viel SQL wie möglich zu verwenden.
Beim Index-Erstellen wird's performancemäßig eher wurscht sein, aber schon
die Syntax ist mit SQL ja viel einfacher. z.B.
Dim db As DAO.Database
Set db = CurrentDb
db.Execute "Hier dein o.a. SQL-Statement"
und dann
db.Execute "CREATE INDEX ProductID ON tblStockTraffic (ProductID); "
db.Execute "CREATE INDEX RegionName ON tblStockTraffic (RegionName); "
db.Execute "CREATE INDEX RegionName ON tblStockTraffic (RegionName); "
"Datum" ist als Feldname übrigens suboptimal, weil ein Schlüsselwort in
Access
d.h. der dt. Name der Date-Funktion. s.a. www.donkarl.com FAQ 1.5
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Datenbank-Profis: http://www.dbdev.org
Franz Carlson schrieb:
> Ich habe heute in meiner DB eine Tabellenerstellungsabfrage und möchte diese
> durch eine VBA Prozedur ersetzen:
>
> SELECT qryMove.RegionName, qryMove.ProductID, qryMove.QtyRec, qryMove.Datum,
> qryMove.QtyDel, qryMove.Type, qryMove.ID INTO tblStockTraffic
> FROM qryMove;
>
> Region, type und ID sind Text, der Rest is Double oder Date
>
> Dabei möchte ich ProductID, Datum und RegionName indexieren (Dublikate
> erlaubt), was ja eben mit einer Abfrage so einfach nicht geht. Ich denke auch
> per VBA wäre das schneller, aber da ist mein Latein schon am Ende.
CurrentDb.Execute "DeineErstellungsabfrage oder dein SQL oben"
CurrentDb.Execute "CREATE INDEX ixStockTraffic " & _
"ON tblStockTraffic(ProductID, Datum, RegionName)"
mfG
--> stefan <--
--
Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm
ähh, zuviel Kopiererei, die mittlere Zeile sollte natürlich lauten:
db.Execute "CREATE INDEX Datum ON tblStockTraffic (Datum); "
Habt Dank Kameraden, die welche an einem sonnigen Freitagnachmittag noch die
Newsgroup hüten!
Werde mir alles zu Gemüte führen!
Karl: "Datum" ist ok, habe engl. Access03, hat bisher zu keinen Problemen
geführt, der Begriff ist auch nicht auf meinem Mist gewachsen, ich importiere
hier u.A. eine dt. Lagerbuchhaltung! Das Problem ist aber bekannt!
Gruss nach Wien und alle andere Lande!
Franz