title image


Smiley Aktualisieren einer Tabelle nach 2 Suchkriterien
Folgendes Problem

Es soll eine Haupttabelle mit Artikelnummer und Lieferantennummer als Find First

Kriterium und den weiteren Feldern wie Preise etc aktualisiert werden. In der Haupttabelle ist Feld Artikelnummer indiziert jedoch duplikate möglich,

da es gleiche Artikelnummern gibt jedoch bei verschiedenen Lieferanten.

Wer kann mir eine VBA Routine anbieten die den passenden Datensatz ( Artikelnummer mit Lieferantenummer findet). Beide Nummern werden als Variable belegt die er sich aus der Datenliefernden Tabelle holt.

Kleiner Ausschnitt aus meinem VBA Code der nicht schnell genug läuft. ca 200.000 Datensätze

Sub

Dim DB1 As Database, Tabelle1 As Recordset

Dim DB2 As Database, Tabelle2 As Recordset

Dim Hartikelnr As String, Hbruttopreis As Currency

Dim Kriterium As String, Lief As Integer



Set DB1 = DBEngine.Workspaces(0).Databases(0)

Set Tabelle1 = DB1.OpenRecordset("Datenlieferer", DB_OPEN_DYNASET)



Set DB2 = DBEngine.Workspaces(0).Databases(0)

Set Tabelle2 = DB1.OpenRecordset("Haupttabelle", DB_OPEN_DYNASET)



Lesezeichen = X



Kriterium = "Artikelnr>'0'"



Tabelle1.FindFirst Kriterium



Do Until Tabelle1.NoMatch



Hartikelnr = Tabelle1.Artikelnr

Hbruttopreis = Tabelle1.Bruttopreis

Lief = Tabelle1.Lieferant



If Lesezeichen = X Then

Tabelle2.FindFirst "Artikelnr = '" & Hartikelnr & "'" & "And Lieferant=" & Lief

Else

Tabelle2.Bookmark = Lesezeichen

Tabelle2.FindNext "Artikelnr = '" & Hartikelnr & "'" & "And Lieferant=" & Lief

End If



If Tabelle2.NoMatch Then

Tabelle2.AddNew

Tabelle2.Artikelnr = Hartikelnr

Tabelle2.Bruttopreis = Hbruttopreis

Tabelle2.Lieferant = Lief

Tabelle2.Update

Else

Lesezeichen = Tabelle2.Bookmark

Tabelle2.Edit

Tabelle2.Bruttopreis = Hbruttopreis

End If

Tabelle1.FindNext Kriterium



Loop



Tabelle1.Close

Tabelle2.Close

End sub

Vielen Dank und Grüße an den Tippgeber Info@ats-autoteile.com

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: