Hallo an alle,
könnte mir hier jemand behilfllich sein bitte.
Private Sub btnCopy_Click()
Dim rs As DAO.Recordset
Dim rsn As DAO.Recordset
Dim fld As DAO.Field
Dim AktID As Long
Dim intMit As Integer
Dim lngZahl As Long
Dim strSQL As String
AktID = Me.ObTerID
intMit = Me.ObTerMitIDRef
lngZahl = InputBox("MitID")
strSQL = "SELECT * FROM tblTestTabelle WHERE ObTerID = " & AktID
Set rsn = CurrentDb.OpenRecordset("tblTestTabelle", dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
With rs
If .Fields("ObTerMitIDRef").Value = lngZahl Then
MsgBox "Gleicher Mitarbeiter!"
Exit Sub
Else
If Not .EOF Then
rsn.AddNew
For Each fld In rs.Fields
If fld.Name <> "ObTerID" Then
rsn(fld.Name) = fld.Value
End If
Next
rsn.Update
End If
End If
End With
rs.Close
rsn.Close
Set rs = Nothing
Set rsn = Nothing
End Sub
Ich habe zwar Indizes in der Tabelle die aber eindeutige DS verlangen wenn Datum Anfang Ende und Mitarbeiter gleich sind.
Wenn ich nun den Code ausführe bekomme ich aber immer die selbe Fehlermeldung das Indizes entweder gelöscht oder anders gesetzt werden müssen das der Datensatz eingefügt werden kann.
Ich hab natürlich einen neuen DS angelegt und eine Neue Mitarbeiter ID eingetragen bekomme aber immer die selbe Fehlermeldung.
Was hab ich im Code falsch gemacht?
Wäre dankbar wenn mir hier jemand helfen könnte..
Mfg
Albert
Nimm besser das Recordset, welches sowieso schon vorhanden ist, bzw. den Clone davon.
Schema:Private Sub btnCopy_Click()
Dim fld As DAO.Field
Dim lngZahl As Long
If Me.Dirty Then
MsgBox "Zuerst den Datensatz speichern"
Exit Sub
ElseIf Me.NewRecord Then
MsgBox "Ein neuer Datensatz kann nicht kopiert werden"
Exit Sub
End If
lngZahl = InputBox("MitID") 'sehr optimistisch ausgelegt
With Me.RecordsetClone
.AddNew
For Each fld In .Fields
Select Case fld.Name
Case "Autowertfeldname" 'kümmert sich die Engine drun
Case "ObTerMitIDRef"
fld.Value = lngZahl
Case "DeinAnderesAusnahmefeld"
fld.Value = 4711 'kann ich nicht zuordnen
Case Else
fld.Value = Me(fld.Name).Value
End Select
Next
.Update
Me.Bookmark = .Bookmark
End With
End Sub
Hallo Lachtaube,
Danke für Deine Hilfe werde es mir dann genau ansehen!
Hallo,
leider bekomme ich immer noch den Laufzeitfehler 3022 egal ob ich die Indizes lösche oder nicht.
Weiß hier vielleicht jemand woran es liegen könnte?
Vielen Dank
Albert
Hallo,
dann schau doch mal alle Tabellenfelder an, ob bei denen (außer dem Autowert-Feld) ein eindeutiger Index gesetzt ist und entferne ggfls. den Index, bzw. stelle ihn auf "Duplikate erlaubt" um.
Zitategal ob ich die Indizes lösche oder nicht.
Vermutlich nicht alle "erwischt"...
Danke Franz,
ich werde es nochmal kontrollieren!