Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Seek Method mit verknüpften Tabellen





Frage

Hallo zusammen, Ich habe das Problem. Das ich mit der "FindFirst" Funktion zuviel Zeit brauche. Nun gibt es ja die "Seek" Funktion. Situation: Eine Verknüpfte Tabelle, (tblArtikel) und auf dieser Tabelle ist dann eine Abfrage aufbebaut(qryArtikel) In dieser Abrage suche ich nach einem Artikel(ArtNr). Frage: Wie kann ich die Seek Funktion bei der qryArtikel verwenden. Das Problem, ist die Verknüpfte Tabelle! Gruss Iso

Antwort 1 von El Bobbele

Hallo Iso!

Seek kann auf verknüpften Tabellen nicht angewendet werden, ohne Wenn und Aber. Versuche stattdessen eine Filterung der Abfrage mit einem passenden Kriterium. Wenn das auch zu langsam ist, dann gehen dir allmählich die Optionen aus. Vielleicht kann mit einem Blick auf den betroffenen Code noch eine Optimierung durchgeführt werden. Ausserdem wäre es interessant zu wissen, wieviele Datensätze denn durchsucht werden sollen?

Gruss
El Bobbele

Antwort 2 von Iso

Hallo EL

Besten dank für deine Antwort.

Die Funkion sieht volgendermassen aus.
Ich habe sie auf das wesentliche gekürzt!

For intloop = 0 To AnzDatensaetze

Select Case Lieferanten
Case "L00001"
.........
rstQuelleL00001.MoveNext
Case "L00002"
........
rstQuelleL00002.MoveNext
Case Else ' Andere Werte.
End Select

strKriteriumNeuerLiferant = "[HstArtikelnummer] = '" & QHerstNr & "'"
rstZielArtHSTArtBestelln.FindFirst strKriteriumNeuerLiferant
If rstZielArtHSTArtBestelln.NoMatch Then
Call ZielArtikel
Call ZielLieferant_neuer_Artikel
Call ZielKalkulation
Else

ArtikelNr = rstZielArtHSTArtBestelln!Artikelnummer
Lieferant = rstZielArtHSTArtBestelln!Lieferant

strArtikelLieferant = ArtikelNr + Lieferant
strArtikelLieferantsuchen = "[strArtikelLieferant] = '" & strArtikelLieferant & "'"
rstZielArtHSTArtBestelln.FindFirst strArtikelLieferantsuchen

If rstZielArtHSTArtBestelln.NoMatch Then
rstZielLiferant.AddNew
'ArtikelNr = rstZielART!Artikelnummer
rstZielLiferant!Artikelnummer = ArtikelNr
rstZielLiferant!Lieferant = LieferantenInt
rstZielLiferant!Bestellnummer = QArtNr
'rstZielLiferant!DatumLetzterEK
rstZielLiferant!LetzterEK = QEPinkl
rstZielLiferant!Waehrung = "CHF"
rstZielLiferant!Preiseinheit = 1
rstZielLiferant!Mengeneinheit = "Stk."
rstZielLiferant!Rabatt = Rabatt
rstZielLiferant!Lieferfrist = 1
rstZielLiferant!Losgroesse = 1
rstZielLiferant!Mindestbestellmenge = 1
'rstZielLiferant!Aktualisierung
'rstZielLiferant!EKRabattgruppe
rstZielLiferant!Aktionspreis = 0
'rstZielLiferant!AktionspreisVon
'rstZielLiferant!AktionspreisBis
rstZielLiferant!AktionspreisPreiseinheit = 1
rstZielLiferant!AktionspreisMengeneinheit = 1
rstZielLiferant!AktionspreisWaehrung = "CHF"
rstZielLiferant.Update
End If
End If
Aktualisieren:
Next intloop


////
Ich hoffe, dass ich da was machen kann.

Gruss Iso



Antwort 3 von El Bobbele

Hallo Iso!

Der gezeigte Codeschnipsel reicht allein nicht aus, um da eine Optimierung durchführen zu können. Dazu braucht es schon die ganze Prozedur, inkl. des merkwürdigen Select-Abschnittes. Werden dort tatsächlich Lieferanten im Code hartverdrahtet benutzt? Was machen die drei Prozeduraufrufe von ZielArtikel bis ZielKalkulation? Warum verwendest du eine Schleife mit intLoop, wenn intLoop offensichtlich nirgends verwendet wird? Ein bisschen Erklärung zu dem ganzen Vorgang wäre sicherlich auch hilfreich.

Ggfs. kannst du mir die Datenbank auch schicken an elbobbele@yahoo.de.

Gruss
El Bobbele

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: