Hi !
Danke für die schnelle Antwort !
Ich denke so geht es bestimmt, aber ich hätte da
noch eine Frage...Was ist wenn 2 Leute zeitgleich das Formular öffnen,im
Bezug auf die Vergabe der IDs ????cu
Marcus
Hallo Marcus,
da wäre die erste Lösung wohl doch besser. Leg einen neuen Satz an und frag die ID ab. Dann ist diese schon belegt und der nächste User bekommt eine höhere ID.
Gleichzeitige (Schreib)Zugriffe innerhalb der DB werden mit kurzzeitigen Locks der Sätze verhindert, so daß dieselbe ID nicht mehrfach vergeben wird.
Da Problem wird dann nur sein, daß Du keine eindeutigen ID's bekommst, die für jede Buchung immer wieder mit 1 beginnen.
Hier würde sich mein zweites Beispiel anbieten, mit dem Unterschied, daß Du den Satz direkt anlegst. Da die 3 Felder als PK hinterlegt sind, kann kein anderer User dieselbe ID bekommen.
<%
' --- Ermitteln der max. ID
SQL = "SELECT max(Feldname) As MaxID From tblTabelle"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL, objConn
New_ID = objRS.Fields("MaxID")
objRS.Close
' --- Abfrage mit neuer ID (0 Datensätze)
SQL = "SELECT * FROM tblTabelle WHERE ID = New_ID"
objRS.Open SQL, objConn
objRS.AddNew
objRS.Fields("Datum") = New_Date
objRS.Fields("Char") = New_Char
objRS.Fields("Feldname") = New_ID
objRS.Update
' --- Wiederholem der Abfrage mit neuer ID (1 Datensatz)
objRS.Requery
' --- Zuweisung an die Felder
...
objRS.Close
Set objRS = Nothing
%>
Tschau, Stefan