Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Bestimmten Wert mit Löschabfrage löschen

Begonnen von peterchen1000, Januar 11, 2017, 08:19:47

⏪ vorheriges - nächstes ⏩

peterchen1000

Hallo Zusammen,
Ich habe eine Datenbank für die Verwaltung von Europaletten erstellt. Es gibt die Tbl
Paletten, in der sind nur die Einträge von Fahrzeugen die momentan geladen werden.
Wenn nun ein Fahrzeug fertig geladen ist wird über die Datenbank ein Palettenschein
erstellt. Wenn der Palettenschein über den Button gebucht wird wird dieser Eintrag in die Tbl Palettenarchiv angefügt. Wenn der Button Palettenschein drucken betätigt wird soll nur dieser Eintrag in tbl Paletten gelöscht werden. Leider ist es momentan so, das alle Einträge die sich in der tbl Paletten befinden gelöscht werden.
Hat jemand eine Lösung für dieses Problem.


Gruß Peter

DF6GL

Hallo,

es sollte halt die ID des Palettenscheins (bzw. der Palette) beim Löschen mitgegeben werden.

Ansonsten ist Kopieren und Löschen eines DS eine fragwürdige Methode.

Besser wäre ein Datumsfeld  "PaletteGedrucktAm" mitzuführen, das den Ausdruck des Palettenscheins registriert.

MzKlMu

Hallo,
und was machst Du, wenn die Palette wieder kommt, aus dem Archiv wieder hervorholen ?

Ich halte das Vorhaben für den falschen Weg. Archivtabellen sind in einer Datenbank meist der falsche Weg. Im einfachsten Fall reicht dann einfach ein Hakenfeld "PaletteVerladen".

Hast Du einen Palettenpool und die Paletten kommen immer wieder ?
Gruß Klaus

peterchen1000

Hallo,
Danke für Eure Antworten und Tipps. Es geht bei dieser Datenbank nur um den Ausdruck des Palettenscheines. Eine Archivtabelle wurde nur eingerichtet um einen Palettenschein z.b. bei Verlust nachdrucken zu können. Die eigentliche Verbuchung von Europaletten wird über den Palettenschein in SAP durchgeführt. Bisher haben wir dafür Palettenbücher benutzt.

Gruß Peter

DF6GL

Hallo,

gerade in diesem Fall ist die Archiv-Tabelle Nonsens und ein "Druckdatum" besser geeignet.

Zum eigentlichen Thema:  Hast Du die ID nun berücksichtigt?



MzKlMu

Hallo,
ZitatEine Archivtabelle wurde nur eingerichtet um einen Palettenschein z.b. bei Verlust nachdrucken zu können.
dann ist die Archivtabelle erst recht überflüssig. Was verspricht man sich davon ?
Auch ohne Archivtabelle kann man doch jederzeit aus der normalen Tabelle nachdrucken. Wenn es unbedingt sein muss, kann man ja wenn gedruckt einen Haken setzen in der Tabelle.

Nachtrag:
Oder dem Vorschlag von Franz folgen und ein Datum eintragen.
Gruß Klaus

peterchen1000

Hallo DF6GL,
Ich habe einmal das Formular für Paletten Eingabe und die Löschabfrage
im Anhang. Was versteht man unter die ID in der Löschabfrage mitgeben.
Vielleicht kannst Du mir dies einmal erklären.

Gruß Peter

MzKlMu

#7
Hallo,
Du musst doch der Löschabfrage sagen welcher Datensatz zu löschen ist.
Die Löschabfrage braucht auch keine Felder. In der Where Bedingung (Kriterienzeile) musst Du Dich auf das Formularfeld beziehen das die ID anzeigt.

Die Hinweise, dass das ganze Vorhaben völlig sinnlos ist ignorierst Du hartnäckig.
Das macht nur Probleme, kann zu ikonsistententen führen und bietet keinen Vorteil, im Gegenteil, nur Nachteile.

Gruß Klaus

peterchen1000

Hallo,
Vielen Dank für den Tipp. Habe das mit der ID gemacht. Es funktioniert.
Ich möchte deine Bedenken nicht ignorieren, aber ich bin kein Access Experte und sitze jetzt schon seit einer Ewigkeit an dieser Datenbank.
Ich weiss nicht genau wie ich deine Vorschläge realisieren soll.

Gruß Peter

MzKlMu

#9
Hallo,
ZitatIch weiss nicht genau wie ich deine Vorschläge realisieren soll.
Hallt einfach ein Datumsfeld und ein Datum reinschreiben wenn gedruckt. Da muss man kein Experte sein. Alles andere ist unnötiger Aufwand.
Gruß Klaus

DF6GL

Hallo,

wie gesagt, füge ein Feld "Druckdatum" (Datentyp Datum/Uhrzeit) in tblPaletten ein.

An der Codestelle , an der die Löschabfrage ausgeführt wird, schreibst Du anstelle:

Me!Druckdatum =Date

und fertig.


Die Archivtabelle kannst Du entfernen.

Um nur die "ungedruckten" (aktiven) Paletten zu erhalten, benutzt Du eine Abfrage, die die DS filtert, die kein Druckdatum enthalten (bei denen Druckdatum "leer" ist):

Select * from tblPaletten where Druckdatum is  Null


entspr. die DS, für die ein Schein gedruckt wurde (archiviert sind)

Select * from tblPaletten where Druckdatum is not Null






peterchen1000

Hallo,

Kannst Du mir bitte sagen an welche Stelle in der Löschabfrage ich diesn eingeben muss. Sorry, aber ich bin gestern nicht weiter gekommen.

Gruß Peter

DF6GL

Hallo,

was willst Du noch mit der Löschabfrage, wenn Du den Änderungsvorschlag übernimmst?

Lachtaube

Weder ein Mitarbeiter, oder ein Fahrer noch ein Spediteur hat etwas in einer Paletten-Tabelle zu suchen. Diese Dinge gehören getrennt. Einem Ladevorgang wird man vermutlich eher mitteilen, ob es sich um Ent- oder Verladen eines Fahrzeugs handelt, wer der Fahrer ist, wer der Spediteur ist, welcher Bestimmungsort vorgesehen ist, usw. usf.. Ein jeder dieser Vorgänge wird dann mit keiner (Leerfahrt - eher unahrscheinlich), einer oder vielen speziellen Paletten in Beziehung gesetzt, wobei jede Palette mit Waren in einer bestimmten Anzahl bestückt sein kann. Ohne ein solches Datenmodell abzubilden, wird die Anwendung diletantisch und kaum zu pflegen sein.

Deshalb mein gut gemeinter Tipp: Belasse die Anwendung als Excel-Mappe, kaufe und studiere ein gutes Grundlagenbuch zu Access und entwerfe anschließend die Datenbank neu.
Grüße von der (⌒▽⌒)

peterchen1000

Hallo,
Es tut mir leid wenn ich euch nerve, aber ich muss in dieser Datenbank keine Paletten buchen oder nachverfolgen. Es geht lediglich um den Ausdruck eines Palettenscheines, der dem Speditionsfahrer mitgegeben wird. Ein Exemplar bleibt bei uns. Von einem anderen Mitarbeiter erfolgt die Verbuchung in SAP, wo auch die Palettenkonten der einzelnen Spediteure gepflegt werden.

Mir ist bei der Änderung nicht klar wo ich den Code Me!Druckdatum =Date unterbringen soll. Vielleicht kannst Du mir dies verständlich erklären?
Das Feld Druckdatum habe ich in tblPaletten hinzugefügt.

Gruß Peter