Neuigkeiten:

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

Mobiles Hauptmenü

Löschen von allen datensätzen einer tbl per formularbutton

Begonnen von rabit, September 16, 2011, 21:13:43

⏪ vorheriges - nächstes ⏩

rabit

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

Mein Name ist hase, ich weiß von nichts.

database

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

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

rabit

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


Mein Name ist hase, ich weiß von nichts.

database

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

rabit

Mein Name ist hase, ich weiß von nichts.

database

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