Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: rabit am September 16, 2011, 21:13:43

Titel: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: rabit am September 16, 2011, 21:13:43
Hallo leute

Hab eine kleine db gebastellt um den warenbestand zu erfassen und ein- und auszubuchen.
soweit so gut alles läuft.
Jetzt möchte ich jedoch bei einer inventur alle datensätze in
der tbl buchungen mit einem button im formular löschen. (Passwortgeschützt)
Dann werden die gezählten bestände eingebucht.
damit will ich verhindern das die tbl unendlich lang wird.

mgf rabit

Titel: Re: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: database am September 16, 2011, 21:34:51
Hallo,

prinzipiell sollen KEINE Daten aus den Tabllen gelöscht werden, die in irgend einer Form in anderen Tabellen verwendet wurden oder werden.
uuuuund ...  Im Fall von Daten die beispielsweise mit Rechnungen in Verbindung stehen ist das Löschen von Daten sowieso mit dem finanziellen Tod deinerseits eng verbunden.

Datensätze werden daher besser durch Angabe eines Kennzeichens für ungültig erklärt um sie dann in Auswahlen udgl. nicht mehr anzuzeigen.
siehe: DBWiki - Vorsicht beim Löschen (http://www.dbwiki.net/wiki/Access_Design:_Vorsicht_beim_L%C3%B6schen)

Abgesehen davon aber KÖNNTE man das Löschen, wie von dir nachgefragt, so bewerkstelligen:


Option Compare Database
Option Explicit
Const PWD = "123"

Private Sub DeinButton_Click()

   Dim KW As String
 
   KW = InputBox("Kennwort eingeben")
   
   If KW = PWD Then
        'Befehl zum Löschen ALLER Datensätze aus der angegebenen Tabelle
       CurrentDb.Execute "DELETE * FROM DeineTabelle"
   Else
       MsgBox "Kennwort falsch!"
   End If
       

End Sub


Bitte obigen Code lediglich als Demo anzusehen, wie die Vorgänge ablaufen.
In der Praxis ist diese Art der Kennwortabfrage Humbug!

Zitatdamit will ich verhindern das die tbl unendlich lang wird
wobei es dir ganz und gar egal sein kann, wie 'lang' eine Tablle ist - also wieviele Datensätze in der Tabelle stehen.
Du solltest ja nicht mit der Tabelle arbeiten sondern ausschließlich mit Formularen,
die entweder direkt auf die Tabelle aufsetzen oder auf eine entsprechende Abfrage - wodurch dann die Anzahl der Datensätze auf die benötigten eingeschränkt wird.

HTH
Titel: Re: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: rabit am September 16, 2011, 21:45:10
danke für die schnelle antwort. leider is meine db zu groß zum anhängen.
bei den datensätzen handelt es sich lediglich um ein- und ausbuchungen
die keine bedeutung mehr haben sobald die bestände von mir gezählt werden.

ein pw abfrage ist kein thema.
den vba dafür habe ich schon in der db eingebaut....


Titel: Re: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: database am September 16, 2011, 21:55:50
Hallo,

es ist auch nicht notwendig, dass du die DB hochlädtst  ;)

mit dem Befehl wie oben gezeigt ...

CurrentDb.Execute "DELETE * FROM DeineTabelle"

... kannst du alle Daten aus der 'DeineTabelle' löschen ---> DeineTabelle durch den Namen der Tabelle ersetzen, aus der gelöscht werden soll!

Wenn du die Access-Warnung nicht haben willst, die dabei angezeigt wird...

DoCmd.SetWarnings False
CurrentDb.Execute "DELETE * FROM DeineTabelle"
DoCmd.SetWarnings True

Alles klar?  ;)

HTH
Titel: Re: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: rabit am September 16, 2011, 22:13:31
hat alles super geklappt. danke
Titel: Re: Löschen von allen datensätzen einer tbl per formularbutton
Beitrag von: database am September 17, 2011, 07:49:47
Hallo, guten Morgen,

sehr schön!

Möchtest du dann bitte den Thread in DEINEM ersten Beitrag auf 'gelöst' setzen - um die Form zu wahren.

DANKE