Moin Freunde,
ich sitze im Moment an einem Uni-Projekt und komme einfach nicht weiter. Ich habe schon Tage und Nächte vor dem Rechner und in Foren rumgeschlagen, doch endweder es war nicht auf mein Problem zugeschnitten, oder ich bin einfach zu dumm.
Ich habe einmal all meine Probleme aufgeschrieben und würde auch sofort meine Datei zur Verfügung stellen, wenn mir jemand helfen könnte. Bin leicht am verzweifeln.
Infos über das Projekt habe ich angehängt. Die AccDatei ist leider zu groß. Wenn jemand allerdings so freundlich ist mir zu helfen, würde ich ihm sofort die Datei per Email oder so schicken!!
Hallo,
siehe auch:
http://www.ms-office-forum.net/forum/showthread.php?t=317494
Grossposting ist unerwünscht, lies dazu die Regeln des Forums.
Um aber wirklich helfen zu können, müsste man mal das Datenmodell der bisherigen Tabellen sehen. Die Beschreibung im obigen Worddokument ist wenig bis gar nicht hilfreich, das ist eher wertlos. Da kann man kein Datenmodell ableiten.
Servus ...
ungeachtet der Hinweise von MzKlMu ...
ZitatDie AccDatei ist leider zu groß
Datei 'komprimieren' und 'reparieren', danach zippen - eine Datei ohne gespeicherte Bilder ist fast nie zu groß für einen Upload ins Forum.
Und um bei den Hinweisen von Klaus zu bleiben - häng mal die Aufgabenstellung an, das Word-Doc aus dem letzten Beitrag ist echt nicht hilfreich
Tut mir noch einmal leid, dass mit dem "Grossposting"!! Ich komme einfach nicht mehr weiter und bin am verzweifeln!
Viele Dank für die Idee mit dem 'komprimieren' und 'reparieren'. Datei ist angehängt, ich hoffe ihr könnt mir helfen!
Nabend,
der Anhang ist noch das vorherige Word Dokument.
Du wolltest doch die Acc anhaengen, oder?
Ok Leute, da ich zu unfähig bin die ganze AccessDatei hochzuladen (ist zu groß). Teile ich meine Fragen einfach auf und versuche euch so gut es geht alles zu erklären ect.
Ich habe ein KundenFormular, wo ich mir durch ein Kombinationsfeld die Kundendaten anzeigen lasse. Das funktioniert auch. Jetzt würde ich allerdings sehr gerne das Kombinationsfeld durch ein Textfeld ersetzen und durch reinschreiben der Kundennummer die entsprechenden Daten anzeichen lassen.
ja wie groß ist denn deine Access-Datei?
Hast du sie gezippt?
jap, ich habe alle bilder raus und nur 3-5 Beispiele in den Tabellen
385 KB
Nach dem Löschen der Bilder 'komprimiert und repariert' - UND DANACH gezippt?
jap. verstehe es auch nicht.
Habe eine PN an dich gesendet!
Wo hast du denn die Aufgabenstellung - ich meine nicht deine Vorstellungen sondern die Aufgabenstellung im Original
wir haben keine genau aufgabenstellung. wir sollen einfach eine datenbank erstellen. was für eine ist uns vorbehalten. wichtig ist nur, dass sie funktionieren soll. benutzerfreundlich ist...ect.
OK ...
So folgendes änderst du bitte gleich an deiner Datei:
Die Beziehung zwischen Mitarbeiter und Aufträge - stelle die referenzielle Integrität ein
In der Tabelle PLZ_Ort fügst du ein Feld PLZ_ID an erster Stelle hinzu (Autowert)
Die Beziehungen zwischen Kunden und Mitarbeiter mit dieser Tabelle änderst du so, dass die Felder 'PLZ'
z.B. in PLZ_ID_F (Zahl, Long INteger) sind und dann mit der PLZ_Ort-Tabelle mit referenzieller Integrität in Beziehung gesetzt sind.
In der Tabelle Automobile änderst du gleich die Feldbezeichnungen ... KEINE Leer- und/oder Sonderzeichen, kein /100km!!
Solche Beschreibenden Texte haben als Feldbezeichnung nichts zu suchen dafür gibt's im Tabellenentwurf ein Beschreibungsfeld.
Zitatdurch ein Textfeld ersetzen und durch reinschreiben der Kundennummer die entsprechenden Daten anzeichen lassen
Da mach ich dir einen besseren Vorschlag - erweitere das Kombifeld um die entsprechenden Einträge ;)
ok ok..!
also PLZ_ID is ja kein ding. die habe ich eben schon reingemacht. den nächsten schritt verstehe ich nicht ganz. was meinst du mit der PLZ_ID_F (die habe ich doch gar nicht)
:-[
Zitat von: database am Dezember 23, 2014, 01:07:47
Zitatdurch ein Textfeld ersetzen und durch reinschreiben der Kundennummer die entsprechenden Daten anzeichen lassen
Da mach ich dir einen besseren Vorschlag - erweitere das Kombifeld um die entsprechenden Einträge ;)
Mein Problem ist nur, dass ich bei mehreren Kunden eine so lange liste von IDs habe, dass ich sehr lange scollen müsste...daher die idee
Habe dein Datenmodell abgeändert - ganz grob ... die tbl Kunden und Mitarbeiter könnten auch noch normalisiert werden (Anrede und Position)
wegen der langen Liste gibt es natürlich auch einen Lösungsweg...
Ich stell dir das in dein Formular rein und du schaust dir das an
ok danke, dass mit den tabellen habe ich verstanden.
wir reduzieren die redundanzen..
So ... ja wir reduzieren! ;)
Im Anhang das geänderte Formular - du kannst jetzt den Kundennamen im Kombifeld eingeben .. schau mal
eigentlich wollte ich es schon über die Kunden_ID machen. Wenn ein Kunde z.B. anruft und seine Kunden_ID nennt (und wir mehrere Kunden halt in der Datenbank haben) will ich durch die eingabe der Kunden_ID die daten ausgegeben bekommen. es können ja z.b auch mehrere Kunden den selben namen haben.
also bei der Kunden_ID auf der Folie wollte ich schon bleiben ::)
Kundennummer und KundenID sind nicht zu vergleichen - eine Kundennummer ist eine 'sprechende Nummerierung' die ID 'gehört' Access!
Man kann ja noch mehr Spalten in das Kombi einfügen - z.B. den Vornamen dann wird die Unterscheidung schon leichter und mit der PLZ zusätzlich noch deutlicher...
Du kannst natürlich das Ganze auch über die ID laufen lassen - stell im Entwurf die Spaltenbreite der ersten Spalte auf 0,5 cm ein, dann kannst du die Nummer eingeben...
schau im Anhang
So Kollege, jetzt ist es 02:00 und ich werde langsam etwas müde - ich schau mir dann morgen noch gerne ein paar Dinge an
p.s. Access kennt keine 'Folien', die gibt's in PowerPoint - Access hat's lieber wenn man über Formulare spricht :)
danke schon einmal.
bevor ich die frage morgen vergessen habe.
ich habe schon gesehen, dass man die Spaltenanzahl des Kombinationsfeldes auf dem Eigenschaftenblatt unter Format festlegen kann. meine frage ist jetzt, wo kann ich festlegen welche daten er dort beim Dropdown fenster zeigen soll....
gute nacht
Hallo,
Zitatwo kann ich festlegen welche daten er dort beim Dropdown fenster zeigen soll....
Entwurfsansicht des Formulars, Eigenschaften des Kombifeldes, Register Daten, Datensatzherkunft.
Hier kannst du alle anzuzeigenden Spalten definieren
Hallo,
Zitatwo kann ich festlegen welche daten er dort beim Dropdown fenster zeigen soll....
0cm blendet die Spalte aus.
Wenn das Kombi 2 Spalten hat und und die Spaltenbreiten
0cm;5cm eingestellt werden, wird die Spalte 1 ausgeblendet.
Im Regelfall ist die Spalte 1 das Schlüsselfeld (ID). Dieses Feld ist die gebunden Spalte. Und wenn das Kombi der Auswahl dient und nicht dem Suchen wird der Steuerelementinhalt das Fremdschlüsselfeld.
also ich will, wenn ich das dropdown fenster aufmache, die Kunden_ID, Vorname und Familiennamen sehen...aber mit spaltenanzahl und spaltenbreiten komme ich da leider irgendwie nicht weiter...:-/
ok, fehler gefunden.
hat funktioniert! danke.
na also - geht doch :)
:D jap
also nächste Frage. database (peter) hat meine Datenbank ja schon, daher weiß ich eher was ich meine. ich habe um bei dem Mitarbeiter Formular die Abgewickelten Aufträge anzeigen zu lassen (+ Mitarbeiterdaten) zwei abfragen geschrieben, die ich ja aber in einer abfrage zusammen schreiben muss, um sie auf dem Mitarbeiterformular abrufen zu können.
SELECT Count(*) AS ["Anzahl Auftraege"]
FROM Auftraege
WHERE ((([Mitarbeiter].[Mitarbeiter_ID])=[Auftraege].[Mitarbeiter_ID]));
SELECT Mitarbeiter.*, PLZ_Ort.Ort AS Mi_Ort
FROM Mitarbeiter INNER JOIN PLZ_Ort ON Mitarbeiter.[Mi_PLZ] = PLZ_Ort.PLZ
WHERE (((PLZ_Ort.PLZ)=[Mitarbeiter].[Mi_PLZ]));
ich möchte auf dem Mitarbeiter Formular die ID/Namen eingeben/auswählen können und er soll mir dann dazu die mitarbeiterdaten und bereits abgewickelten aufträge pro mitarbeiter ausgeben
Hallo,
die Zusammenführung beider Abfragen könnte bspw. so aussehen:SELECT Mitarbeiter.*, PLZ_Ort.Ort AS Mi_Ort,
(SELECT Count(*)
FROM Auftraege
WHERE [Mitarbeiter].[Mitarbeiter_ID]=[Auftraege].[Mitarbeiter_ID]) AS [Anzahl Auftraege]
FROM Mitarbeiter INNER JOIN PLZ_Ort ON Mitarbeiter.[Mi_PLZ] = PLZ_Ort.PLZ
;
Servus,
Im Anhang findest du deine DB mit den vorangegangenen Fragen zur Kundenbearbeitung (Kundendaten können jetzt geändert werden) sowie das geänderte Mitarbeiterformular samt Auftragszählung
HTH
ok. vielen dank erstmal.
ich werde mir mal alles angucken und bisschen aufarbeiten. ich melde mich wieder :)
gerne!
Hallo,
interessante Variante...
Ich hätte da ein gebundenes Formular gewählt und das Kombifeld zur Datensatzauswahl mittels Filter eingesetzt.
Das Unterformular könnte dann mit dem HF verknüpft werden und aktualisiert sich somit automatisch.
Stimmt,
aber es gibt in der DB mehrere Formulare, die er gleich aufgebaut hat.
Ein Umbau dieses einen Formulars hätte m.M. vielleicht zu sehr Verwirrung gestiftet.
Dann sollte man aber vielleicht auch noch drauf hinweisen, dass Recordset- und Database-Objekte nach Gebrauch geschlossen bzw. "resettet" werden sollten, bspw. so:rs.Close
Set rs = Nothing
Set db = Nothing
nur schön langsam, eins nach dem anderen ::)
Weiter wäre zu erwähnen, dass es aus Performancegründen besser wäre das Recordset
mit einem angepassten SQL-String zu öffnen der nur einen einzigen Datensatz liefert
und nicht über eine allgemeine Abfrage.
Das Durchlaufen des Recordsets in einer Schleife bis zum gesuchten/gewünschten Datensatz ist eigentlich unnötig.
Die Änderungen befinden sich im Anhang
ok. ich habe bisschen etwas aufgeholt und ich probiere da noch ein bisschen rum.
Bei meinem Bestellungen Formular wollte ich durch das auswählen der Kunden_ID die wichtigsten Kundendaten aufs Blatt bekommen. Zur weiteren Filtersuche soll man auf den Button klicken können und mit hilfe von Vor - und Nachnamen die Kundenpol zu filtern.
Durch doppelklick auf den zu habenden Kunden soll dieser dann auf das Bestellungen Formular übernommen werden.
auf dem Bestellungen Formular möchte ich jetzt ebenfalls durch auswählen des Modelles die Autodaten bekommen! Muss das alles in eine Abfrage?
Der Sinn und Zweck der 'Filtersuche' mag sich mir nicht ganz erschließen - tut mir leid.
Wenn du die wichtigsten Daten im Kombifeld anzeigst kannst du dir doch das Formular 'Filtersuche' sparen.
So wählst du einen passenden Kunden eben im Kombifeld aus und befüllst die Felder mit den relevanten Daten.
Was soll denn passieren, wenn du auf 'Auftrag abgeben' klickst?
Was hat es mit dem Radiobutton 'Knopf' auf sich?
Die Idee hinter der Filtersuche war einfach, dass ,wenn ich zu viele Kunden in der Liste habe (z.b. 2000), ich einfach in die suche gehen kann und den großen pol an kunden mit hilfe der namen filter.
nach dem klicken des Auftrags abgeben button, wollte ich die daten, welcher Kunde, welches Auto ect gekauft hat abgespeichert werden. hierzu wollte ich sogar eigentlich noch einen textfeld für die Mitarbeiter_ID hinzufügen, damit dieser hier seine ID eingeben kann und somit der Auftrag ihm zugerechnet wird.
Zudem hatte ich mir gedacht, aus diesen ganzen Daten ein Word-Dokument zu erstellen, welches auf dem Desktop abgespeichert wird.
Der Radiobutton Knopf hatte ich dafür gedacht, dass wenn er gedrückt wird das Rabatt textfeld daneben aktiviert wird und man einen Prozentsatz eingeben kann. und es auch gleich ein neuer Preis berechnet wird.
Hallo,
Zitatwenn ich zu viele Kunden in der Liste habe (z.b. 2000), ich einfach in die suche gehen kann und den großen pol an kunden mit hilfe der namen filter.
das kann ein Kombi automatisch, da muss nicht extra ein Filter programmiert werden. Zuständig ist die Eigenschaft "Automatisch ergänzen", diese muss auf Ja stehen. Mit jedem Buchstaben kommt die Auswahl des Kombis dem Ziel näher.
ZitatZudem hatte ich mir gedacht, aus diesen ganzen Daten ein Word-Dokument zu erstellen, welches auf dem Desktop abgespeichert wird.
wozu Word, das ist nur eine zusätzliche überflüssige Schnittstelle. Und Aufwand ist es auch noch. Erstelle lieber einen Bericht den man als PDF ausgeben und speichern kann.
die eigenschaft ist schon eingestellt. aber dafür brauche ich doch zu meinem Kombifeld Kunden_ID noch zwei mit Vorname und Familienname oder ??
Bericht erstellen klingt super!
:)
Zitatdas kann ein Kombi automatisch...
Da ist genau das, was ich dir beim Kundenformular schon vorgeschlagen habe - erinnerst du dich?
Ein Radiobutton dient auf einem Access-Formular zur Auswahl einer Option und ist daher an der Stelle eher nicht geeignet.
Wenn das Rabattfeld standardmäßig mit 0 gefüllt ist kann nach Eingabe eines Wertes (der kann natürlich auch nach oben und unten begrenzt werden) der neue Preis berechnet werden -jedoch fehlt in deinen Tabellen ein Rabatt-Feld (wird benötigt um die Preisgestaltung nachzuvollziehen)
Zur Datenspeicherung bzw. Bestellung - du kannst nach deinem Konzept nur Fahrzeuge verkaufen, die schon einmal gekauft wurden, weil dir bei deiner Auswahl nur diese zur Verfügung stehen.
Somit müsstest du vorher ein Fahrzeug erfassen um es anschließend auswählbar zu haben - das ist kein unbedingt effizienter Vorgang.
Verstehst jetzt auch langsam, warum zu Beginn dieses Threads immer wieder nach dem DB-Konzept gefragt wurde.
Auch wenn die Aufgabenstellung das nicht ausgesagt hat oder nicht detailliert eine spezielle DB beauftragt wurde - das Konzept musst du dir selbst erarbeiten, wenn es nicht zuvor jemand anderes erledigt hat.
Im Nachhinein ist es ungemein schwierig auf neu hinzukommende Funktionalitäten zu reagieren, wenn das zugrundeliegende Datenmodell nicht alle Forderungen an die DB-Leistung erfüllt.
Hallo,
Zitataber dafür brauche ich doch zu meinem Kombifeld Kunden_ID noch zwei mit Vorname und Familienname oder ??
nein, wozu ?
Die Kundenid direkt sucht man nicht, die ist ja unbedeutend und unsichtbar und über den Vornamen zu suchen macht auch wenig Sinn. Also ist nur die Suche/Auswahl über den Familiennamen brauchbar und da reicht das automatische Ergänzen völlig, auch bei 2000 Einträgen.
jaa, so langsam steig ich durch. na toll, dann muss ich mir was überlegen..
Ergänzend dazu
du kannst natürlich zur Unterscheidung bei Namensgleichheiten den Vornamen, das Geburtsdatum und die PLZ oder was auch immer anzeigen die Auswahl wird durch Namenseingabe bestimmt und zur Speicherung wird die ID herangezogen - diese wird in der ersten Spalte stehen und ist der Primärschlüssel der Herkunftstabelle.
Ich habe dir schon geschrieben, dass eine ID Access 'gehört' und nicht mit einer Kundennummer zu verwechseln ist. ;)
Wenn die Namen im Kombifeld nach den Familiennamen auf- oder absteigend sortiert sind, ist eine effiziente Auswahl auch bei 10.000 Namen keine Hexerei 8)
danke leute, aber mir raucht gerade der kopf. ich guck es mir nachher noch mal an und überleg was ich da machen kann. :(
Na dann folgendes:
Ich habe das Datenmodell ein wenig umgestellt um deinen Bedürfnissen näher zu kommen.
Die Fahzeuge besitzen jetzt einen AutoID-Wert als Primärschlüssel.
Die Fahrgestellnummer ist in die Tabelle Aufträge gewandert.
Bestellungen werden hier dadurch erkannt, dass kein Verkaufsdatum und keine Fahrgestellnummer eingetragen wurde.
Wenn du eine Bestellung erzeugst werden die Daten aus der Automobiltabelle angezeigt
Wird bestellt, wird das gewählte Fahrzeug (dessen ID) in die Auftragstabelle geschrieben
Wird das Fahrzeug an den Kunden verkauft kommt der Verkaufspreis, das Verkaufsdatum und ein ev. Rabatt hinzu
Wenn bezahlt wird müssen alle Felder ausgefüllt sein und das Feld bezahlt wird auf JA gesetzt.
Die Preisinformationen habe ich in der Automobil-Tabelle belassen, auch wenn das nicht ganz richtig ist (Klaus wird gleich aufschreien - keine Preishistorie ;D)
geändertes Datenmodell im Anhang
p.s. habe die DB nochmal ausgetauscht um in den Formularen auch gleich auf die Änderungen Rücksicht zu nehmen
Hallo,
ZitatKlaus wird gleich aufschreien - keine Preishistorie ;D
dafür könnte man bei den Bestellungen ein extra Preisfeld anlegen und den Preis redundant speichern, damit wäre auch eine Preishistorie gegeben. Wenn es nicht ohnehin schon so gemacht ist. Die DB kann ich mir nicht ansehen, habe immer nur noch Access2003 (MDB).
Hallo Klaus,
Zitatdafür könnte man bei den Bestellungen ein extra Preisfeld anlegen und den Preis redundant speichern
...habe ich so im geänderten Datenmodell vorgesehen ;)
unten findest du die DB im 2003-er Format
Hallo,
ich habe doch noch was gefunden. ;D ;D
Da in der Tabelle "tblModell" auch der Hersteller als Fremdschlüssel gespeichert ist, ist der Fremdschlüssel zum Hersteller in der Tabelle "Automobile" ersatzlos überflüssig. Über das Modell ist zwangsläufig auch der Hersteller bekannt.
Siehe Bild.
HI,
das habe ich doch tatsächlich übersehen... :'(
die geänderten Modelle befinden sich im Anhang ztztztzt
@database:
Zitat von: database am Dezember 23, 2014, 12:53:14nur schön langsam, eins nach dem anderen ::)
Was genau wolltest du mir damit sagen?
Hältst du es für besser, dem Fragesteller die Lösung seiner Probleme in homöopathischen Dosierungen nach deinen Vorstellungen zukommen zu lassen? Oder wie war das gemeint?
ZitatDas Durchlaufen des Recordsets in einer Schleife bis zum gesuchten/gewünschten Datensatz ist eigentlich unnötig.
Um es genau zu sagen, nicht nur "eigentlich"! ::)
@maggieMay
ZitatOder wie war das gemeint
Ja, so war es gemeint. Ohne an deiner Kompetenz zu kratzen oder sonst was - wenn ich eine Anfrage bearbeite mach ich das nach meinen Vorstellungen, angepasst an den Kenntnisstand des Fragestellers und nicht nach Gutheißen anderer.
ZitatUm es genau zu sagen, nicht nur "eigentlich"!
Wenn man die Bedeutung des Wortes 'eigentlich' kennt, (so, dass es der wichtigste Teil von etwas ist; in Wirklichkeit, im Grunde; überhaupt) könnte man es in meinem Satz durch einen der Begriffe in Klammer ersetzen.
Was gäbe es daran noch auszusetzen und überhaupt - was soll dieses Geplänkel >:(
Ich kann mir beim besten Willen nicht vorstellen, dass dem TO damit geholfen ist
Ok, vielen Dank Peter.
Ich verstehe jetzt warum du die Änderungen vorgenommen hast. Trotzdem habe ich mal wieder :-[ Fragen hierzu.
Bei deiner Version hast du noch eine Tabelle "Tabelle1" die auch nirgendwo in den Beziehungen auftaucht. Wird diese überhaupt gebraucht? Wofür ist sie? ???
desweiteren habe ich wohl noch ein fehler eingebaut.
Bei meinen Beziehungen zwischen Automobile_ID und Automobile_ID_F kann ich keine referentielle Integrität anwählen!
Frohe Weihnachten!
Hallo,
ZitatBei meinen Beziehungen zwischen Automobile_ID und Automobile_ID_F
vergleiche die Datentypen. Automobile_ID ist ein Autowert, das entspricht Longinteger. Daher
muss Automobile_ID_F ebenfalls auf den gleichen Datentyp eingestellt werden. Tabelle1 dürfte aus Versuchen stammen. Hat Peter wohl vergessen zu löschen.
@database:
Zitat von: database am Dezember 24, 2014, 08:10:01wenn ich eine Anfrage bearbeite mach ich das nach meinen Vorstellungen [...] und nicht nach Gutheißen anderer.
Sorry, aber der Hinweis war an den TO gerichtet und nicht an dich.
Fröhliche Weihnachten!
@Klaus
ZitatHat Peter wohl vergessen zu löschen
Ja, hat er ;D :'(
Hi Dralle
anbei die DB mit funktionierendem Neukunden-Formular
Ich will jetzt nicht so viele neue Themen aufmachen, deswegem stelle ich meine Fragen einfach jetzt hier alle rein!
Ich möchte gerne in ein Textfeld, wo der User den Vornamen reinschreiben soll, ein Beispiel reinsetzen. Dies geht natürlich einfach durch anklicken des Textfeldes --> Eigenschaftenblatt --> Standardwert
Allerdings würde ich gerne, dass dieser Text nach hineinklicken in das Textfeld verschwindet. Geht das auch??
Hallo,
ja, das geht ist aber nicht unbedingt ratsam, da du dadurch sofort einen neuen Datensatz erzeugst (eine neue ID wird vergeben sobald du in dem Fall ins Feld klickst), der auch dann bestehen bleibt, wenn du keine weiteren Eingaben mehr machst.
M.E. wäre es besser einen Benutzer durch einen 'Steuerelementtip-Text' auf das Feld aufmerksam zu machen.
Dieser Text wird in einer Art Sprechblase angezeigt, wenn du mit der Maus über das Feld fährst ohne zu klicken.
Entwurfmodus, Feldeigenschaften, Reiter 'Andere' --- Steuerelementtip-Text
Ansonsten kannst du das mit dem Standardwert so lösen, dass du ins Ereignis 'Beim Focuserhalt' schreibst:
Wähle aber den Standardtext so, dass dieser nicht irgendwann einem realen Eintrag entspricht, da diese auch bei einem bereits gespeicherten Datensatz gelöscht werden würde!
If Me.DeinFeld = "Dein Standardtext" Then
Me.DeinFeld = Null
End If
p.s.
Es wäre trotzdem besser für weitere Fragen neue Threads anzulegen, da die ursprüngliche Frage ja offensichtlich schon gelöst ist - Bitte daher diesen auch in deinem ersten Beitrag als 'gelöst' kennzeichnen.
Um den Speicherplatz deiner Fragen brauchst dich nicht zu sorgen, der bleibt ziemlich gleich, auch wenn du neue Threads anlegst. ;)