collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 53
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13953
  • stats Beiträge insgesamt: 66359
  • stats Themen insgesamt: 8942
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen  (Gelesen 753 mal)

Offline Miuvial

  • Newbie
  • Beiträge: 8
Guten Tag liebe Community,

zunächst einmal: ich bin vermutlich ein typisches Opfer der "nur eine kleine Exceltabelle" Geschichte und deshalb absolute Anfängerin. Access habe ich zum ersten Mal letzte Woche geöffnet, daher bitte ich um Nachsicht dafür, dass ich zu doof bin, mein Problem selbst zu erkennen und es auch durch ausgiebiges googeln nicht lösen konnte.
Deshalb beschreibe ich mein Problem auch etwas ausführlicher.

Ich habe eine Access DB, mit Hilfe derer die Teilnahme von Mitarbeitern an Schulungen und Unterweisungen dokumentiert werden soll. Diese besteht aus 5 normalisierten Tabellen (tblMitarbeiter mit dem Schlüssel IDMA, tblSchulungen mit dem Schlüssel IDSCH, tblUnterweisungen mit dem Schlüssel IDUW, tblTermineSCH mit dem Schlüssel IDTermineSCH, tblTermineUW mit dem Schlüssel IDTermineUW)

Jeder Mitarbeiter kann mehrere Schulungen/Unterweisungen besuchen und jede Schulung/Unterweisung kann bzw. muss von jedem Mitarbeiter über den Lauf der Jahre auch mehrfach besucht werden.

Um eine Übersicht über alle gelisteten Daten für die Schulungen bzw. Unterweisungen zu haben, habe ich 2 Abfragen erstellt, qrySchulungen und qryUnterweisungen. In diesen Abfragen werden Daten aus 3 Tabellen (tblMitarbeiter, tblSchulungen/Unterweisungen und tblTermineSchulungen/Unterweisungen) abgebildet. Dabei sind die Felder, die ich abbilde, die jeweiligen IDs aller 3 Tabellen sowie txtAbteilung, txtName, txtVorname, txtNameSchulung/Unterweisung, datErfolgteSCH/UW, datNächsteSCH/UW. Das ist bisher schonmal ganz nett und durch die Filter-Optionen auch deutlich übersichtlicher, als meine Excel-Datei.

Da ich aber natürlich in der Lage sein muss, neue Datensätze einzugeben, habe ich ein Formular frmNeuerEintrag erstellt, in dem ich die komplette tblMitarbeiter abgebildet habe, sodass ich einen neuen Mitarbeiter anlegen kann. Das funktioniert auch. Nun müsste ich natürlich die erfolgten Schulungen/Unterweisungen zu genau diesen Mitarbeitern eintragen können. Deshalb habe ich mir in 2 Ufos sfmSchulungen und sfmUnterweisungen die jeweiligen Abfragen qrySchulungen bzw. qryUnterweisungen eingeblendet. Nun kann ich allerdings darin keine neuen Daten anlegen.

Bei IDUW kann ich aus einem Dropdown-Menü die existierenden IDs von Unterweisungen aussuchen, bei Mitarbeiter allerdings nicht (vermutlich weil ich ja im Hauptformular schon den einen bestimmten MA aufgerufen habe und Access versucht, dann nochmal einen neuen Mitarbeiter anzulegen (?)).
Googeln hat mir schon verraten, dass es wohl schwierig ist neue Daten einzugeben, wenn man ein Unterformular hat, in dem Daten aus mehreren Tabellen verarbeitet werden, allerdings auch, dass manche Leute das irgendwie schon hinbekommen. Eine Lösung habe ich allerdings nicht gefunden. Eventuell hat jemand eine Idee? Besonders schön muss die Lösung nicht sein, da ich die einzige bin, die diese Datei nutzen wird, nur eben irgendwie praktikabel.

Ich weiß, dass es viel verlangt ist, einem Anfänger so etwas zu erklären und bin jedem dankbar, der es versucht  :).
Da mir diese DB meine Arbeit extrem erleichtern (und mir die ewige Dankbarkeit meines Chefs für die verlässlicheren Statistiken versichern) würde bin ich auch durchaus bereit, da etwas Zeit zu investieren und mir was anzueignen. Ich bin also auch für Links zu Literatur oder einfach auch nur einer Beispieldatenbank, in der so eine ähnliche Thematik behandelt wird dankbar. Ich kann zwar kein VBA und SQL, aber Code lesen bekomme ich durch meine eingerosteten Grundkenntnisse in Java hoffentlich schon noch hin.


 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7268
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #1 am: Februar 12, 2018, 11:41:10 »
Hallo,
zeige mal ein Bild des Beziehungsfensters. Das ist besser als Deine Beschreibung bzw. würde die Beschreibung verständlicher machen.
« Letzte Änderung: Februar 12, 2018, 11:47:43 von MzKlMu »
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1226
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #2 am: Februar 12, 2018, 11:44:03 »
Sei doch so nett und lade einen Screenshot des Beziehungsfensters hier als Anhang hoch und poste auch den SQL-Text der Abfragen.
Grüße von der (⌒▽⌒)
 

Offline Miuvial

  • Newbie
  • Beiträge: 8
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #3 am: Februar 12, 2018, 12:04:41 »
Hallo,

danke schon Mal für die Rückmeldung.

Im Anhang befindet sich meine Screenshot der Beziehungen für die Abfragen.

den SQL Code für die Abfragen habe ich rauskopiert (ich habe selbst keinen Code geschrieben, sondern dieses (furchtbare) Formblatt benutzt), die Absätze/Zeilenumbrüche habe ich zur besseren Lesbarkeit eingefügt:

SELECT tblMitarbeiter.txtAbteilung, tblMitarbeiter.txtKürzel, tblMitarbeiter.txtName,
tblMitarbeiter.txtVorname, [tblSchulungen].txtNameUS, [tblTermineSCH].datErfolgteUS,
[tblTermineSCH].datNächsteUS, tblMitarbeiter.IDMA, tblTermineSCH.[IDSCH], [tblTermineSCH].[IDTermineSCH]

FROM tblSchulungen INNER JOIN (tblMitarbeiter INNER JOIN tblTermineSCH

ON tblMitarbeiter.IDMA=[tblTermineSCH].IDMA) ON tblSchulungen.IDUS=tblTermineSCH.[IDSCH];

SELECT tblMitarbeiter.txtAbteilung, tblMitarbeiter.txtKürzel, tblMitarbeiter.txtName,
tblMitarbeiter.txtVorname, tblUnterweisungen.txtNameUW, tblTermineUW.datErfolgteUW,
tblTermineUW.datNächsteUW, tblMitarbeiter.IDMA, tblTermineUW.IDUW, tblTermineUW.IDTermineUW

FROM tblUnterweisungen INNER JOIN (tblMitarbeiter INNER JOIN tblTermineUW

ON tblMitarbeiter.IDMA = tblTermineUW.IDMA) ON tblUnterweisungen.IDUW = tblTermineUW.IDUW;

Gruß
Miuvial
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1226
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #4 am: Februar 12, 2018, 12:18:51 »
Nun, da wird man entweder ein Hauptformular mit den Mitarbeiterdaten haben und im Unterformular seine TermineUW als Detaildatensätze führen, oder man zeigt nur TermineUW an und hat ein vorgeschaltetes Steuerelement (Listenfeld/Kombifeld), das je nach Auswahl eines Mitarbeiters die Datensätze in TermineUW filtert. IDUW würde in beiden Fällen über ein Kombifeld eingetragen werden. Jedes der Formulare würde sich auch nur auf die zugrundeliegende Tabelle (ganz ohne Join) beziehen.

Das Unterformularsteuerelement in Szenario 1 wäre über IDMA verknüpft und würde ohne weiteren Code bei Navigation des Hauptformulars die entsprechenden TermineUW anzeigen.

In Szenario 2 wären einige wenige Zeilen VBA-Code nötig, um den Filtervorgang einzuleiten.

Eine Abfrage mit Joins über alle Tabellen käme dann erher in einem Bericht zu tragen.

Wenn Du Dich für ein Szenario entscheidest, kann ich Dir ein entsprechendes Quick & Dirty Beispiel basteln.
Grüße von der (⌒▽⌒)
 

Offline Miuvial

  • Newbie
  • Beiträge: 8
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #5 am: Februar 12, 2018, 12:48:01 »
Lachtaube vielen Dank für deine Mühe, das hilft mir schon allein durch die Beschreibung sehr weiter und wenn es noch ein Beispiel gibt dann umso besser.

Ich denke für den Fall, dass mein Chef sich das doch mal ansehen möchte wäre die erste Variante besser - er hängt sehr an der ursprünglich von ihm entwickelten Excel-Datei (er muss ja auch nicht damit arbeiten *hust*) und die basiert auf den MA-Einträgen.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1226
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #6 am: Februar 12, 2018, 14:19:35 »
Schau mal, ob Du damit dem Chef eine Freude machen kannst.
Grüße von der (⌒▽⌒)
 

Offline Miuvial

  • Newbie
  • Beiträge: 8
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #7 am: Februar 12, 2018, 14:29:32 »
Wow, vielen lieben Dank, das hilft mir sehr weiter, da kann ich echt schön drauf aufbauen.

Gruß Miu
 

Offline Miuvial

  • Newbie
  • Beiträge: 8
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #8 am: Februar 15, 2018, 10:47:39 »
Jetzt muss ich leider doch nochmal nachfragen.
Ich habe Lachtaubes Beispiel benutzt und damit mein Formular aufgebaut, das sieht auch soweit ganz gut aus und es funktioniert, neue Daten anzulegen.

Wenn ich jetzt allerdings die Ereignisprozedur für das Kombinationsfeld benutzen möchte, um nach Mitarbeitern suchen zu können, bekomme ich immer einen Compiler Fehler "Methode oder Datenobjekt nicht gefunden", markiert ist dabei Private Sub Form_Current (siehe Code).

[b]Option Compare Database
Option Explicit

Private Sub AktiverMitarbeiter_AfterUpdate()
   ' Find the record that matches the control.
   Dim rs As Object

   Set rs = Me.Recordset.Clone
   rs.FindFirst "ma_id = " & Str(Nz(Me.AktiverMitarbeiter, 0))
   If Not rs.NoMatch Then Me.Bookmark = rs.Bookmark
End Sub

Private Sub Form_AfterDelConfirm(Status As Integer)
   If Status = acDeleteOK Then Me.AktiverMitarbeiter.Requery
End Sub

Private Sub Form_AfterUpdate()
   Me.AktiverMitarbeiter.Requery
End Sub

Private Sub Form_Current()
   If Me.NewRecord Or IsDate(Me.austritt) Then
      Me.AktiverMitarbeiter = Null
   Else
      Me.AktiverMitarbeiter = Me.ma_id
   End If
End Sub
[/b]

Ich habe leider absolut keine Ahnung was da genau das Problem ist, da ich von VBA und Access immer noch ziemlich wenig Plan habe. Vielleicht kann mir jemand helfen das Problem zu lösen? Ich habe meine Datei hier angehängt.
 


Offline Miuvial

  • Newbie
  • Beiträge: 8
Re: Eingabe neuer Daten in ein UFO mit Daten aus 3 verschiedenen Tabellen
« Antwort #10 am: Februar 15, 2018, 11:46:47 »
Hallo,

vielen Dank für deine Mühe!