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
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.