Neuigkeiten:

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

Mobiles Hauptmenü

Abfrage aus Textfeld (Bericht)

Begonnen von MoLa, Juni 16, 2014, 16:11:59

⏪ vorheriges - nächstes ⏩

MoLa

Hallo zusammen.

Vorab, ich bin ein ziemlicher Neuling was Access angeht. Bisher konnte ich immer alles mit Excel umsetzen.

Für die Arbeit möchte ich jetzt eine Datenbank aufbauen, in der die von uns intern verwendeten Rechner bzw. die darauf Installierte Software verwaltet wird.

Bisher habe ich 2 Tabellen. In der ersten sind die einzelnen Rechner mit grundsätzlichen Informationen angebildet. Z.B.:

Rechner1|Benutzer1|Standort|Abteilung|usw.

In der 2 Tabelle sind dann die Installationen zu den jeweiligen Rechner aufgeführt. Und zwar 1 Eintrag pro Softwareinstallation. Also z.B.:

Rechner1|Software1
Rechner1|Software2
Rechner2|Software1

Nun habe ich einen Bericht erstellt der als Datensatzquelle die Tabelle "Rechner" hat. Als "Kopf" für den Bericht habe ich je ein Textfeld für jede "Spalte" der Tabelle eingefügt. (z.B. Steuerelementinhalt="Rechnername")

Access erstellt mit dem Bericht also eine DinA4 Seite für jeden Rechner. (Das ist auch genau das was ich haben möchte)

Darunter soll jetzt allerdings ein Listenfeld sein, welches für den jeweils angezeigten Rechner, die installierte Software auflistet. Leider schaffe ich es nicht diese (vermeintlich) einfache Abfrage für das Listenfeld zu erstellen.

Ich habe parallel zu dem Bericht ein Formular welches im Aufbau dem Bericht gleicht, mit dem Unterschied, dass ich hier den Rechner über ein Kombinationsfeld auswähle. Hier habe ich die Abfrage (welche auch funktioniert) folgendermaßen aufgebaut:

SELECT DISTINCTROW Installationen.Rechner, Installationen.Lizenz FROM Installationen WHERE (((Installationen.Rechner)=komRechner));

Im Code habe ich eingetragen:

Private Sub komRechner_Change()
    Me.lbInstallationen.Requery
End Sub

Ich habe schon alles mögliche ausprobiert, um die Abfrage des Formulars auf das Listenfeld des Berichts zu portieren. Allerdings ohne Erfolg.

Ich hoffe ich habe den Fall verständlich genug aufgeführt. Ansonsten bitte nachfragen.

Schonmal Danke im Voraus.
Gruß MoLa

MaggieMay

Hallo,

Change ist das falsche Ereignis für diese Aktion, nimm statt dessen das AfterUpdate-Ereignis.
ZitatDarunter soll jetzt allerdings ein Listenfeld sein, welches für den jeweils angezeigten Rechner, die installierte Software auflistet.
Auch das ist die falsche Wahl, im Bericht solltest du das mit einem Unterbericht lösen.
Über die Verknüpfung mit dem Hauptbericht wird dann automatisch die passende Software angezeigt.
Freundliche Grüße
MaggieMay

MoLa

Vielen Dank für die schnelle Rückmeldung.

Ich werde das morgen mal versuchen und mich dann nochmal zurückmelden.

MzKlMu

#3
Hallo,
ein Unterbericht schein mir hier nicht geeignet. Ein über den Rechner gruppierter Bericht mit dem Rechner im Gruppenkopf und die Software im Detailbereich halte ich hier für deutlich besser und einfacher. Für das Formular nimmt man dagegen ein Hauptformular (Rechner) mit einem Unterformular (Software). Hafo und Ufo über die Schlüsselfelder verknüpft. Die gezeigte Abfrage mit SELECT DISTINCTROW ist dann nicht notwendig.
Mir scheint, Du verwendest auch keine Schlüsselfelder (Primärschlüssel/Fremdschlüssel) über die auch die Beziehungen anzulegen sind.

Ich halte auch noch weitere Tabellen für erforderlich, mindestens:

- Standort
- Abteilungen
- Software
Gruß Klaus

MaggieMay

Hallo Klaus:

...einfacher und besser, ja da hast du völlig Recht! :)

...ungeeignet, naja... ;)
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
ich habe ja auch nicht ungeeignet geschrieben. Meine Wortwahl halte ich durchaus für etwas nobler.  :D
Gruß Klaus

MoLa

#6
Zitat von: MzKlMu am Juni 16, 2014, 18:51:39
Mir scheint, Du verwendest auch keine Schlüsselfelder (Primärschlüssel/Fremdschlüssel) über die auch die Beziehungen anzulegen sind.

Die hatte bisher in der Tat noch nicht erstellt bzw. verwendet. Hole das aber jetzt noch nach.

Zitat von: MzKlMu am Juni 16, 2014, 18:51:39
Ich halte auch noch weitere Tabellen für erforderlich, mindestens:

- Standort
- Abteilungen
- Software

Eine Tabelle "Software" besteht mittlerweile auch schon. Die anderen beiden (und eine Mitarbeiter-Tabelle) werden aber noch folgen. Bei derzeit etwa 75 Rechnern, 16 Mitarbeitern und knapp 20 Standorten ist das aber m.E. noch nicht so wichtig.


Das mit dem Unterbericht hatte auch einwandfrei funktioniert. Allerdings muss ich den Bericht nochmal anpassen. Statt einer Liste soll ein Ufo eingefügt werden, welches eine Tabelle mit jeder "eingetragenen" Software anzeigt (Datensatzherkunft des Ufo ist die Tabelle Software). In einer zweiten Spalte soll dann mit einem Ja (oder einer 1) angezeigt werden, ob die jeweilige Software auf dem Rechner (des HB) installiert ist.

Wie kann ich das am besten lösen?

Vielen Dank nochmal für die Hilfe bisher.


Edit:

Zitat von: MzKlMu am Juni 16, 2014, 18:51:39
Ein über den Rechner gruppierter Bericht mit dem Rechner im Gruppenkopf und die Software im Detailbereich halte ich hier für deutlich besser und einfacher.

Könntest du bitte noch kurz erläutern wie man das genau umsetzt?

Ich hatte jetzt das Feld "PC-Name" (Primärschlüssel) der Tabelle "Rechner" in eine 1:n Beziehung mit dem Feld "Rechner" der Tabelle "Installationen" gesetzt. Im Bericht die Gruppierung aktiviert, die Kopfdaten (also alle Felder der Tabelle "Rechner") in den neuen Kopfbereich (PC-Name - Kopfbereich) verschoben und abschließend im Detailbereich eine Liste mit Datensatzherkunft Tabelle "Installationen" und Steuerelementinhalt "PC-Name erstellt.

Wenn ich nun die Seitenansicht öffne werden in den jeweiligen Listen alle Einträge der Tabelle Installationen angezeigt und nicht nur die jeweiligen des Rechners.