Acccess problem (beschreibung fällt mir nicht ein)

hy zusammen.
ich wurde gefragt, ob ich bei einem access problem helfen kann, wusste aber auch nicht weiter, vll könnt ihr helfen

Also.Erstmal:

seine Tabellen:

Benutzer mit [Name,Vorname,benutzername,Abteilung,Rechner-IP, BenutzerID,Software]
Rechner mit [Rechnername, Rechner-IP,Standort,Funktion,Hardware,PC-Typ,Bemerkung]
Personal-ID mit [Personal-ID, Name,Vorname]
Drucker mit [Name, Typ, IP, Standort, Funktion, Farbe/ S/W, Drucken, Scannen, Fax, Kopieren]
Server mit [Servername, IP, Bemerkung, Funktion]
Software mit [Bezeichnung, Key, Hersteller]
Software Übersicht mit [Softwarename, Hersteller, Aktuell verwendet, Lizenzen verwendet, Lizenzen frei]

seine Formulare:

Hauptmenü (Schon erstellt und Funktionsfähig)
Benutzer (Erstellt)
Rechner (Erstellt)
Drucker (Erstellt)
Server (Erstellt)
Suchen (Erstellt)
Exportieren (Erstellt und funktionsfähig)

Die Datenbank ist dazu da sämtliche IPs und zugehörigkeiten der IPs zu Benutzern, Servern oder Druckern anzuzeigen.

Die Formulare Benutzer, Rechner, Server und Drucker sind ähnlich aufgebaut. Sie beinhalten Ein Listenfeld welches IP Oder Namen anzeigt, Textfelder welche die die restlichen Informationen zu den IPs oder Namen anzeigen und Bearbeitungsbuttons für sortierung des Listenfeldes sowie Hinzufügen, Ändern, Löschen usw.

Nun zu den Problemen.

Da ein Benutzer mehrere IPs haben kann (Laptop,Rechner) und einige IPs mehreren Benutzern zugeordnet werden können funktioniert die Referentielle Integrität nicht. Wie kann ich das lösen?

So das wenn eine IP nicht mehr verwendet wird oder ein Benutzer/Drucker/ Server gelöscht wird diese IP auf Frei gesetzt wird?

weiteres problem: Beim anzeigen der benutzer im listefeld werden ihm nur die Nachnamen angezeigt. Hat also jemand mehrere IPs dann steht 3 mal der nachname Ddrin. Nun aber das problem wenn er zwischen den Namen hin und her klickt wird ihm immer nur die gleiche IP im Textfeld angezeigt. Woran liegt das? Das gleiche ist bei personen die den gleichen Nachnamen haben.

(…)

Also. er hat auf jetzt z.B. in der Benutzerform ein listenfeld welches die benutzer mit Nachnamen anzeigt. Dann Textfelder die den Namen,Vornamen,Benutzernamen usw anzeigen sobalt man ihn im Listenfeld auswählt.

Die After Update hierzu:
__________________________________________________ ________________________________
Private Sub Liste2_AfterUpdate()
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst „[Name] = '“ & Me![Liste2] & „’“
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

End Sub
__________________________________________________ _________________________________

Zudem hat er Buttons die die werte in der liste ordnen oder z.B. Nur die Personen der Geschäftsleitung, der IT oder Personalabteilung anzeigen.

Codebeispiel:
__________________________________________________ _________________________________
Private Sub Befehl36_Click()
Dim st As String

st = „SELECT Benutzer.[Name] FROM Benutzer WHERE Abteilung=‚IT‘ ORDER BY Benutzer.Name“
Me!Liste2.RowSource = st
Me!Liste2.Requery
End Sub
__________________________________________________ _________________________________

seine liste zeigt aufgrund von Persohnen die mehrere IPs haben manche namen mehrfach an.
z.B.

Mustermann
Mustermann
Mustermann
Musterfrau
Dieeineda
Anonymus
Anonymus

Genau so steht es in der liste. Mustermann hat 3 IPs also 3 mal drin. Anonymus sind zwei unterschiedliche personen. Wenn er nun auf Mustermann klickt zeigen ihm die textboxen Name, Vorname, Benutzername usw. an. Drückt er auf Mustermann unter dem ersten bleiben die Textboxen gleich obwohl sich die Textbox IP eigentlich ändern sollte. Genauso wie bei Anonymus. Hier müsste sich der Vorname, IP usw ändern da es ja eine ganz andere person ist.Woran liegt das?

Da ein Benutzer mehrere IPs haben kann (Laptop,Rechner) und
einige IPs mehreren Benutzern zugeordnet werden können
funktioniert die Referentielle Integrität nicht. Wie kann ich
das lösen?

Das ist eine sogenannte n:n-Beziehung, dafür solltest du eine zusätzliche Tabelle schaffen - nur mit Benutzer und IP sowie einer Indexnummer pro Verbindung (hier würde ich AutoWert nehmen). Hundertprozentig erinnere ich mich aber nicht mehr an das Wie … bitte notfalls noch mal in der Hilfe nachschlagen oder hier nach genauerer Erklärung fragen.

weiteres problem: Beim anzeigen der benutzer im listefeld
werden ihm nur die Nachnamen angezeigt. Hat also jemand
mehrere IPs dann steht 3 mal der nachname Ddrin. Nun aber das
problem wenn er zwischen den Namen hin und her klickt wird ihm
immer nur die gleiche IP im Textfeld angezeigt. Woran liegt
das? Das gleiche ist bei personen die den gleichen Nachnamen
haben.

Da kann man, soweit ich weiß, auch die anzuzeigenden Felder auswählen, und zwar wenn man in der Tabelle den Nachschlage-Assistenten wählt und dann dort mehrere Felder auswählt.
Gruß Verena

das ist leider nicht (mehr) das was ich brauche, aber danke für die schnelle antwort. folgendes ist sein hauptproblem:

Wenn er auf seinem listenfeld eine person mit nem nachnamen auswählt den ne andere person auch hat zeigt es den an. aber die direkt dahinterstehende person mit dem gleichen nachnamen zeigt es ihm im textfeld bei nem klick nicht an. Nur weiterhin die person von vorher.

Hallo

bis auf den Tipp mit den Tabellen-Nachschlagefeldern gehe ich mit Verena konform. Nachschlagefelder in Tabellen sollte man DRINGEND vermeiden. Dafür sind Formular-Kombifelder besser geeignet.

Genau so steht es in der liste. Mustermann hat 3 IPs also 3 mal
drin. Anonymus sind zwei unterschiedliche personen. Wenn er nun auf
Mustermann klickt zeigen ihm die textboxen Name, Vorname,
Benutzername usw. an. Drückt er auf Mustermann unter dem ersten
bleiben die Textboxen gleich obwohl sich die Textbox IP eigentlich
ändern sollte. Genauso wie bei Anonymus. Hier müsste sich der
Vorname, IP usw ändern da es ja eine ganz andere person
ist. Woran liegt das?

Denke mal, daß die Filterung nach der IP erledigt werden sollte, und nicht nach dem Namen (bzw. allgemein nach den jeweiligen Schlüsselfelder)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

so wir haben die lösung

Die lösung war in nem anderen Formular schon fast vorhanden gewesen. Is ihm aufgefallen nachdem er die anderen Formulare auf fehler überprüft hate und einige der drucker den gleichen namen hatten aber beim klicken sich die IP änderte. Zufälle gibts.
nochmals danke für die schnellen antworten

Bei den Listenfeldern einfach die Personal-ID mit reinnehmen
und ausblenden. Alle weiteren dann nur über diese ID und nicht
über die Nachnamen.

Die komplette Struktur der PCs, Drucker, IPs ist völlig
unvorteilhaft vorallem aber unflexibel. Desweiteren müßt
Ihr bei Hinzufügen neuer Technik sämtliche alten Berichte
anpassen. Filtern nach belegten/freien IPs ist auch nicht
einfach.

Ich würde folgende Tabellen benutzen:

Tabelle: Geräteklassen
gklassenID, Bezeichnung
(hier kommt rein PC, Drucker, Handy, was auch immer)

Tabelle: Features
featID, Bezeichnung
(sw-Scannen, faxen, Internet, CD-Brennen, Putzen,
Vorlesen, Abspülen, was auch immer)

Tabelle: Geraete
geraeteID, Name (im Netz), Geräteklasse, GeräteNr, Hersteller

Tabelle: Gfeatures
GfeaturesID, geraeteID, featID
(in dieser Tabelle wird festgelegt, welche Eigenschaften
z.B. der Kopierer hat usw.)

Tabelle: IP
ipID, IPadr, GeraeteID, Benutzer-id (und event. Datum etc.)
(hier wird den entsprechenden IPs jeweils ein Gerät zugeordnet
und der aktuelle Benutzer. Eine IP kann nicht zur selben Zeit
zwei Geräten zugewiesen sein. Falls eine IP warum auch immer
doch von mehreren Geräten abwechselnd benutzt wird und das
irgendwo festgehalten werden soll, einfach in dieser Tabelle
nur die ipID und die IPadr lassen und eine neue Tabelle: IPnutzung
anlegen mit ipID, geraeteID, BenutzerID usw. dann kann wirklich
alles abgebildet werden)

Tabellen Software + Benutzer bleiben im großen und ganzen.

In dieser Struktur kann man jedes erdenkliche Gerät erfassen
und mit beliebigen Fähigkeiten ausstatten. Trotzdem funktionieren
die alten Berichte/Abragen dann noch. Freie/Belegte IPs lassen
sich sehr einfach abfragen, auch durch welches Gerät sie belegt
sind oder von welchem Benutzer. alle IPs von Benutzer, alle Drucker
mit jeweiligen Benutzern + IPs, alle IPs von Laserdruckern oder
alle Benutzer von PCs mit DVD-Brenner, unbeschränkte Möglichkeiten.

Kauft Euch Access für Dummies, dauert einen Tag das zu
lesen und spart Euch viel Rumprobiererei… (das ist
nicht böse gemeint, sondern ein gut gemeinter Rat. Hat
zwar nen doofen Titel, aber kann ich Einsteigern nur
empfehlen)

LG Alex