Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datensatz mehrfach duplizieren
Gehe zu Seite 1, 2  Weiter
zurück: Anzeige Anzahl in einem Listenfeld ausgegebener Datensätze weiter: Mehrere Kombinatinsfelder abhängig von einem Kombifeld Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
janosch1979
Gast


Verfasst am:
19. Jun 2007, 15:21
Rufname:

Datensatz mehrfach duplizieren - Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hallo,

ich habe ein Formular, in dem ich einen Button einbauen möchte, der Datensätze dupliziert.

Dazu verwende ich folgenden Code:
Code:
Private Sub Befehl227_Click()
    DoCmd.RunCommand acCmdSelectRecord                         
    DoCmd.RunCommand acCmdCopy                                     
    DoCmd.RunCommand acCmdPasteAppend                         
End Sub
Nun möchte ich den Code gerne so abändern, dass eine Aufforderung erscheint, die die Anzahl der Duplikationen abfragt. D.h. wenn ich einen Datensatz 16x duplizieren möchte, möchte ich nicht 16x auf den Button klicken, sondern nach Aufforderung "16" eingeben, woraufhin der DS 16x dupliziert wird.

Ich kenne mich leider mit der Programmierung nicht so gut aus. Ist soetwas möglich?

Ich danke Euch im Voraus!
Willi Wipp
Moderator


Verfasst am:
19. Jun 2007, 17:55
Rufname:
Wohnort: Raum Wiesbaden


Re: Datensatz mehrfach duplizieren - Re: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hi janosch1979,

ich wuerde das zwar mit einem Formular-Steuerelement anstelle der Eingabe-Box loesen
und auch nicht unbedingt ueber das DoCmd.RunCommand, aber so sollte es funktionieren
Code:
Private Sub Befehl227_Click()
    Dim lngI        As Long
    Dim lngIMax     As Long
    Dim strEingabe  As String
   
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdCopy
    strEingabe = InputBox("Wie oft?", , 1)
    'Benutzereingabe wurde abgebrochen
    If StrPtr(strEingabe) = 0 Then Exit Sub
    lngIMax = Val(strEingabe)
    For lngI = 1 To lngIMax
        DoCmd.RunCommand acCmdPasteAppend
    Next lngI
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
janosch1979.
Gast


Verfasst am:
20. Jun 2007, 09:01
Rufname:

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hi Willi Wipp,

vielen Dank für Deine Lösung! Es funktioniert und erfüllt meine beabsichtigten Zwecke.
Danke!

Gruß,

janosch
nakoda
Office Power User


Verfasst am:
21. Jun 2007, 14:59
Rufname: Armin
Wohnort: Hamurg

Re: Datensatz mehrfach duplizieren - Re: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Moin Willi Wipp,
Willi Wipp - 19. Jun 2007, 17:55 hat folgendes geschrieben:
ich wuerde das zwar mit einem Formular-Steuerelement anstelle der Eingabe-Box loesen
und auch nicht unbedingt ueber das DoCmd.RunCommand, aber so sollte es funktionieren
Wie würdest Du es denn machen? Gibt es einen "schöneren" Weg?
Das Problem von Janosch hatte ich nämlich auch schon, und war auf
Suche nach etwas eleganterem. Smile

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
Willi Wipp
Moderator


Verfasst am:
21. Jun 2007, 16:36
Rufname:
Wohnort: Raum Wiesbaden


Re: Datensatz mehrfach duplizieren (II) - Re: Datensatz mehrfach duplizieren (II)

Nach oben
       Version: Office 2003

Hi nakoda,

ich wuerde ueber Recordset's gehen.
Grund: mit DoCmd.RunCommand ... werden nur die aktuell auf dem Formular angezeigten Werte kopiert.
Man hat auch keinen Einfluss auf Fremdschluessel, etc.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
nakoda
Office Power User


Verfasst am:
22. Jun 2007, 12:01
Rufname: Armin
Wohnort: Hamurg

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

nakoda am 22. Jun 2007 um 10:59 hat folgendes geschrieben:
Meinst Du ungefähr wie hier: Re: Datensatz duplizieren
Na ob ich das hinbekomme. Mal versuchen. Embarassed

Wie zu erwarten war bin ich zu doof dafür.
Code:
Private Sub BtnDuplizieren_Click()
    Const cstrKeyID     As String = "KeyID"
    Dim lngKeyIDAlt     As Long
    Dim lngKeyIDNeu     As Long
    Dim strSQL          As String
    Dim rs              As DAO.Recordset
    Dim fld             As DAO.Field
   
    lngKeyIDAlt = Me(cstrKeyID)                     'Primärschlüssel speichern
    Set rs = Me.RecordsetClone
    With Me.Recordset
        rs.Bookmark = .Bookmark
        .AddNew  'Hier bricht er ab und gibt Fehler 3426 aus #################
        For Each fld In rs.Fields
            If fld.Name <> cstrKeyID Then          'Wenn nicht Primärschlüssel
                .Fields(fld.Name) = fld                         'Wert kopieren
            End If
        Next fld
        lngKeyIDNeu = .Fields(cstrKeyID)            'Primärschlüssel speichern
        .Update
    End With
    rs.Close
    Debug.Print lngKeyIDNeu
    Me.Form.Requery
    strSQL = "SELECT * " & _
               "FROM [" & Me.Form.RecordSource & "] " & _
              "WHERE [" & cstrKeyID & "] = " & lngKeyIDAlt
    Debug.Print strSQL
'    Stop
    Set rs = DBEngine(0)(0).OpenRecordset(strSQL)
    If Not (rs.BOF And rs.EOF) Then
        rs.MoveFirst
        Do Until rs.EOF
            With Me.Form.Recordset
                .AddNew
                For Each fld In rs.Fields
                    Select Case fld.Name
                      Case cstrKeyID
                        .Fields(cstrKeyID) = lngKeyIDNeu
                      Case Else
                        .Fields(fld.Name) = fld                 'Wert kopieren
                    End Select
                Next fld
                .Update
            End With
            rs.MoveNext
        Loop
    End If
End Sub

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
Willi Wipp
Moderator


Verfasst am:
22. Jun 2007, 12:18
Rufname:
Wohnort: Raum Wiesbaden

Re: Datensatz mehrfach duplizieren (III) - Re: Datensatz mehrfach duplizieren (III)

Nach oben
       Version: Office 2003

Hi nakoda,

Dir ist klar das Dieser Code fuer das Kopieren von eine HFo-DS und den entsprechenden UFo-DS gedacht ist?
Kannst Du denn in dem Formular einen neuen DS anlegen?
Wie waere es mit dem Text der Fehlermeldung, ich kenne die nicht alle auswendig!
Man koennte es auch mit einer entsprechenden Anfuegeabfrage vereinfachen.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
nakoda
Office Power User


Verfasst am:
23. Jun 2007, 11:55
Rufname: Armin
Wohnort: Hamurg

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hallo Willi Wipp,

irgendwie war ich der irrigen Meinung das würde so passen
wie ich das geändert habe. *getäuscht*
Das ganze findet in nur einem HFo statt und bei der Eingabe eines
DS soll gefragt werden wie oft dieser angelegt werden soll.
Die konkrete Fehlermeldung das die Funktion Anfügen zur Zeit nicht zur Verfügung steht.

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
Willi Wipp
Moderator


Verfasst am:
24. Jun 2007, 00:37
Rufname:
Wohnort: Raum Wiesbaden

Re: Datensatz mehrfach duplizieren (II) - Re: Datensatz mehrfach duplizieren (II)

Nach oben
       Version: Office 2003

Hi nakoda,

als Erstes fehlt noch die Antwort auf diese Frage
Willi Wipp - 22. Jun 2007, 12:18 hat folgendes geschrieben:
Kannst Du denn in dem Formular einen neuen DS anlegen?
Wenn das geht, dann sollte es etwa so funktionieren
Code:
Private Sub BtnDuplizieren_Click()
    Const cstrKeyID As String = "KeyID"
    Dim strSQL      As String
    Dim rs          As DAO.Recordset
    Dim fld         As DAO.Field
    Dim lngI        As Long
    Dim lngIMax     As Long
'    Dim strEingabe  As String
   
' Ueber eine InputBox
'    strEingabe = InputBox("Wie oft?", , 1)
'    'Benutzereingabe wurde abgebrochen
'    If StrPtr(strEingabe) = 0 Then Exit Sub
'    lngIMax = Val(strEingabe)
' Oder gleich ueber Formular-Steuerelement
    lngIMax = Nz(Me!DasAnzahlFeld)
    If lngIMax = 0 Then Exit Sub
    Set rs = Me.RecordsetClone
    With Me.Recordset
        rs.Bookmark = .Bookmark
        For lngI = 1 To lngIMax
            .AddNew
            For Each fld In rs.Fields
                If fld.Name <> cstrKeyID Then      'Wenn nicht Primärschlüssel
                    .Fields(fld.Name) = fld                     'Wert kopieren
                End If
            Next fld
            .Update
        Next lngI
    End With
    rs.Close
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
nakoda
Office Power User


Verfasst am:
25. Jun 2007, 08:18
Rufname: Armin
Wohnort: Hamurg

Re: Datensatz mehrfach duplizieren (II) - Re: Datensatz mehrfach duplizieren (II)

Nach oben
       Version: Office 2003

Moin Willi Wipp,

schläfst Du eigentlich auch mal? Wink
Willi Wipp - 24. Jun 2007, 00:37 hat folgendes geschrieben:
als Erstes fehlt noch die Antwort auf diese Frage...
Sorry!
Ja! DS kann angelegt werden.
Der Rest klappt auch prima. Danke Dir dafür.

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
janosch1979
noch grün hinter den Ohren :)


Verfasst am:
17. Jul 2007, 09:25
Rufname:

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hallo,

ich muss dieses Thema nochmal aufgreifen.

Ich habe versucht, die "elegante" Methode umzusetzen, so dass ich ein Eingabefeld habe, in das ich die Anzahl der Duplikationen eingebe:
Code:
Private Sub BtnDuplizieren_Click()
    Const cstrKeyID As String = "Leergutumfänge_ID"
    Dim strSQL      As String
    Dim rs          As DAO.Recordset
    Dim fld         As DAO.Field
    Dim lngI        As Long
    Dim lngIMax     As Long
    Dim strEingabe  As String

    lngIMax = Nz(Me!AnzahlFeld)
    If lngIMax = 0 Then Exit Sub
    Set rs = Me.RecordsetClone
    With Me.Recordset
        rs.Bookmark = .Bookmark
        For lngI = 1 To lngIMax
            .AddNew
            For Each fld In rs.Fields
                If fld.Name <> cstrKeyID Then      'Wenn nicht Primärschlüssel
                    .Fields(fld.Name) = fld                     'Wert kopieren
                End If
            Next fld
            .Update
        Next lngI
    End With
    rs.Close
End Sub
Hier bekomme ich den Laufzeitfehler
Zitat:
3021: No current record
mit Verweis auf
Code:
        rs.Bookmark = .Bookmark
Woran liegt das?
Willi Wipp
Moderator


Verfasst am:
17. Jul 2007, 15:41
Rufname:
Wohnort: Raum Wiesbaden

Re: Datensatz mehrfach duplizieren (III) - Re: Datensatz mehrfach duplizieren (III)

Nach oben
       Version: Office 2003

Hi janosch1979,

um den Code auszufuehren musst Du Dich auf einem gueltigen gespeicherten DS befinden.
Die Fehlermeldung laesst mich daran zweifeln das dieses zutrifft Wink

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 17. Jul 2007, 16:55, insgesamt einmal bearbeitet
janosch1979
noch grün hinter den Ohren :)


Verfasst am:
17. Jul 2007, 16:35
Rufname:

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hallo Willi Wipp,

stimmt, das war nicht der Fall Idea

Danke Laughing
nakoda
Office Power User


Verfasst am:
24. Jul 2007, 14:55
Rufname: Armin
Wohnort: Hamurg

AW: Datensatz mehrfach duplizieren - AW: Datensatz mehrfach duplizieren

Nach oben
       Version: Office 2003

Hallo Willi Wipp,

Du hast mir folgende schöne Funktion gebastelt:
Code:
Private Sub BtnDuplizieren_Click()
    Const cstrKeyID As String = "KeyID"
    Dim strSQL      As String
    Dim rs          As DAO.Recordset
    Dim fld         As DAO.Field
    Dim lngI        As Long
    Dim lngIMax     As Long

    DoCmd.RunCommand acCmdSaveRecord
    lngIMax = Nz(Me!DasAnzahlFeld)
    If lngIMax = 0 Then Exit Sub
    Set rs = Me.RecordsetClone
    With Me.Recordset
        rs.Bookmark = .Bookmark
        For lngI = 1 To lngIMax
            .AddNew
            For Each fld In rs.Fields
                If fld.Name <> cstrKeyID Then      'Wenn nicht Primärschlüssel
                    .Fields(fld.Name) = fld                     'Wert kopieren
                End If
            Next fld
            .Update
        Next lngI
    End With
    rs.Close
    MsgBox "Es wurde/n " & Me!DasAnzahlFeld & " Schlüssel hinzugefügt!", vbInformation + vbOKOnly
    Me.DasAnzahlFeld = Null
End Sub
Bei bereits vorhandenen DS hat sich das bis jetzt auch bestens bewährt.
Nur wenn ein ganz neuer angelegt wird fügt er immer einen mehr hinzu als
eingegeben. Wenn ich hier
Code:
        For lngI = 1 To lngIMax
eine 2 eintrage dann gehts allerdings kann man dann keinen einzelnen mehr
hinzufügen.
Was kann man denn da machen Question

P.S.: Schon Zeit hierfür (Doppelte Paarungen verhindern) gehabt? *bescheidenfrag* Embarassed

_________________
Code:
1 If Problem > Wissen Then
2 UseGoogle(Problem)
3 UseSuFu(Problem)
4 End If
Willi Wipp
Moderator


Verfasst am:
25. Jul 2007, 00:08
Rufname:
Wohnort: Raum Wiesbaden


Re: Datensatz mehrfach duplizieren (III) - Re: Datensatz mehrfach duplizieren (III)

Nach oben
       Version: Office 2003

Hi nakoda,

na als erstes wird ja der "aktuelle" neue DS gespeichert. Danach wird dieser DS entsprechend der Anzahl dupliziert.
==> Einen weniger eingeben Wink oder es so versuchen
Code:
    lngIMax = Nz(Me!DasAnzahlFeld) + Me.NewRecord 'Wenn neu ==> 1 weniger
    DoCmd.RunCommand acCmdSaveRecord

Nein den Beitrag hatte ich schon von meiner Liste genommen, wegen des Feedbacks Embarassed

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Neuer Datensatz trotz aktivem Filter 2 pukamon 595 17. Nov 2005, 10:48
pukamon Neuer Datensatz trotz aktivem Filter
Keine neuen Beiträge Access Tabellen & Abfragen: Neuer Datensatz in Access 6 Heinz-Erich 1220 02. Okt 2005, 20:09
Gast Neuer Datensatz in Access
Keine neuen Beiträge Access Tabellen & Abfragen: Spalte in einer Abfrage über Formular mehrfach abfragen 2 terat 771 28. Sep 2005, 09:07
terat Spalte in einer Abfrage über Formular mehrfach abfragen
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage ohne Datensatz 3 Messbock 666 26. Aug 2005, 16:41
cablit Auswahlabfrage ohne Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: unlöschbaren Datensatz erstellen 1 Vincent_Vega 899 15. Aug 2005, 21:45
stpimi unlöschbaren Datensatz erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Reduzierung mehrerer Datensätze auf einen Datensatz 2 Pulldown 819 03. Jun 2005, 09:32
Pulldown Reduzierung mehrerer Datensätze auf einen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz automatisch kopieren??? 0 Edelschnitt 701 11. Mai 2005, 19:41
Edelschnitt Datensatz automatisch kopieren???
Keine neuen Beiträge Access Tabellen & Abfragen: Hintergrundfarbe in Datensatz 1 Rheinbote 900 24. Feb 2005, 20:18
stpimi Hintergrundfarbe in Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info 2 Steve 914 14. Jan 2005, 00:43
Steve Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info
Keine neuen Beiträge Access Tabellen & Abfragen: Bei der Aktualisierung eines Tabellenwertes neuen Datensatz 6 zheng 810 07. Dez 2004, 22:35
zheng Bei der Aktualisierung eines Tabellenwertes neuen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Aktionsabfrage in Formular -immer nur einen Datensatz ändern 6 blauvogel 1092 08. Okt 2004, 11:43
Skogafoss Aktionsabfrage in Formular -immer nur einen Datensatz ändern
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz nach Datum suchen?? 1 Hansen 1390 04. Okt 2004, 12:16
stpimi Datensatz nach Datum suchen??
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps