![]() |
An alle M$ ACCESS Profis !
Ich hätte mit M$ Access 2000 folgendes Problem zu lösen (bin da nicht so fit):
Ich möchte damit eine einfache Lizenzverwaltung realisieren (wir haben zwar eine Inventarisierung mittels ZENWorks, diese liefert aber nur die genauen Versionsstände, was ärgerlich ist, weil wir teilweise alte Versionen haben, unterschiedliche Servicepacks, ... und bereits eine Nachkommastelle in der Version ausreicht um einen neuen Punkt in der Datenbank zu haben, außerdem lassen sich Netzwerklizenzen und Anzahl nicht verwalten). Also: Ich hab zwei Tabellen, eine mit Workstationnamen (und deren Daten) und eine mit Programmen (Versionen, Anzahl der gekauften Lizenzen, Wert, AFA, ...). Das ERgebnis der ganzen Geschichte sollen folgende Abfragen sein: - Welche Softwarepakerte sind auf welcher Workstation installiert (z.B. Workstation XY: Office, Acad, Winzip, ...) - Welchen Wert haben die installiertzen Pakete - Auf welchen Workstations ist ein bestimmtes Paket in welcher Version installiert (z.B. Office 2000: WS1, WS3, WS8, ...) - Wie oft ist ein gewisses Paket installiert (z.B. Winzip: 20) - gibt es Pakete, von denen es mehr Installationen als Lizenzen gibt (z.B. Winzip: 8-10=-2) (ausgenommen Floating-Licenses im Netz und verdongelte Pakete) Ich scheitere momentan daran, die zwei Tabellen sinnvoll zu verknüpfen. Mein erster Ansatz: in der Softwaretabelle mach ich ein Feld (bzw. eine Spalte) des Typs "Nachschlageassistent" und verweise da auf die Tabelle mit den Rechnern (macht er dann auch nach einem Update der MDAC Treibers und von M$ Jet, sonst hagelt es die Fehlermeldung: "klasse unterstützt keine automatisierung oder unterstützt erwartete schnittstelle nicht", blablabla). Nur kann ich jetzt nur EINE Workstation aus einer Dropdownliste auswählen (was zu erwarten war). ich würde jetzt aber gerne mit Mehrfachselektion einfach jene Rechner Auswählen, auf denen die SW installiert ist (könnte auch umgekehrt in der Workstation Tabelle sein). In der Hilfe hab ich zwar etwas von Mehrfachselektion gefunden, die aber nur in Formularen funktioniert. Hab ich probiert, funktioniert auch, nur weiss ich einfach nicht was ich damit anfangen und wie abspeichern kann. Eine Möglichkeit wäre auch z.B. eine Matrix, in der ich z.B. horizontal die Softwarepakete und vertikal die Rechner habe und über JA/NEIN Feld den Installationsstatus steuere. Nunr hab ich keine Idee, wie ich dann die Spalten mit den SW-Paketen aus der Tabelle mit den Paketen erzeuge, wo diese ja in Zeilen stehen. Wie Ihr vielleicht merkt hab ich noch nicht so viel Erfahrung mit Access, hab leider nur einen Basiskurs gemacht, in dem ich am Schluss dem Koffer von Vortragendem erklären musste, wie man eine von ihm gestellte Aufgabe löst, weil er es selber nicht zusammengebracht hat (!!!) und für intensives Selbststudium hat mir früher die Lust und jetzt die Zeit gefehlt. Kann mir wer ein paar Tipps geben oder mir sagen, wo ich ein wenig kurz und bündig über Access und vieleicht auch einige Beispiele finden kann ? Mit Dank und Anerkennung im Voraus ! |
was du benötigst, ist eine intersection-table (verknüpfungs-tabelle) ...
es reichen 3 spalten: 1. eindeutiger schlüssel 2. fremdschlüssel der tabelle mit den workstations 3. fremdschlüssel der tabelle mit den softwaredaten http://miss.wu-wien.ac.at/~lbruhn/erm/aufloesen.html http://www.google.at/search?q=entity...a=lr%3Dlang_de |
Hi!
So wie pc.net bereits gesagt hat, braucht du eine Hilfstabelle. Diese Hilfstabelle kannst du dann als Grundlage für die Matrix verwenden. Um die Matrix mit Daten zu füllen, nimmst du eine Kreuztabelle. Ich habe mich schon vor längerer Zeit von Access verabschiedet. Vielleicht stimmen meine folgenden Aussagen nicht mehr: Die Kreuzabellen-Abfrage ist nicht editierbar. Wenn du diese Matrix auch zum aktualisieren der Daten verwenden willst (was ich natürlich annehme), läßt sich das nur mit VBA lösen. Dazu sind aber doch mehr als Grundkenntnisse notwendig. Ohne VBA mußt du dich mit dieser Lösung begnügen: Ein Formular, das alle Programme zum PC zeigt. (Kann auch den Wert Berechnen) Ein Formular, das alle PCs mit einem Programm zeigt. (Kann auch für die Summe, und die Anzahgl der Lizenzen verwendet werden verwendet werden) Je ein Formular zum bearbeiten der Tabellen PCs und Programme. Fazit: Beschäftige dich mit Access und VBA. mfg WB |
"And here for something completely ..." ... http://www.fnprg.com/softcat
Könnte es was bringen, wenn man obiges programm einsetzt? Deckt es deinen bedarf? Wenn ja ... *jubel jubel freu freu* |
@pc.net:
1000 thx für den Tipp. Funktioniert jetzt zwar anders als ich mir gedacht hab das es funktionieren könne, komme aber zu dem gewünschten Ergebnis, dass ich die Relation herstellen kann. ein wenig hab ich noch unter dem Punkt "Beziehungen" nachhelfen müssen, tut aber perfekt. @wbendl Das mit der Kreuztabelle und Umwandlung hab ich leider nicht verstanden wie das gehen soll, hab eine Weile herumprobiert und jetzt aufgegeben. Wäre aber toll gewesen, da sehr übersichtlich. Oder ist es nur möglich damit eine Abfrage zu machen, so etwas scheint zu gehen. Mit Access werd ich mich sicher beschäftigen, hab mir bislang auch alles selber beigebracht, nur VBA, das ist absolutes Neuland. Aber mal abwarten :-) @(V)uh thx für den Link. Hab das Prog gezogen und installiert. Schaut zwar recht brauchbar aus, ist aber leider nur für die Lizenzverwaltung auf einem PC geeignet, eine Zuordnung zu mehreren Workstations ist leider nicht möglich. Aber auf alle Fälle: VIELEN DANK FÜR EURE HILFE !!! |
Hi!
Ich glaube du hast es richtig erkannt. Mit einer Kreuztabellen-Abfrage kannst du die Daten übersichtlich darstellen. Für komplexe Ergebnisse können Abfragen verschachtelt oder hintereinander ausgeführt werden. Es ist allerdings nicht möglich, im angezeigten Ergebnis Änderungen durchzuführen, die in den zugrundeliegenden Tabellen gespeichert werden. Eine Lösung mit VB oder VBA könnte so aussehen: - Mit einer oder mehreren Abfragen liest du die Daten aus den Tabellen - Per Code erstellst du eine Tabelle mit den benötigten Spalten und füllst die Tabelle mit den Daten. - Jede Veränderung in der Tabelle wird durch eine Ereignisprozedur in die entsprechende Tabelle übertragen. - Die Abfragen erneut ausführen, damit alle Felder in der Anzeige aktualisiert werden. Ich habe soetwas schon einmal mit VB6 realisiert. Dabei habe ich nur Standard-Steuerelemente verwendet. Daher müsste es auch mit den bei Access verwendeten Steuerelementen machbar sein. Als Tabelle könnte man z. B. ein Endlosformular mit Textfeldern und Checkboxen verwenden. Um zu lernen, wie man die Daten per Code manipuliert, schau dir in der Hilfe alles zum Thema Recordset an. mfg WB |
Hi!
Ich hab mir gerade Softcat kurz angesehen. Erfüllt anscheinend nicht deine Anforderung, weil ein Programm keinem Rechner zugeordnet werden kann. Anscheinen ist es gedacht, um die Software auf dem Lokalen Rechner zu verwalten. Aber als Beispiel, welche Daten zu einem Programm gespeichert werden, ist es ganz gut. Du siehst, daß nur zum Bereich Software mehrere Tabellen verwendet werden. Diese Aufteilung ist auch sinnvoll. Wahrscheinlich denkst du jetzt, daß das Projekt wesentlich größer wird, als ursprünglich gedacht. Laß dich nicht abschrecken. Wenn du am Anfang die Tabellenstruktur gut durchdacht hast, wächst die Oberfläche Schritt für Schritt mit deinen Kenntnissen. mfg WB |
Zitat:
Danke für die ausführliche Beschreibung, ich werd mich jetzt einmal damit befassen, wird aber doch seine Zeit brauchen, da ich damit doch am Anfang bin. Bezüglich Deiner VB6 Applikation: Könntest Du mir davon ein paar Codeschnipsel zukommen lassen? Im Programmieren bin ich nälich nicht so fit (2 Jahre Pascal in der HTL und jetzt Assembler und ein bissl C auf µCs, mehr kann ich leider nicht). Softcat wäre wirklich ganz nett, aber leider wirklich nur für einen Rechner geeignet. Die Funktionalität hätte ich in Access auch gerade noch zusammengebracht. Die jetzigen Tabellen sind im Pronzip schon vorgegeben, auch die Datenbank existiert schon länger (verwaltet Inventarlisten von dem gesamten Gebäude). Da gibt es auch schon einige Links zwischen mehreren Tabellen wie Zuordnungen zu Personen, Räumen, .... Die Softwareliste hab ich nun auch noch eingebunden und soll nun alles ergänzen. Nur bin ich hier erstmals auf das Problem gestoßen, dass eine Software zu mehreren Rechnern gehören kann, was es bei anderen Beziehungen nicht gibt, deswegen die Problemstellung. Aber es ist ja immer wieder interessant dazuzulernen und Lösungen auf der Spur zu sein :-) Also vielen Dank für Die Hilfe ! |
Hi!
Ich helfe dir gerne. Mein Wissen bezieht sich zwar auf DB-Entwicklung mit VB6, aber das meiste funktioniert auch mit Access. Konkrete Frage: Hast du verstanden, wie die Zuordnung der Programme zu den Rechnern über eine Hilfstabelle funktioniert? Wenn nicht, versuche ich ein kleines Beispiel zu machen. mfg WB |
Und ich bin dankbar!
Ich denke schon, dass ich das verstanden hab (jedenfalls überzeugt mich das Ergebnis *g*). Hab eine neue Tabelle erstellt, dieser einen Primärschlüssel gegeben und zwei weitere Spalten mit den beiden Primärschlüsseln der anderen Tabellen eingefügt. Wenn ich jetzt eine der beiden Tabellen (SW oder PC) aufmache ist neben dem Primärschlüssel ein kleines "+" zu finden, mit dem ich die Relation anzeigen und weitere hinzufügen kann. In der Verknüpfungstabelle steht dann je nach Auswahl das Programm und daneben der Rechner. Aus dem kann ich jetzt Abfragen und Berichte machen. Ich denke das reicht für den Moment. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag