Office: Leere Datensätze löschen

Helfe beim Thema Leere Datensätze löschen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Liebes Forum, bei der Dateneingabe in Formularen werden oft versehentlich neue Datensätze angelegt, die dann als leere Zeile in der dazugehörigen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Roger Rabbit, 22. August 2004.

  1. Leere Datensätze löschen


    Liebes Forum,

    bei der Dateneingabe in Formularen werden oft versehentlich neue Datensätze angelegt, die dann als leere Zeile in der dazugehörigen Tabelle auftauchen.

    Gibt es eine Möglichkeit diese (leeren) Datensätze automatisch zu löschen? In etwa: Wenn alle Felder des angelegten Datenstzes leer sind, dann Datensatz löschen.

    Gruß

    Rüdiger

    :)
     
    Roger Rabbit, 22. August 2004
    #1
  2. Hallo Rüdiger,
    das müsste doch mit einer Löschabfrage zu machen sein. Lasse doch eine Löschabfrage beim schliessen des Programmes laufen mit der Bedingung bzw. Kriterium wenn = 0 oder Ist Null oder "". ( Kommt auf das Feld an, Text oder Zahl )Ich gehe davon aus das du alle Felder der Tabelle in die Abfrage ziehen musst und die Bedingung bzw. Kriterium in alle Felder schreiben musst. Müsste man mal testen. Ich würde es über eine Löschabfrage versuchen. Geht aber auch bestimmt über VBA, habe dafür aber keine Lösung parat.
    Gruß Eric
     
    Eric Palm, 24. August 2004
    #2
  3. Servus, schon wieder Du *wink.gif*

    Am einfachsten würde sich ein Button anbieten, beim Klicken Ereignisprozedur:
    Code:
    Löscht die letzten Eingaben (d.h. Fehleingaben können stehen bleiben) und setzt den DS zurück. Ich weiß aber nicht, ob es das ist, was Du möchtest?
     
    rapunzel, 24. August 2004
    #3
  4. Leere Datensätze löschen

    Hallo

    Habe mal eine Funktion , die überprüft, ob bestimmte Felder ausgefüllt wurden, oder nicht, bzw. ob die Anzahl an Zeichen in diesem Feld eine bestimmte Anzahl überschreitet. Wenn von z.b von 5 zu überprüfenden Feldern 3 ausgefüllt sind, soll der DS angelegt werden, sonst soll dieser wieder gelöscht werden.

    Code:
     
  5. Euch allen herzlichen Dank für die Tipps. Das mit der Löschabfrage funktioniert prizipiell, aber ich schaffe es nicht, die Abfrage ereignisabhängig aufzurufen. Außerdem stören die Meldungen (Wollen Sie wirklich . . . u.s.w.).

    Liebe Brigitte, dein Vorschlag sieht genial einfach aus, klappt aber leider nicht (konnte nicht nachvollziehen, wo's klemmt).

    Die Variante von Nelix geht wohl in die richtige Richtung, aber mit meinen begrenzten Fähigkeiten ist es mir noch nicht gelungen, die erforderlichen Anpassungen für meine Anwendung vorzunehmen.

    Ich arbeite dran und melde mich wieder wenn's funktioniert (oder nicht!)

    Gruß

    Rüdiger
     
    Roger Rabbit, 24. August 2004
    #5
  6. Was genau klappt denn nicht?

    Button mit dem Assi erstellen (im HF, sofern du UF auch hast), nicht weiterok, sondern einfach auf abbrechen. Dann hast nur den Button dort, gehst auf Eigenschaften --> Beim Klicken , (die vorhandene [Ereignisprozedur] lösch einfach, die hat der Assi gmacht), --> Code Editor (die ...) dort kopierst meinen Code rein.

    förtig *biggrin.gif*

    Gute Nacht.
     
    rapunzel, 24. August 2004
    #6
  7. Hi Rüdiger,

    warum stellst Du nicht einfach die Eigenschaft "Eingabe erforderlich" der Tabellenfelder, die Pflichtfelder sein sollen, auf "Ja"? Dann kann erst garkein Datensatz angelegt werden, der nicht die erforderlichen Eingaben enthält.

    Ansonsten löschst Du per VBA am einfachsten mit dem Execute-Statement, z.B.:

    CurrentDb.Execute("DELETE FROM TabelleXY WHERE IsNull(Feld1) AND IsNull(Feld2)")
     
    Johnny Loser, 24. August 2004
    #7
  8. Leere Datensätze löschen

    hi...eventuell lästige warnmeldungen kannst du doch einfach vor einer funktion mit
    docmd.setwarnings false
    ausschalten.
    Allerdings solltest du sie danach mit
    docmd.setwarnings true
    wieder anschalten, denn ganz so unnötig sind sie ja wohl doch nicht.
    Bernd
     
  9. Hallo

    Sorry habe jetzt erst gesehen, dass ich eine Funktion vergessen hatte hier zu posten, die ebenfalls aufgerufen wird:

    Code:
    Grüße

    Nelix
     
  10. Hi Bernd,

    O.K. wieder was gelernt. Danke!
    Aber da ich die Abfrage sozusagen nicht "automatisch" über Eigenschaften/Ereignis starten kann, ist dieses Problem eher sekundärer Natur.

    Gruß

    Rüdiger
     
    Roger Rabbit, 25. August 2004
    #10
  11. Liebe Brigitte,

    mit dem Button klappt's - sozusagen manuell. Ich möchte den Löschvorgang aber gerne automatisch, z.B. als Ereignis "Nach Eingabe" starten. Dein Code macht das zwar auch, allerdings wird dann grundsätzlich jeder neu angelegte Datensatz gelöscht - egal ob er leer ist oder nicht.

    Gruß

    Rüdiger
     
    Roger Rabbit, 25. August 2004
    #11
  12. Jo mei Rüdiger, da soll man ja auch nur draufdrücken, wenn man löschen will *tongue.gif*

    Schade, hätt' Dir gern weitergeholfen, aber Dein Anliegen übersteigt bei weitem meine Kenntnisse *frown.gif*
     
    rapunzel, 25. August 2004
    #12
  13. Leere Datensätze löschen

    Hi Johnny,

    der Vorschlag mit CurrentDb.Execute führt offensichtlich zur Lösung. Wenn ich den Code z.B. per Button starte klappt's. Aber ich schaffe es nicht, den Code über ein Ereignis des UFO's zu starten.
    Und dann noch eine kleine Ergänzung: Nachdem der Datensatz gelöscht ist, sollte das UFO aktualisiert werden, damit die Wirkung auch sichtbar wird. Ist das lösbar?

    Gruß

    Rüdiger
     
    Roger Rabbit, 25. August 2004
    #13
  14. Hi Rüdiger,

    da ich Deinen Code nicht kenne und auch nicht weiß, bei welchem Ereignis er ausgelöst werden soll, kann ich Dir auch nicht konkret sagen, warum er in einem Ereignis im UFo nicht funktioniert. Grundsätzlich funktioniert ein Execute-Befehl aus jeder Prozedur heraus, sofern das SQL-Statement korrekt ist (per MsgBox vor dem Execute überprüfen) und der zu bearbeitende Datensatz nicht grade bearbeitet wird.

    Die Datenherkunft eines UFo's aktualisierst Du...

    ...aus dem UFo mit
    Me.Requery

    ...aus dem HFo mit
    Me!NameDesUFoControls.Form.Requery


    Dennoch würde ich mir an Deiner Stelle Gedanken darüber machen, wie Du vermeiden kannst, leere Datensätze anzulegen, anstatt diese durch Kontrollroutinen zu löschen. Es ist möglich Pflichtfelder im BeforeUpdate-Ereignis des Forms abzufangen, bzw. in den Tabelleneigenschaften vorzugeben.
     
    Johnny Loser, 25. August 2004
    #14
  15. Hi Johnny,

    sicher habe ich mich zu undeutlich ausgedrückt. Ich versuche zu präzisieren: In einem UFo werden zwei Felder (ID und Bes_Dat aus Tabelle Besuche) als Endlosformular gezeigt. Um weitere Daten einzugeben, können für ID aus einem Kombifeld Werte übernommen werden. Bes_Dat wird manuell eingegeben.

    Erfolgt für ID bzw. Bes_Dat versehentlich ein Eintrag, kann ich die Daten zwar jeweils im Steuerelemt löschen, aber dafür bleibt ein leerer Datensatz in der Tabelle Besuche stehen, den mir das UFo natürlich auch anzeigt.

    Wende ich per Button (Bei Klick) Deinen Code an, wird der Satz zuverlässig gelöscht und ich sehe im Steuerelement den Eintrag #Gelöscht. Me.Requery bringt nicht den gewünschten Erfolg. Erst wenn ich das HFo schließe und wieder öffne, ist der leere Datensatz verschwunden.

    Um den Vorgang zu automatisieren habe ich den Code verschiedenen Ereignissen (Bei Deaktivierung, Beim Löschen, Nach Aktualisierung u.s.w.) in den Eigenschaften meines UFo's zugeordnet, aber ohne Erfolg.

    Ich hoffe, dass ich dich jetzt nicht total verwirrt habe.

    Gruß

    Rüdiger
     
    Roger Rabbit, 26. August 2004
    #15
Thema:

Leere Datensätze löschen

Die Seite wird geladen...
  1. Leere Datensätze löschen - Similar Threads - Leere Datensätze löschen

  2. leere Zelle in Zeile finden

    in Microsoft Excel Hilfe
    leere Zelle in Zeile finden: Hallo Liebe Excel Profis, ich bin noch recht unbedarft was VBA angeht. Man kopiert und liest und bastelt und versucht alles zu verstehen. Aber irgendwann kommt man nicht weiter. Ich habe eine...
  3. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  4. MS Access - Formular: Kein Datensatz mit passenden Schlüsselfeldern

    in Microsoft Access Hilfe
    MS Access - Formular: Kein Datensatz mit passenden Schlüsselfeldern: Hey Ihr Lieben, in meinem Formular habe ich ca. 10 Felder zur Dateneingabe. Darunter einige Textfelder. Bei Eingabe wird in meiner z-Tabelle ein neuer Datensatz + neue ID eingefügt und in meiner...
  5. Datensatz löschen wenn feld x leer ist

    in Microsoft Access Hilfe
    Datensatz löschen wenn feld x leer ist: Hallo zusammen, habe wieder eine frage... und hoffe auf Hilfe! ich habe in einem endlosesfrm mit Filterbedingung ein Button, beim Klicken wird bei gefilterten Datensätze ein Feld geleert. nun...
  6. Datensätze mit leerem Feld in Spalte löschen

    in Microsoft Access Hilfe
    Datensätze mit leerem Feld in Spalte löschen: Hallo, wie kann ich aus einer Datentabelle alle Zeilen löschen, bei denen in der Spalte "Preis" (Zellenformat Zahl) kein Wert, also isempty, ist? DELETE * FROM Datentabelle WHERE...
  7. Messagebox bei Abrageresultat mit leeren Datensätzen

    in Microsoft Access Hilfe
    Messagebox bei Abrageresultat mit leeren Datensätzen: Hallo Ich habe ein Einzelformular bei dem ich mit einem Klick auf einen Button eine Abrage ausführe, die mir dann nur noch gefilterte Datensätze im Formular anzeigt und nicht mehr alle Datensätze...
  8. Datenbank mit 70.000 leeren Datensätzen erstellen?

    in Microsoft Access Hilfe
    Datenbank mit 70.000 leeren Datensätzen erstellen?: Geht das? Wenn ja, wie? Hintergrund der Frage: Ich habe eine Datei mit ca. 10000 Datensätzen, aber bereits mit forlaufender Nummer bis 68000 (die fehlenden dazwischen sind gelöscht, würden also...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden