Hallo. Wiederaml ein Access-Problem: Wie kann ich in VB herausfinden, welche Zahl der Autowert in der Access-DB als nächstes generiert? Ich muss nach dem Befehl rs.AddNew wissen, welche ID generiert wird oder eben wurde.
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hi anwender,
ich bezweifle, ob du herausfinden kannst, welcher Autowert als nächstes generiert wird. Wenn du dir aber von der ACCESS-Datenbank ein leeres Recordset holst, es mit ADDNEW füllst und dann wieder abspeicherst, bekommst du den neuen Autowert zurückgeliefert. Das Abspeichern geht etwa so:
'###################################################################################################################
Public Function Save_RS(XMTR As ADODB.Recordset, DBPathNFile As String, Optional ReturnID As Long, Optional PW As String) As Boolean
Dim p_cn As ADODB.Connection
Const pc_FuncName = "Save_RS"
On Error GoTo Errorhandler
Dim p_rs As New ADODB.Recordset, p_RetID As Long
Set p_cn = New ADODB.Connection
With p_cn
.ConnectionString = DB_Connect(DBPathNFile, PW)
.Open
End With
With XMTR
If .RecordCount > 0 Then
If .BOF = True Or .EOF = True Then
.MoveFirst
End If
End If
.ActiveConnection = p_cn
.UpdateBatch
If .RecordCount = 1 Then
If IsNumeric(.Fields(0).Value) = True Then
ReturnID = .Fields(0).Value
End If
End If
Set .ActiveConnection = Nothing
End With
p_cn.Close
Set p_cn = Nothing
Save_RS = True
Exit Function
Errorhandler:
Set p_cn = Nothing
Save_RS = False
Err.Raise Err.Number & vbCrLf & "DESCRIPTION: " & Err.Description & vbCrLf & "Version: " & AppVersion & vbCrLf & mc_modulename & vbCrLf & pc_FuncName
End Function
#####################################################################################################################
Best Grüsze
Sylvia
[Diese Nachricht wurde nachträglich bearbeitet.]