November 27, 2020, 06:34:18

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Geschwindigkeit Dlookup Tabeller oder Abfrage ?

Begonnen von mikepo, November 07, 2020, 18:11:50

⏪ vorheriges - nächstes ⏩

mikepo

hallo zusammen, hallo ekkehard, vielen dank hat funktioniert !!! danke !

mikepo

hallo zusammen, aber jetzt habe ich die anforderung, das nach dem gescannten artikel mehrere bedingungen zu prüfen sind. wäre da das schnellste über dlookup auf die daten der tabelle zuzugreifen ?

MzKlMu

Gruß
Klaus

mikepo

ich muss nachschauen ob der gescannte artikel schon mal gescannt wurde (somit in der tabelle aufscheint). anschließend muss nachgeschaut werden, ob er in der baugruppen-tabelle schon mal vorgekommen ist.

dh ein paar (tabellen) checks sind notwendig, bevor der artikel dann in einer tabelle erfasst wird.

(die checks sind notwendig, nicht das es zu doppelscans kommt)

DF6GL

Hallo,

Beispiel:

Sub txtArtScan_Beforeupdate(Cancel as Integer)
If Dcount("*","tblTabelle","ArtNr = '" & Me!txtArtScan.Text & "'") > 0 then
   Msgbox "Artikel schon vorhanden"
   Cancel =True
   Me.Undo
End If
End Sub

mikepo

top vielen dank ! und von der geschwindigkeit her ist das mit dcount bzw. dlookup eh wahrscheinlich ausreichend, auch für die zukunft gedacht wenn die tabellen immer größer werden ?

MzKlMu

Hallo,
haben die Artikel Tabelle und die Baugruppen Tabelle eine Beziehung ?
Gruß
Klaus

mikepo

ja, die ArtikelID kommt in der Baugruppen Tabelle als Fremdschlüssel vor

MzKlMu

Hallo,
dann kann es in der Baugruppen Tabelle keine Artikel geben, die in der Artikeltabelle nicht vorhanden sind. Es genügt also nur die Artikeltabelle zu prüfen.
Gruß
Klaus

mikepo

ja ich weiss, mir gehts auch nicht ums wie sondern nur um die geschwindigkeit

welche möglichkeit die schnellste wäre, solche prüfungen durchzuführen

MzKlMu

Hallo,
Zitatja ich weiss,
und warum schreibst Du es dann und verleitest zu falschen Überlegungen.
 
Zitatanschließend muss nachgeschaut werden, ob er in der baugruppen-tabelle schon mal vorgekommen ist.
Gruß
Klaus

DF6GL

Hallo,

warum drehst Du Dich dauernd um Deine Geschwindigkeitsphobie?


Das ist Punkt Z in der Prioritätenliste..


Selbst wenn es irgendwann tatsächlich zu einer merklichen Performance-Einbuße kommt, kann immer noch eine der  Ersatzlösungen für die Domänen-Funktionen benutzt werden.

Quick and Dirty:

Dim lngPersiD as Long, txtNachname as String

lngPersiD = 10

txtNachname = Dlookup("Nachname", "tblPersonen", "PersID =" & lngPersiD & ")"

' als Ersatz:
txtNachname = CurrentDb.OpenRecordset("Select Nachname from tblPersonen Where PersID = " & lngPersID )(0)