Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: wombl am Februar 16, 2011, 11:29:26

Titel: Löschen
Beitrag von: wombl am Februar 16, 2011, 11:29:26
Hallo,

ich habe meiner Datenbank nun einen Terminkalender beigefügt, welcher mich an meine Anrufe erinnern soll (wenn ich ein Gespräch mit einem Kunden an einem bestimmten tag zu einer bestimmen zeit haben soll.

Mein Problem das nun erst beim fertigstellen auftaucht daran hab ich nicht gedacht beim erstellen der Datenbank) ist folgendes.

wenn der termin da ist, erinnert mich der kalender an den anruf, danach, klicke ich auf erledigt und der Termin wird aus der liste gelöscht. soweit, so gut.

ZitatPrivate Sub löschen_Click()
If MsgBox("Termin wirklich löschen?", vbYesNo, " ") = vbYes Then
    DoCmd.RunSQL "Delete * From Termin where id =" & Me!ID
    Me.Requery
End If

Mein Problem, es wird der GESAMT Datensatz gelöscht, inkl Firmenname und aller anderen daten (es gibt nur eine tabelle mit dem autowert ID)  :'( kann mir jemand schreiben wie ich den Code umändern kann/muss, damit er nur den Inhalt der Felder Datum,Uhrzeit,Notizen,Alarm und vorher löscht, ohne gleich den ganzen datensatz  zu killen? 

Für alle die nun meinen es wäre besser gewesen 2 Tabellen anzulegen, STIMMT nachher ist man immer klüger als davor :)

Es würde ja schon reichen wenn er diesen termin nicht mehr als aktiv betrachten würde.
Bitte dringend um Antwort, weil eigentlich sollte die Datenbank am Monatg in Betrieb gehen, und naja ich fürchte das sind nicht die einzigen Kinderkrankheiten die auftauchen werden

lg
wombl
Titel: Re: Löschen
Beitrag von: database am Februar 16, 2011, 11:40:43
Hallo,

also erstmal - richtig! Du hättest die Tabellen trennen müssen, zumindest in tblKunden und tblTermine

Um Felder zu entleeren darfst du nichts löschen sondern musst ein Update auf den Datensatz machen - also eine Aktualisierungsabfrage loslassen.

Dazu ersetze in deinem Code diese Zeile:
DoCmd.RunSQL "Delete * From Termin where id =" & Me!ID


mit folgendem:

DoCmd.RunSQL ("UPDATE Termin SET Datum=Null, Uhrzeit=Null, Notizen=Null, Alarm=Null, vorher=Null WHERE id=" & Me!ID)


Deaktivieren funktioniert mit einer Tabelle nicht, dazu wäre eine 1:n - Beziehung notwendig.

HTH
Titel: Re: Löschen
Beitrag von: wombl am Februar 16, 2011, 12:14:40
danke für die schnelle Antwort... funktioniert super

Danke danke danke!!!!! :)