bezug nehmend auf meinen letzten Artikel poste ich hier schon wieder, da ich es leider noch nicht hinbekommen habe. Ich habe mir auch schon die Artikel im Archiv angesehen, brachte mir jedoch auch nichts.
Problem: Ich habe drei Tabellen, [Astro], [Player] und [Guild].
[Guild] hat nur zwei Spaltem, [ID] und [Name].
[Player] hat drei Spalten, [ID], [Name] und [Guild]. Über [Guild] ist [Player] mit [Guild].[ID] verknüpft.
[Astro] hat neben anderen Spalten die Spalte [belongs_to], welche [Astro] mit [Player].[ID] verknüpft.
Ich habe nun ein Formular erstellt. [Astro]! In diesem Formular kann ich Daten in ALLE DREI Tabellen eintragen.
Trage ich die Position eines neuen Astro ein, kann ich über ein KombiFeld einen Player auswählen. Ist der Player noch nicht vorhanden, kann ich im selben Formular eine neue Player.ID und einen Namen eintragen, sowie die Guild über ein Kombi-Feld auswählen. Hier wieder das gleiche: Ist die Guild nicht vorhanden, kann ich eine neue im selben Formular eingeben. Schließe ich jetzt das Formular und öffne es wieder, sind dem neu eingegebenen Astro der neue Player mit neuer Guild zugewiesen. Wenn ich jedoch das Formular geöffnet lasse und nur auf den Button „Neuer Datensatz“ klicke, werden die KombiFelder belongs_to und is_in nicht aktualisiert.
Nun habe ich schon folgendes versucht:
Ich habe mir die Eigenschaften des Feldes [Player_ID] anzeigen lassen und dort bei „Bei Focusverlust“ folgendes eingetragen, „Forms!Astro!belongs_to.Requery“
Trage ich nun eine neue Player-ID ein bekomme ich die Meldung: Access kann das Makro ‚Forms!Astro!belongs_to‘ nicht finden.
Was mache ich da falsch?
Vielen Dank für die Hilfe.
Nun habe ich schon folgendes versucht:
Ich habe mir die Eigenschaften des Feldes [Player_ID] anzeigen
lassen und dort bei „Bei Focusverlust“ folgendes eingetragen,
„Forms!Astro!belongs_to.Requery“
Du solltest diesen VBA-Code bei den Feldern nutzen, in denen du Einträge vornimmst, also da wo du z.B. den Playernamen eingibst.
Trage ich nun eine neue Player-ID ein bekomme ich die Meldung:
Access kann das Makro ‚Forms!Astro!belongs_to‘ nicht finden.
Was mache ich da falsch?
Bei Fokusverlust: Ereignisprozedur […]
dort auf die drei Punkte klicken
dann bist du im Code-Generator (VBA Editor)
trage nun ME.belongs_to.requery ein
schließe den Code-Generator (VBA-Editor)
Me. = aktuelles Formular
Trägst du an Stelle von Ereignisprozedur etwas anderes ein, „denkt“ Access du willst ein Makro mit diesem Namen aufrufen.
irgendetwas funktioniert damit nicht ganz. Wenn ich das an die richtige Stelle eintrage, wie von dir beschrieben, bekomme ich einen Laufzeitfehler, sobald ich bei Playernamen etwas eintrage oder einfach nur der Curser in dem Feld ist. Klicke ich dann auf „Weiter“ oder auf ein anderes Feld, bekomme ich den Laufzeitfehler 424, „Objekt erfordferlich“. Wenn ich auf „Beenden“ klicke, kann ich ganz normal weiterarbeiten.
Mein VBA-Code:
Option Compare Database
Private Sub Player\_ID\_LostFocus()
Astro.belongs\_to.Requery
End Sub
Private Sub Player\_Name\_LostFocus()
Astro.belongs\_to.Requery
End Sub