Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: yaji am März 01, 2014, 18:29:01

Titel: Feld B aktualisieren wenn Feld A verändert
Beitrag von: yaji am März 01, 2014, 18:29:01
Liebe Access-Gemeinde,

in meinem Formular frm_adr_g habe ich die zwei Felder
* kon_name_lat (Feld A)
* kon_name_ori (Feld B)

Die Felder A und B beziehen ihre Daten aus der selben Zeile der Tabelle tab_name,
A aus tab_name.tab_name_lat
B aus tab_name.tab_name_ori

Ich will erreichen, dass Feld B sich automatisch mit dem passenden Text aktualisiert, wenn ich Feld A verändert habe. Hat das etwas mit "Requery" zu tun? Was muss ich wo eingeben?

Herzlichen Dank für Eure Antwort,
Yaji
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: database am März 02, 2014, 10:00:23
Hallo,

Zitatsich automatisch mit dem passenden Text aktualisiert

und woher kommt der 'passende Text', woher wird der bezogen?
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: yaji am März 02, 2014, 11:44:22
Der passende Text steht in der von beiden Feldern genutzten Tabelle in der selben Zeile.
Beispiel:
Feld A: Yamamoto (japanischer Name in lateinischer Umschrift)
Felb B: 山本 (der selbe Name in japanischer Originalschrift)
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: database am März 02, 2014, 16:52:08
Hallo,

dann verstehe ich dein Problem nicht ganz, sorry  :-\

Wenn beide Felder des Formulars Felder der gleichen Tabelle sind und beide Felder an die Tabellenfelder gebunden sind
aktualisiert sich die Anzeige VOLLAUTOMATISCH, sobald du den Datensatz wechselst.
Wenn du in Feld A jedoch was eingibst, dann veränderst du bei gebundenen Feldern auch den Tabelleninhalt - da wird und kann sich nix aktualisieren.

Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: yaji am März 02, 2014, 17:14:55
Lieber Access Guru,

vielen Dank für Deine Antwort. Es scheint, dass ich mein Problem nicht gut erklären kann, obwohl es wahrscheinlich ziemlich trivial ist. Ich probier's aber noch mal anders:

Im Formular habe ich zwei Felder, die zwar aus der selben Tabelle ihre Daten beziehen, aber in der Tabelle auf zwei Spalten verteilt sind. Hier konkret: Spalte A der Tabelle enthält die Transkription eines japanischen Namens, Spalte B der Tabelle die Originalschreibung. Auf diese beiden Spalten beziehen sich die Felder A und B im Formular. Zur Zeit gebe ich die Daten so ein:

Feld A: ich wähle aus Kombinationsfeld kon_Name_lat im Drop-Down-Verfahren eine Namenstranskription aus.
Feld B: ich wähle aus Kombinationsfeld, in dem unter "Datenherkunft" der Befehl SELECT DISTINCT [tab_Name_ori] FROM tab_name WHERE kon_Name_lat=[tab_name.tab_name_lat] steht, die in Frage kommende japanische Schreibung aus.

Was ich nun gerne haben würde, ist, dass ich den Schritt für Feld B nicht mehr selbst machen muss, sondern Feld B sozusagen von selbst reagiert und den Befehl "SELECT...." ausführt.

Wäre echt schön, wenn Du mir weiterhelfen könntest.
Herzlichst,
Yaji
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: MzKlMu am März 02, 2014, 17:37:45
Hallo,
mir ist das Vorhaben auch noch ziemlich unklar.
Wenn Du etwas auswählst, so heißt das doch, Du triffst auf einem Formular mit einem Kombi eine Auswahl und schreibst den ausgewählten Wert in eine extra Tabelle, ist das richtig?

Wenn das so ist, wäre das Vorhaben ohnehin zu überdenken.
In der Tabelle tab_name sollte es einen Primärschlüssel geben, der den Datensatz eindeutig bestimmt.
Mit einem Kombi wird dann der Primärschlüssel geschrieben aber keiner der beiden Namen. Die Klartexte holt man sich über die Formularabfrage die auch die Tabelle tab_name beinhaltet. Im Kombi zur Auswahl zeigt man über die Spaltenbreiten gesteuert einen der beiden Texte an, den anderen Text über die Abfrage des Formulars.

Die ganze Aktualisierung erfolgt dann automatisch, ohne einen einzigen Buchstaben Code.
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: DF6GL am März 02, 2014, 17:50:21
Hallo,

auch nach Deiner erneuten Beschreibung ist unverständlich (bzw. ändert sich nichts an der Antwort von database) , was Du da eigentlich anstellen willst...

So wie es beschreiben und interpretiert wird, geht das so nicht. Vermutlich willst Du etwas ganz anderes:

Du willst in  einer Übersetzungstabelle Wörter oder Teilwörter (Vokabeln, Namen) aus einer (weiteren)  allumfänglichen Sprachtabelle auswählen und dieser ausgewählten Vokabel  das Übersetzungs-Pendant aus einer wiederum weiteren Tabellen zuordnen.


Somit ergäbe sich dieser Zusammenhang:

tblTranslation
TrID (PK)
Tr_DEID (FK)
Tr_JAID (FK)
TR_Notiz (Text, Memo)
.
.

tblDeutsch
DEID (PK)
DE_Bezeichnung (Text)

tblJapanisch
JAID (PK)
JA_Bezeichnung (Text)


Die Eingabe/Pflege der Daten erfolgt mit einem Formular,
in welchen der japanische als auch der deutsche Text über gebundene Kombifelder ausgewählt werden, die ihre Listenfelddaten aus den entspr. Sprachtabellen beziehen.
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: database am März 02, 2014, 19:16:30
So, nun gut ich versuche das nochmal...

Von Kombifeldern hast du ursprünglich nichts erwähnt, daher auch meine Verwirrung.

Wenn du das Formular bzw. den Tabelleninhalt zum Erlernen oder Üben der japanischen Schriftzeichen benutzen willst, soll meinetwegen dein Tabellenaufbau OK sein, für alle anderen Zwecke - siehe Ausführungen von DF6GL.

Die Datenherkunft des ersten Kombifeldes MUSS den Primärschlüssel der Herkunftstabelle enthalten, sonst funzt das ganze nicht.
Sollte deine Tabelle ein ID-Feld enthalten dann dementsprechend so:

SELECT [DeinIDFeld], [tab_Name_lat] FROM tab_name

Die Spaltenanzahl des Kombifeldes ist auf 2 einzustellen, die gebunden Spalte auf 1 und die Spaltenbreiten auf 0 cm und ...3 cm (wenn zu klein dann eben erhöhen)

Die Datenherkunft des 2 Kombis stellst du ein:

SELECT [DeinIDFeld], [tab_Name_ori] FROM tab_name

Bezüglich Spaltenanzahl usw. wie bei Kombi 1 verfahren.

Ins Ereignis 'Nach Aktualisierung' des ersten Kombis schreibst du:

Me.kon_name_ori = Me.kon_name_lat

Ins Ereignis 'Nach Aktualisierung des zweiten Kombis schreibst du:

Me.kon_name_lat = Me.kon_name_ori

Das hat nun den Effekt, dass du nach der Auswahl im Kombi A die Entsprechung in Kombi B angezeigt bekommst.
Damit das auch umgekehrt funktioniert - als Auswahl in Kombi B und Anzeige in Kombi A - der zweite Code fürs Kombi B

Wenn deine Tabelle KEIN ID-Feld enthält dann füge jetzt eines ein - natürlich als AutoWert deklariert.
Wenn du das nicht machen willst (klarerweise sowieso nur in einer KOPIE deiner Original-DB!!!!) bedarf es einer kleinen Änderung, die Codes in meinem Beitrag funktionieren in diesem Fall NICHT.

Datenherkunft des Kombi A:
SELECT [tab_Name_lat] FROM tab_name
Die Spaltenanzahl ist in dem Fall 1, die gebundene Spalte 1 und die Spaltenbreite entweder Automatisch oder du gibst einen Wert ein

Datenherkunft für Kombi B:
SELECT [tab_Name_lat], [tab_Name_ori] FROM tab_name
Die Spaltenbreiten etc. sind wie ganz oben einzustellen.




Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: MzKlMu am März 02, 2014, 19:39:01
Hallo,
@Peter
wenn beide Kombis an das Fremdschlüsselfeld gebunden werden, so ist kein VBA Code zur Aktualisierung notwendig. Die aktualisieren sich gegenseitig automatisch.

Deinen Vorschlag habe ich auch schon gepostet, nur kürzer. ;D ;D
Zitat von: MzKlMuIn der Tabelle tab_name sollte es einen Primärschlüssel geben, der den Datensatz eindeutig bestimmt. Mit einem Kombi wird dann der Primärschlüssel geschrieben aber keiner der beiden Namen. Die Klartexte holt man sich über die Formularabfrage die auch die Tabelle tab_name beinhaltet. Im Kombi zur Auswahl zeigt man über die Spaltenbreiten gesteuert einen der beiden Texte an, den anderen Text über die Abfrage des Formulars.
Aber Dein Text ist dann doch ausführlicher.
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: database am März 02, 2014, 19:53:03
Hi,

@Klaus
wenn beide Kombis an das Fremdschlüsselfeld ...
gibt's in meinem Beispiel nicht, bei ungebundenen Kombis wird VBA-Codierung benötigt, bei Bindung an den PK funktioniert bekannterweise die Auswahl nicht.
Ich bin bei meiner Empfehlung von einer Tabelle ausgegangen, so wie es der TO dargestellt hat.
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: MzKlMu am März 02, 2014, 19:58:37
Hallo,
Zitatgibt's in meinem Beispiel nicht
war mir jetzt gar nicht aufgefallen. Warum denn nicht? Du sparst Dir doch den Aktualisierungscode.
Wenn die getroffene Auswahl gespeichert werden soll, muss das ja auch sein.
Aber zugegeben ob gespeichert werden soll, ist ja auch noch unklar.
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: database am März 02, 2014, 20:09:53
Hi,
ZitatWarum denn nicht?
Weil ich, so wie ich geschrieben habe, die Aktualisierung der Kombis auf den BESTAND des Fragestellers ausgerichtet hatte
und nicht auf ein verändertes / berichtigtes Datenmodell....

Zitat von: database am März 02, 2014, 19:16:30
Wenn du das Formular bzw. den Tabelleninhalt zum Erlernen oder Üben der japanischen Schriftzeichen benutzen willst, soll meinetwegen dein Tabellenaufbau OK sein, für alle anderen Zwecke - siehe Ausführungen von DF6GL

Zum EINGEBEN von Daten ist das ganze natürlich nicht geeignet ...
Titel: Re: Feld B aktualisieren wenn Feld A verändert
Beitrag von: yaji am März 07, 2014, 08:45:31
Liebes Forum,

es hat tatsächlich geklappt! Ganz, ganz herzlichen Dank. Ich bin - wie Ihr sicher gemerkt habt - ein totaler Laie und jetzt natürlich sehr dankbar!

Herzlichst,
Yaji