Neuigkeiten:

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

Mobiles Hauptmenü

Bestimmten Wert mit Löschabfrage löschen

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

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
wie hast Du denn die Löschabfrage gestartet ?

Und zeige den vollständigen Code dazu.
Gruß Klaus

peterchen1000

Hallo,

Ich starteb die Löshabfrage über ein Makro.
Ich habe das Problem jetzt so gelöst:
DELETE tblPaletten.ID, tblPaletten.*
FROM tblPaletten
WHERE (((tblPaletten.ID)=[Geben Sie die PalettenscheinNr ein]));
Leider muss dann immer die ID eingegeben werden, die gelöscht werden soll.
PalettenscheinNr= ID+2000000
gruß Peter

DF6GL

Hallo,

setze im Makro vor der Löschabfrage eine Tempvars-Variable auf die aktuelle ID und benutze diese Variable in der Löschabfrage.

Oder nutze besser eine Ereignisprozedur, die das Ganze erledigt. Bei welchem Ereignis nun das Löschen erfolgen soll, hast Du nicht bekanntgegeben.

z. B. beim Klick auf einen Button:

Sub btnLöschen_Click()
Currentdb.Execute "Delete * from tblPaletten where ID= " & Me!ID, dbFailOnError
End Sub

crystal

Hallo,

nur zum Verständnis...
1. Ein LKW wird z.B. mit 12 Paletten geladen.
2. Der Palettenschein weist 12 Paletten auf/aus.
3. Der Fahrer soll nach Auslieferung der Waren 12 leere Tauschpaletten zurückbringen.
4. Die Paletten selbst haben keine Id, da sie Tauschobjekte sind (beladene Palette ausliefern, leere Palette zurücknehmen). Es ist nur bekannt, wie viele Paletten für einen Empfänger verladen wurden.
5. Die ursprünglich 12 geladenen Paletten werden dem Fahrer als Soll verbucht.
6. Nach Rückkehr ins Lager entlädt der Fahrer seine Tauschpaletten, deren Anzahl mit dem Soll verglichen bzw. seinem Palettenkonto gutgeschrieben werden.
7. Wenn ein Empfänger keine Tauschpalette mitgibt, wird dies auf dem Lieferschein oder Palettenschein vermerkt, so dass der Fahrer dies nachweisen kann (zur Verbuchung auf dem Fahrer-Konto).
8. Nicht mitgegebene Tauschpaletten werden dem Empfänger-Palettenkonto belastet.

Ist das soweit richtig?

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

Beaker s.a.

Hallo Crystal,
ZitatIst das soweit richtig?
Im Prinzip Ja, aber
ZitatEs 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.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

peterchen1000

Hallo Df6gl,

Danke für deine Tipps. Leider habe ich mit Tempvar noch nicht gearbeitet.
Ich kann im Macro eine Tempvar festlegen, ich vergebe der Tempvar einen
Namen, aber was muss in das Ausdrucksfeld. Da komme ich leider nicht weiter.

Die Ereignisprozedur scheidet denke ich aus, da auf dem Button schon eine Prozedur
hinterlegt ist.
Private Sub Befehl7_Click()
On Error GoTo Err_Befehl7_Click

    Dim stDocName As String

    stDocName = "EndeSchlüselrückgabe"
    DoCmd.RunMacro stDocName

Exit_Befehl7_Click:
    Exit Sub

Err_Befehl7_Click:
    MsgBox Err.Description
    Resume Exit_Befehl7_Click
   
End Sub

Ich habe eine bestehende Datenbank um die Palettenscheinerstellung erweitert.
In dieser Datenbank werden ebenfalls Geräteschlüssel für die Hubstapler verwaltet.
Jeder Fahrer der bei uns lädt bekommt einen Geräteschlüssel für Hubstaplerbedienung. Der Name der Spedition, Name des Fahrers, Kennzeichen, Datum , Uhrzeit und die Shipment Nr. der Ladung werden dort erfasst.
Diese Daten habe ich für die Palettenscheinerstellung benutzt, damit der Mitarbeiter die Daten nicht doppelt eingegeben muß.
Wenn nun der Fahrer den Schlüssel wieder abgibt wird über das Formular Paletten der Palettenschein erzeugt. Beim betätigen des Buttons Palettenschein buchen wird der Eintrag in die Tabelle Paletten Archiv hinzugefügt. Dann wird der Palettenschein über einen Button gedruckt. Danach wird in das Formular Geräteschlüsselabgabe gewechselt und der Button Ende betätigt. Beim Drücken des Buttons Ende wird in der Tabelle tblPaletten der Eintrag des Palettenscheines gelöscht.
Ich glaube ich muss diesen Weg nehmen, da öfter bis zu 15 Fahrzeuge gleichzeitig oder zeitversetzt zur Verladung kommen und ich im Formular Paletten alle Fahrzeuge zur Verfügung haben muss, die ich dann über ein Kombifeld auswähle.
Ich hoffe ich habe mein Vorhaben jetzt besser erklärt und danke Euch für Eure Geduld.

MFG

Peter


DF6GL

Hallo,

nach der Deklaration/Definition eines Termpvars-Elementes (Variablen) kann dieses direkt in der Abfrage anstelle des Parameters verwendet werden.


irgendwo  (Makro, Prozedur)Tempar-Variable deklarieren:

z. B. im Formular:

.
TempVars.Add "PalettenID", Me!ID
.

  und Einsetzen in der Abfrage:

DELETE tblPaletten.ID, tblPaletten.*
FROM tblPaletten
WHERE ID = [TempVars]![PalettenID]

Lachtaube

Ich frag' mich ja, warum man den angewählten Datensatz nicht gleich im Formular löschen will?
Grüße von der (⌒▽⌒)