Aug
27

DoCmd.Save in MS Access funktioniert nicht

Filed Under (Consulting, PSAG) by on 27-08-2009 and tagged , , ,

Heute mußte ich feststellen, daß der Befehl “DoCmd.Save” in Microsoft Access 2003 nicht, wie erwartet, funktioniert. Ich habe ihn in einem Formular in Verwendung, dort wird, wenn der Anwender das Jahr auswählt, aus dem Jahr und einer fortlaufenden Nummer die sogenannte “Seriennummer” des Dokumentes generiert, in das Feld Seriennummer im Formular eingesetzt und dann das Formular gesichert, damit der nächste Benutzer, der ein neues Dokument anlegt, eine neue Seriennummer generiert:

‘ Generate next Serial Number
Dim strNextSerialNumber
strNextSerialNumber = _
   Mid(sqlDocuments!maxSerialNumber, 6)
strNextSerialNumber = strNextSerialNumber + 1
If IsNull(strNextSerialNumber) Then
‘ Enter first Number
strNextSerialNumber = “000001″
Else
‘ Enter generated Number
strNextSerialNumber = Left(“000000″, 6 – _
   Len(strNextSerialNumber)) & strNextSerialNumber
End If
Me.docSerialNumber = _
   Me.docYear & “_” & strNextSerialNumber

‘ Save Immediately
DoCmd.Save

So war es gedacht, doch kam es immer wieder vor, daß zwei Dokumente die gleiche Seriennummer bekommen sollten, was natürlich durch den Constraint in der Datenbank verhindert wird.

Nach einigem Rumprobieren, kam ich auf den Befehl

DoCmd.RunCommand acCmdSaveRecord

der genau das tut, was “DoCmd.Save” eigentlich tun sollte, nämlich die Daten aus dem Formular sofort in die Datenbank zurückschreiben.




Artikel, die Sie auch interessieren könnten:

coded by nessus


Leave a Reply