collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 57
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14037
  • stats Beiträge insgesamt: 67217
  • stats Themen insgesamt: 9066
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Datensatz Kopieren..Code Hilfe  (Gelesen 93 mal)

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 801
Datensatz Kopieren..Code Hilfe
« am: September 07, 2018, 15:01:24 »
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
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1294
Re: Datensatz Kopieren..Code Hilfe
« Antwort #1 am: September 07, 2018, 16:05:08 »
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
Grüße von der (⌒▽⌒)
 

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 801
Re: Datensatz Kopieren..Code Hilfe
« Antwort #2 am: September 07, 2018, 16:27:56 »
Hallo Lachtaube,

Danke für Deine Hilfe werde es mir dann genau ansehen!


 

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 801
Re: Datensatz Kopieren..Code Hilfe
« Antwort #3 am: September 08, 2018, 07:52:37 »
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
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23413
Re: Datensatz Kopieren..Code Hilfe
« Antwort #4 am: September 08, 2018, 08:36:29 »
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.


Zitat
egal ob ich die Indizes lösche oder nicht.

Vermutlich nicht alle "erwischt"...

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 801
Re: Datensatz Kopieren..Code Hilfe
« Antwort #5 am: September 08, 2018, 08:52:22 »
Danke Franz,
ich werde es nochmal kontrollieren!