Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensatz aus UFO mit Datensatz im HF verknüpfen

Begonnen von Atuatuca, Februar 22, 2016, 13:35:01

⏪ vorheriges - nächstes ⏩

Atuatuca

Hallo Acces-O-Maniacs,

gerne würde ich ein Datensatz aus meinem UFO (frm_Con, tbl_Con) mit dem aktuellen Datensatz im HF (frm_OP, tbl_OP) verknüpfen.

Die ID's sind über eine Zwischentabelle (tbl_OP_CON) mit einander verknüpft.

Das UFO wird dargestellt mit 36 Datensätzen mit den Spalten CON_ID, CON, Betrifft (Ja/Nein), Erledigt (Ja/Nein).

Jetzt möchte ich, dass wenn das JA/Nein Feld [Betrifft] im UFO angehakt wird der Datensatz aus dem HF (z.Bspl. 123) mit dem Datensatz aus dem UFO (z.Bspl. 5) in der Zwischentabelle gespeichert wird, sodass beim erneuten aufrufen das Datensatzes 123 das UFO den Datensatz 5 mit dem Haken bei dem Feld [Betrifft] zeigt.

=> tbl_OP_CON (ID_OP mit Wert 123, ID_CON mit Wert 5

mit einem Listenfeld bekomme ich es hin, aber ich möchte gerne etwas mit "Hakensetzen" haben.

Bei der Lösung mit dem Listenfeld sind folgende Ereignisse hinterlegt:

Beim laden des Formulars:
Private Sub Form_Current()
Dim I As Long, rs As DAO.Recordset
  With Me!lst_Con
    If Not IsNull(Me!ID_OP) Then
      Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_OP_CON WHERE ID_OP = " & Me!ID_OP, dbOpenSnapshot)
        For I = 0 To .ListCount - 1
          rs.FindFirst "ID_CON = " & Nz(.Column(0, I), -1)
          'Debug.Print .Column(1, I), RS.NoMatch
          .Selected(I) = Not rs.NoMatch
        Next I
      rs.Close
    Else
      For I = 0 To .ListCount - 1
        .Selected(I) = False
      Next I
    End If
    Me!lst_Con.Requery
  End With
End Sub


Beim klicken auf dem Listenfeld:
Private Sub lst_Con_Click()
Dim I As Long, rs As DAO.Recordset
  With Me!lst_Con
    If Not IsNull(Me!ID_OP) Then
      CurrentDb.Execute "DELETE FROM tbl_OP_CON WHERE ID_OP = " & Me!ID_OP
      Set rs = CurrentDb.OpenRecordset("tbl_OP_CON", dbOpenDynaset)
        For I = 0 To .ListCount - 1
          If .Selected(I) Then
            rs.AddNew
            rs!ID_Con = Nz(.Column(0, I), -1)
            rs!ID_OP = Me!ID_OP
            rs.Update
          End If
            Me!lst_Con.Requery
         Next I
      rs.Close
    End If
  End With
End Sub


Es müsste doch so etwas sein wie

Wenn Ja/Nein-Feld [Betrifft] in UFO = "wahr" dann erzeuge ein neuen Datensatz in tbl_OP_CON (ID_OP; ID;CON) mit ID_OP aus HF und ID_CON aus UFO.
Wenn Ja/Nein-Feld [Betrifft] im UFO = "falsch" dann lösche den Datensatz aus der
tbl_OP_CON mit ID_OP aus HF und ID_CON aus UFO, falls vorhanden.

Leider weiss ich nicht wie ich das VBA/DB technisch umsetzen kann/soll.

Bin für jede Hilfe / Anregung dankbar.

Gruss
Atuatuca

DF6GL

#1
Hallo,

was ist denn hiermit:  http://www.access-o-mania.de/forum/index.php?topic=21071.0   ??

Wenn Du auf Deiner  unsinnigen Konstruktion sitzen bleibst, wird das nix.


Und:  das Pferd ist nicht von hinten aufzuzäumen....   

Ich sag's nochmal: Bevor Du Gedanken an Formulare und Aktualisierungen verschwendest, MUSS die Tabellenkonstruktion stimmen, soll heißen , Deine Datensituation entspr. den Normalisierungsregeln (siehe u. st. Links 1 und 1a) korrekt widerspiegeln.

Zu Deiner Frage:

HFo Und UFo werden dadurch miteinander verknüpft, als dass die Eigenschaften des UFO-Steuerelementes "Verknüpfen von/nach" auf die richtigen Schlüsselfelder gesetzt werden.

Zudem ist die FAQ von www.donkarl.com als Nachschlagewerk angeraten.






Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Atuatuca

Hallo Franz,

dass sind 2 paar Schuh. Den anderen Thread von mir hat nichts mit meinem jetzigem Problem zu tun. Mehrere Felder gleichzeitig ändern ist in meinem Fall eine Komfortfunktion. Diese werde ich zur gegebene Zeit anpacken. Habe dort gerade Screenshot von den DB-Beziehungen eingestellt. Vielleicht könnte man die tbl_ZUG_AOC weglassen. Zug und AOC ergeben ein CON-Nr.

ZitatHFo Und UFo werden dadurch miteinander verknüpft, als dass die Eingenschaften des UFO-Steuerelementes "Verknüpfen von/nach" auf die richtigen Schlüsselfelder gesetzt werden.

Ist mir klar und habe ich auch so realisiert. Die ID's (HF und UFO) werden in eine separaten Tabelle gespeichert.

Habe gerade eine DB bgzl. o.g. Thema hochgeladen.

Gruss
Atuatuca

DF6GL

Hallo,


Zitatdass sind 2 paar Schuh.


nein, das stimmt nicht.  Es handelt sich doch um die gleiche Db, oder nicht?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access