Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Indexierte Tabelle erstellen per VBA

4 views
Skip to first unread message

Franz Carlson

unread,
May 12, 2006, 6:35:02 AM5/12/06
to
Hallo Freunde

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

Karl Donaubauer

unread,
May 12, 2006, 8:44:34 AM5/12/06
to

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


Stefan Hoffmann

unread,
May 12, 2006, 8:47:16 AM5/12/06
to
tach Franz,

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

Karl Donaubauer

unread,
May 12, 2006, 8:49:16 AM5/12/06
to

ähh, zuviel Kopiererei, die mittlere Zeile sollte natürlich lauten:
db.Execute "CREATE INDEX Datum ON tblStockTraffic (Datum); "

Franz Carlson

unread,
May 12, 2006, 12:50:01 PM5/12/06
to
"Karl Donaubauer" wrote:

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


0 new messages