PDA

Vollständige Version anzeigen : Inhalte Übernehmen


Dekay1986
06.06.2012, 13:24
Hallo,

habe in der Suche leider keine Lösung für mein aktuelles Problem gefunden.

Ich habe eine Tabelle mit Aufträgen die bearbeitet werden sollen.
Diese werden in einer Tabelle abgelegt.

z.b.
Spalte 1: Auftragsnummer --> "1234"
Spalte 2: Artikel
Spalte 3
Spalte 4 u.s.w.

Es wird ein Datensatz angelegt (von der Sekretärin) , wo nur die Auftragsnummer angelegt wird.
Nun möchte ich, dass ein anderer Mitarbeiter, per Button-Druck "Übernehmen" den Datensatz in eine andere Tabelle übernimmt und diesen aus der Aktuellen (die der Sekretärin) löscht.

Ziel ist quasi,... die Sekretärin legt einen Datensatz mit Auftragsnummer an und erst wenn dieser Auftrag bearbeitet wird, wird dieser vom Bearbeiter in die richtige Auftragsdatenbank-Tabelle übernommen.

Gruß, Daniel Knodel

Stefan Dase
06.06.2012, 13:30
Hallo Daniel,

warum so umständlich mit Übernehmen und Löschen? Kann die Sekretärin nicht den Rumpf eines Auftrags erstellen, und ein anderer Mitarbeiter bearbeitet ihn weiter?

Dann könnten alle auf denselben Datenbestand zugreifen, auch die Sekrtärin sähe somit, dass ihre Angaben weiterverwendet werden.

Du muss dir nur überlegen, woran Access erkennen könnte, wann ein Auftrag weiter bearbeitet wurde. Mögliche Angaben wären: Es sind Artikel vorhanden, Feld, dass nur von dem anderen MA bearbeitet wird o.ä. Dann kannst du mittels Abfragekriterium für beide Benutzer eine eigene Liste anbieten.

Viele Grüße,
Stefan

Atrus2711
06.06.2012, 13:31
--gelöscht, Stefan war schneller--

Dekay1986
06.06.2012, 13:40
Mir persönlich wäre das so auch am liebsten.
Ich versteh auch nicht warum die das hier so haben wollen.
Die sekretärin legt den Datensatz an den sie eben mit Auftragsnummer, ein paar anderen Daten und dem Bearbeiter ( der für diese Art von Auftrag zuständig ist) ausfüllt.
Jeder mitarbeiter hat dann in seinem Formular nur einen Filter, der nur die eigenen Aufträge (eben aus der Auftragsliste) anzeigt und wo er dann eben sieht was für Aufträge er zu erledigen hat.
Hat er dann zeit dazu, übernimmt er diese aus dieser Tabelle in die "richtige" auftragstabelle wo die aufträge aller mitarbeiter zu sehen sind.

Wollte es anders machen aber die wollen es so, wie es bisher ist.

PS.: Es gibt hier schon so eine Datenbank, allerdings ist der Ersteller davon vor ner Woche in Rente gegangen und kein Mensch kennt sich hier mit den seiner DB aus. (Wurde mit Acces 97 oder sowas erstellt,... wenn nicht noch älter) Jetzt mach ich die DB neu, aber die Mitarbeiter sollen sich nicht "umgewöhnen" müssen ;-)

Stefan Dase
06.06.2012, 13:46
Die Benutzer müssen sich aktuell nichtmal großartig umgewöhnen, wenn du einen Filter so setzt, dass jeder nur seine Daten zu sehen bekommen.

Z.B. könnte zu dem Bearbeiternamen ja auch ein Feld "Uebernahme" gehören, in das ein Datum geschrieben wird. Damit verschwindet der Auftrag aus der Liste für die Sekretärin und der Bearbeitet hat es fest zugeordnet.

Später kannst du dann den Vorteil einer Tabelle ausspielen, dass z.B. Auswertungen viel einfacher sind, wenn nur eine Datenquelle vorhanden ist!

Grüße,
Stefan

Dekay1986
06.06.2012, 13:54
Glaub das Problem liegt vielmehr darin, dass Aufträge in Vergessenheit geraten, wenn Sie gleich in der richtigen Tabelle sind. (Da diese teilweise auch länger da liegen und zum Teil relativ vollständig ausgefüllt sind).

Gibt es eine Möglichkeit, dass ich nen Kontrollkästchen setze "unbearbeitet" ,"in bearbeitung" , "abgeschlossen" o.ä. welchen ich in den Filter einbeziehe?
Da würden dann nur die angezeigt werden, wo eben das Häckchen bei "unbearbeitet" steht.

Atrus2711
06.06.2012, 14:00
Sicher. Bau ein Feld "Status" in die Tabelle ein, und setze es in Beziehung mit einer Vorratstabelle für die Statuswerte.

Bedenke allerdings, dass das Statusfeld natürlich irgendwie mit dem echten Zustand korrelieren muss. Wenn ich einen Auftrag, der nur die Auftragsnummer enthält und sonst nix, als "beliefert" markiere, ist das sicher nicht erwünscht. Und ein Auftrag, der fachlich durch ist, bleibt solange offen, wie sein Status offen lautet. Man muss das also "weiterdrehen". Oder ließe sich der Status vielleicht irgendwie ableiten?

Dekay1986
06.06.2012, 14:05
Naja man kann ja mehrere Satus-Arten verwenden.
Angelegt, In Bearbeitung, Abgeschlossen,... wie auch immer.
Der ansatz passt aber auf jeden fall erstmal.
Is wahrscheinlich auch die elegantere Lösung. So spart man sich eien Tabelle.

Atrus2711
06.06.2012, 14:14
Etwas OT:
Wenn Aufträge in Vergessenheit geraten ist eh was faul. Tipp: Organisation heißt nicht, sich Termine für Dauerauftrags-Fälligkeiten in Outlook einzurichten...

Dekay1986
07.06.2012, 06:02
:-)
Das sind ja keine Bestellaufträge.
Sind Konstruktionsaufträge.
Firma will Unterbaukonstruktion für irgendwas und dann konstruiert man ja ein paar Tage dran.
Also wenn man dann 10 Aufträge vor sich hat und jeder weiter Mitarbeiter ebenfalls 10, dann rückt der jeweils "älteste neue" Auftrag in der Liste ziemlich weit runter.
Wie gesagt, jetzt klappt es ja weil man nur die eigenen unbearbeiteten Aufträge sieht.
Aber so oder so ähnlich wird es ja wieder werden.
Also keine Sorge, es gibt vermutlich kein Organisationsproblem ;-) .



Danke Dir erst einmal für die Hilfestellung, versuche mich heute mal da dran.

Dekay1986
08.06.2012, 09:32
Um das Thema nochmal aufzurufen.

Ich habe eine kleine Testdatenbank gemacht, um zu prüfen ob alle User in meiner Abteilung (verschiedene Betriebssystem, verschiedene Access Versionen und unterschiedliche Rechte im Netzwerk) mit meiner Datenbank arbeiten können?!

Diese soll ins Netzwerk und die Mitarbeiter sollen dort nur ihren Geburtstag eingeben.

Nun zum eigentlich Problem.
Ich habe eine Abfrage erstellt "Filter_Neu_Mitarbeiter"
Diese Abfrage wird ausgeführt wenn ich den Button "Neue Mitarbeiter" betätige.
Er zeigt in den Textfeldern jetzt nur noch die Mitarbeiter an, die neu angelegt wurden.

Dies funktioniert allerdings nur im Formular "Alle Mitarbeiter".
Im Formular "Herr Heinrich" geht das nicht, obwohl ich da nichts anders gemacht habe.

Hab die DB im Anhang.

Kann mir jemand sagen wo das das Problem liegen könnte?!

Maxel
08.06.2012, 10:11
Hallo,

gehe ich recht in der Annahme, dass Du für jeden Mitarbeiter ein eigenes Formular anlegen möchtest?

PS: Die Schaltfläche "Neue Mitarbeiter" im Formular "Herr Heinrich" hat keine Ereignisprozedur.

Dekay1986
08.06.2012, 10:31
Hallo, nein.
Fr. Wenzel ist die Sekretärin, welche später (das ist ja nur ne test DB) aufträge anlegt.
Alle Mitarbeiter füllen die die Aufträge weiter aus.
Herr Heinrich bestätigt letztlich das die Aufträge abegschlossen wurden.

Sinngemäß hier das selbe mit den Geburtsdaten.

Fehlt hinter dem Button "neue Mitarbeiter" die Ereignisprozedur?

Also hab da stehen "Eingebettetes Macro".
Welches das ausführen der Abfrage ist.

Der sagt mir dann immer ich soll nen Parameter-Wert eingeben.

Würde ja auch ne "Ereignisprozedur" einfügen, allerdings weiß ich den Code um einen Filter bzw. meine Abfrage auszuführen nicht.

stuz1
08.06.2012, 11:07
Hey Dekay,

heißer Ritt den du da vorhast....

Naja... Makros sind nicht so das erste Mittel der Wahl hier im Forum... früher hatte MS selber VBA den Makros den Vortritt gegeben.... jetzt sind es wieder die Makros die laut MS vorzuziehen sind... ich selber habe es auch mehr mit VBA.... für einfache Aktionen setze ich unter Access 2010 auch wieder Makros ein...

Ganz wichtig: Wenn du in 2 Formularen im Prinzip das gleiche Makro einsetzt musst du entweder daran denken dass du diese unterschiedlich nennst, oder aber die Argumente so setzt dass Sie für beide Formular gelten...

Im Formular Heinrich fragt er ja nach einem Parameter aus dem Formular "Alle Mitarbeiter..."

Anweisungen wie: 3. geben Sie "neu" ein (eingentlich macht er das allein... Fehler) sind natürlich der Burner.... lächel....

Aller Anfang ist schwer....

Aber: Diese Aufgabe die hier zu bewältigen ist sollte man eigentlich mit einem einzigen Formular erledigen.... Das Formular kann ja durchaus ein anderes Aussehen haben, je nachdem welchen Knopf man auf der Startseite drückt....

Zu deinem Problem:

Lösche im Formular Heinrich das Makro, erstelle ein neues, nenne dieses FilterNeuFrmHeinrich oder so, und schreibe bei Bedingung

[Status] = "Neu"

Und schon sollte es gehen....

Der gleiche Filter heißt im Formular Alle Mitarbeiter dann eben FilterNeuFrmAlleMA oder so....

Dekay1986
08.06.2012, 11:32
:grins: Ja mit dem ... Fehler habe ich selbst übertroffen.

Aber wie gesagt,.. ist nur ne test DB und es geht eigentlich viel mehr darum das das bei allen Funktioniert. ;-)

Da ich bei meiner eigentlich DB wohl auch auf das Problem gestoßen wäre, wollte ich das jetzt gleich klären und hätte mit dem Fehler (in der test DB) gelebt.

Danke erst einmal für die Hilfestellung,..ich probier das erstmal aus und schreib dann noch was zu meinem Erfolg oder Misserfolg

Dekay1986
08.06.2012, 11:47
Also es hat super geklappt.
Um ehrlich zu sein wusste ich nich, dass die Abfragen dann Formularbezogen sind.
Ich dachte ich kann die Abfrage immer wieder ausführen, und das egal wo bzw. in welchen Formular.

Da kann ich den Punkt 3 ja jetzt raus löschen ;-) .

Aber dennoch um mich zu verdeidigen.
Bin in der Firma Maschinenbau bzw. Produktionstechnik Diplomand und soll nebenbei eine solche DB erstellen.
Hab noch nie irgendwas derartiges gemacht und fange quasi bei 0 an.
Da is das garnicht so einfach.
Aber viele Dank, es hat mir super geholfen.

stuz1
08.06.2012, 12:41
Du findest bestimmt einen neuen "Punkt 3".... lächel....

Brauchst dich hier bestimmt nicht zu erklären oder verteidigen....

Gruß und ein schönes Wochenende

Stefan