Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access 2003 Kopieren in Archiv und anschl. löschen

Begonnen von schnalli, Juli 25, 2013, 15:10:01

⏪ vorheriges - nächstes ⏩

schnalli

Hallo Freunde!

Ich habe eine DB mit einem Formular wo zwei Listenfelder enthalten sind.
Im ersten Listenfeld [Liste1) werden Datensätze angezeigt (auch Filter eingebaut) die aus einer bestimmten Tabelle (f_Einstellgenehmigung) sind.
Durch markieren (anklicken) einzelner oder mehrere Datensätze kann man sie in das zweite Listenfeld (Liste2) kopieren (klick). Von Dort werden sie in eine zweite Tabelle >t_Archiv< kopiert(klick).
Soweit so gut. Aber mein Problem ist, dass anschließend die kopierten Datensätze aus der ersten Tabelle entfernt (gelöscht) werden sollen.

Anbei der Code, wo das kopieren schon funktioniert, aber der Code zum löschen noch fehlt.


Code:

Private Sub btnAddMarkierte_Click()
On Error GoTo Fehler
     Dim Sammeln As String
     Dim Ubergabe As String
     Dim i As Integer
     Dim v As Variant
     Dim strSQL As String
     Dim InsertSQL As String
     Dim DeleteSQL As String
    For i = 0 To Me!Liste2.ListCount - 1
       Me!Liste2.Selected(i) = True
     Next i
    With Me!Liste2
        If .ItemsSelected.Count = 0 Then
            MsgBox "Kein Listenfeldfeldeintrag vorhanden"
            Exit Sub
        End If
       'Sammeln der angeklickten Primarykeys in einer Variablen
       For Each v In .ItemsSelected
           Sammeln = Sammeln & ", " & .ItemData(v)
       Next
     End With
     If Len(Sammeln) > 0 Then
       Ubergabe = " WHERE ID_Einstellgenehmigung In(" & Mid$(Sammeln, 3) & ")"
     End If
     strSQL = "SELECT t_Einstellgenehmigung.*, * " & _
                "FROM t_Einstellgenehmigung" & Ubergabe & _
                "ORDER BY ID_Einstellgenehmigung"
     InsertSQL = "INSERT INTO t_Archiv " & strSQL
     CurrentDb.Execute InsertSQL
     Call DemarkierenListe2
     MsgBox "Die Datensätze wurde archiviert" & vbCrLf & "und die Parkplätze freigegeben!", vbInformation
     
     Exit Sub

exit_Fehler:
Exit Sub
Fehler:
MsgBox "Kein Listeneintrag vorhanden....Fehlermeldung."
Resume exit_Fehler
End Sub



Bitte um Hilfe.
Danke im voraus
Ernst

MzKlMu

Hallo,
von dem Vorhaben kann nur dringend abgeraten werden. Das ist in einer Datenbank unüblich bzw. eher falsch und führt nur zu Problemen.
Wenn in der DB die normalerweise erforderliche referentielle Integrität gesetzt ist, geht das ohnehin nicht.
Besser ist es in der Tabelle ein Feld für Kennzeichen anzulegen und dann die Datensätze zu filtern.
Eine Archivtabelle macht die Daten nur unübersichtlich und bringt Dir weder ein Sicherheitsgewinn noch Speicherplatzvorteile, im Gegenteil.


Den Vorschlag wirst Du auch in anderen Foren bekommen, wie Du ja schon gemerkt hast.
Gruß Klaus