Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kann mir das Verhalten nicht erklären (A00)

Begonnen von bejay, Juli 27, 2012, 12:14:10

⏪ vorheriges - nächstes ⏩

bejay

Ich habe eine Tabelle "Warenbewegung" mit dem Autoinkrement Primary "WBID" und derzeit 3 Datensätzen mit den Keys 3,4 ,5
Später wird die Tabelle viele Datensätze enthalten, daher habe ich mir gedacht den Recordset mit einer SQL Abfrage einzugrenzen.
Jetzt will ich den letzten Key (also den höchsten) zur weiteren Verarbeitung ermitteln. Das habe ich mit folgendem Schnipsel probiert:

Public Sub Test()
    Dim db As Database
    Dim rsBestand As DAO.Recordset
    Dim rsWbeweg As DAO.Recordset
    Dim D As Long 'DID
    Dim C As Date 'Charge
    Dim Dstart As Long
    Dim Dend As Long
   
   
    C = Forms![Bestand1]![txtCharge]
    D = Forms![Bestand1]![cmbDesign]
    Set db = CurrentDb
    Set rsWbeweg = db.OpenRecordset("SELECT * FROM Warenbewegung WHERE DID=" & cSql(D) & "AND Charge=" & cSql(C, vbDate))
    Z = rsWbeweg.RecordCount
    rsWbeweg.MoveFirst
    Dstart = rsWbeweg!WBID
    rsWbeweg.MoveLast
    Dend = rsWbeweg!WBID
   
    Debug.Print Dstart, Dend, Z



Hier die Ausgabe die ich nicht verstehe :

call Test
4             3          3

Warum ist Dstart nicht 3 und Dend nicht 5?

Gruß

bejay

bahasu

Hallo,

vielleicht liegt es daran, dass die order-Vorgabe fehlt. In etwa:
... order by WBID

Harald
Servus

MzKlMu

#2
Hallo,
eigentlich müsste die Kurzfassung auch genügen:
Public Sub Test()  
Dim Dstart As Long, Dend As Long, Z As Long
  Dstart = DMin("WBID", "Warenbewegung", "DID=" & cSql(D) & "AND Charge=" & cSql(C, vbDate))
  Dend = DMax("WBID", "Warenbewegung", "DID=" & cSql(D) & "AND Charge=" & cSql(C, vbDate))
  Z = DCount("*", "Warenbewegung", "DID=" & cSql(D) & "AND Charge=" & cSql(C, vbDate))
 
  Debug.Print Dstart, Dend, Z
End Sub


Wobei sich mir der Sinn der Kriterien nicht erschließt. Wenn nur Min und Max der ID sowie die DS-Zahl benötigt wird, genügt doch der Aufrauf der Funktionen ohne Kriterien.

Gruß Klaus

bejay

Hallo MzKlMu,
eigentlich genügt mir das Dend, der Rest war nur zum Ausprobieren. Die Kriterien benutze ich, weil es meine Umsetzung vom Geschäftsmodell so vorsieht. Es gibt z.B gleiche Waren unterschiedlicher Produktionschargen (Produktionsdatum), das wird mit den Kriterien eingegrenzt.

Deine Lösung gefällt mir sehr gut, werde es gleich mal probieren.

Gruß
bejay

bejay

Hallo MzKlMu,

das geht super, so kann ich mit der neuesten Warenbewegung der entsprechenden Ware weiterarbeiten.

Danke
Bejay