(gelöst) bestimmte Felder per Makro (Schalter) leeren
Moderator: Moderatoren
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert!
Danke, danke. Manchmal sieht man den Wald vor lauter Bäumen wohl nicht.
Gruß Andreas
Danke, danke. Manchmal sieht man den Wald vor lauter Bäumen wohl nicht.
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Hat geklappt, danke.
Jetzt habe ich aber gerade noch ein weiteres Problem. Es könnte vorkommen, dass jemand zwei, drei oder mehr Stichwörter erhalten muss. Kann man das hinbekommen?
Gruß Andreas
Hat geklappt, danke.
Jetzt habe ich aber gerade noch ein weiteres Problem. Es könnte vorkommen, dass jemand zwei, drei oder mehr Stichwörter erhalten muss. Kann man das hinbekommen?
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
eigentlich sollte das jetzt für ein neues Thema auch eine neue Überschrift sein.
Eine Person - mehrere Stichwörter → aber auch ein Stichwort - mehrere Personen
Das ist eine typische n:m-Beziehung. Die kannst Du in einer Datenbank lösen, indem Du zwischen die Tabelle "Stichwort" und die Tabelle "Person" eine weitere Tabelle setzt. Ich nenne die einmal "rel_Stichwort_Person". In dieser speicherst Du als kombinierten Primärschlüssel die Fremdschlüssel der Tabelle "Stichwort" und der Tabelle "Person". Dann ist aber das Stichwort, das Du bisher in der Tabelle "Person" direkt abspeicherst, raus. Die Suche nach Stichworten muss dann anders laufen, ebenso die Eingabe.
Alternativ kannst Du auch in einer separaten Tabelle die Tabelle "Person" mit einem Fremdschlüssel abspeichern und die Stichworte direkt als Text dazu. Dann existiert weiter ein Kombinationsfeld zur Eingabe neuer Stichworte. Dieses Feld würde in einem Tabellenkontrollfeld in einem Unterformular stehen.
Und letztlich kannst Du natürlich auch in der Tabelle "Person" mehrere Stichworteingaben ermöglichen (Stichwort1, Stichwort2 usw.). Nur gibt es dann deutlich Probleme, die unterschiedlichen Stichworte irgendwie zusammenzufassen, so dass Du eine gemeinsame Auswahl hast.
Gruß
Robert
eigentlich sollte das jetzt für ein neues Thema auch eine neue Überschrift sein.
Eine Person - mehrere Stichwörter → aber auch ein Stichwort - mehrere Personen
Das ist eine typische n:m-Beziehung. Die kannst Du in einer Datenbank lösen, indem Du zwischen die Tabelle "Stichwort" und die Tabelle "Person" eine weitere Tabelle setzt. Ich nenne die einmal "rel_Stichwort_Person". In dieser speicherst Du als kombinierten Primärschlüssel die Fremdschlüssel der Tabelle "Stichwort" und der Tabelle "Person". Dann ist aber das Stichwort, das Du bisher in der Tabelle "Person" direkt abspeicherst, raus. Die Suche nach Stichworten muss dann anders laufen, ebenso die Eingabe.
Alternativ kannst Du auch in einer separaten Tabelle die Tabelle "Person" mit einem Fremdschlüssel abspeichern und die Stichworte direkt als Text dazu. Dann existiert weiter ein Kombinationsfeld zur Eingabe neuer Stichworte. Dieses Feld würde in einem Tabellenkontrollfeld in einem Unterformular stehen.
Und letztlich kannst Du natürlich auch in der Tabelle "Person" mehrere Stichworteingaben ermöglichen (Stichwort1, Stichwort2 usw.). Nur gibt es dann deutlich Probleme, die unterschiedlichen Stichworte irgendwie zusammenzufassen, so dass Du eine gemeinsame Auswahl hast.
Gruß
Robert
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Ich denke, ich würde die nachfolgend von dir genannte Weise bevorzugen:
"Alternativ kannst Du auch in einer separaten Tabelle die Tabelle "Person" mit einem Fremdschlüssel abspeichern und die Stichworte direkt als Text dazu. Dann existiert weiter ein Kombinationsfeld zur Eingabe neuer Stichworte. Dieses Feld würde in einem Tabellenkontrollfeld in einem Unterformular stehen."
Da ich damit wohl ein wenig überfordert bin, frage ich mal, ob du das für mich basteln könntest. Ich wäre dir sehr dankbar. Ich hänge die derzeitige Datenbank mal hier mal an. Das derzeitige Tabellenkontrollfeld stellt im Grunde nur eine Übersicht dar und muss da erst mal nicht bleiben.
Kann ich die Suche bei deiner Idee denn so beibehalten?
Gruß Andreas
Ich denke, ich würde die nachfolgend von dir genannte Weise bevorzugen:
"Alternativ kannst Du auch in einer separaten Tabelle die Tabelle "Person" mit einem Fremdschlüssel abspeichern und die Stichworte direkt als Text dazu. Dann existiert weiter ein Kombinationsfeld zur Eingabe neuer Stichworte. Dieses Feld würde in einem Tabellenkontrollfeld in einem Unterformular stehen."
Da ich damit wohl ein wenig überfordert bin, frage ich mal, ob du das für mich basteln könntest. Ich wäre dir sehr dankbar. Ich hänge die derzeitige Datenbank mal hier mal an. Das derzeitige Tabellenkontrollfeld stellt im Grunde nur eine Übersicht dar und muss da erst mal nicht bleiben.
Kann ich die Suche bei deiner Idee denn so beibehalten?
Gruß Andreas
- Dateianhänge
-
- AdressenNeu.odb
- (39.96 KiB) 112-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
die Abfrage für die Suche musste etwas geändert werden. Ich habe einfach hinter die neue Abfrage und das neue Formular eine 1 gesetzt. Die alte Variante funktioniert weiterhin, die neue Variante speichert die Stichworte in einer separaten Tabelle. In der neue Variante habe ich nur eine Person, der ich testweise ein Stichwort zugeordnet habe.
Wenn Du die neue Variante nimmst kannst Du aus der Tabelle "Adressen" die Spalte "Stichwort" entfernen.
Gruß
Robert
die Abfrage für die Suche musste etwas geändert werden. Ich habe einfach hinter die neue Abfrage und das neue Formular eine 1 gesetzt. Die alte Variante funktioniert weiterhin, die neue Variante speichert die Stichworte in einer separaten Tabelle. In der neue Variante habe ich nur eine Person, der ich testweise ein Stichwort zugeordnet habe.
Wenn Du die neue Variante nimmst kannst Du aus der Tabelle "Adressen" die Spalte "Stichwort" entfernen.
Gruß
Robert
- Dateianhänge
-
- AdressenNeu(4).odb
- (52.09 KiB) 111-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hi Robert !
Ich habe das Formular mal geöffnet und für sehr gut befunden. Als ich aber den Eintrag Stichwort aus der Tabelle Adressen gelöscht habe, konnte ich plötzlich keine Stichwörter mehr filtern. Ich habe dann den Select auf die Tabelle Stichworte geändert und schon funktioniert es.
Jetzt aber noch eine Frage:
Ich habe für die Schnellübersicht rechts noch das Tabellenkontrollfeld, wo ich den Vor- und Nachnamen und auch das Stichwort angezeigt bekam. Vor- und Nachname geht ja noch, aber bekommt man es irgendwie hin, dort auch die Stichwörter bei den Namen anzuzeigen? Mehr als 5 Stichwörter dürften es nicht werden.
Hast du da eine Idee?
Gruß Andreas
Ich habe das Formular mal geöffnet und für sehr gut befunden. Als ich aber den Eintrag Stichwort aus der Tabelle Adressen gelöscht habe, konnte ich plötzlich keine Stichwörter mehr filtern. Ich habe dann den Select auf die Tabelle Stichworte geändert und schon funktioniert es.
Jetzt aber noch eine Frage:
Ich habe für die Schnellübersicht rechts noch das Tabellenkontrollfeld, wo ich den Vor- und Nachnamen und auch das Stichwort angezeigt bekam. Vor- und Nachname geht ja noch, aber bekommt man es irgendwie hin, dort auch die Stichwörter bei den Namen anzuzeigen? Mehr als 5 Stichwörter dürften es nicht werden.
Hast du da eine Idee?
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
Wenn Du in einem Tabellenkontrollfeld gleichzeitig zwei Tabellen darstellen willst geht das im Allroundverfahren nur über eine Kombination mit Listenfeldern. Vorname und Nachname bleiben stehen, das Listenfeld hat als Grundlage die "AdressenID" der Tabelle "Adressen", zeigt aber alle dazugehörigen "Stichwort" aus der Tabelle "Stichworte" an. Allerdings musst Du das Listenfeld öffnen.
Alternativ dazu könntest Du eine Abfrage konstruieren, die die Stichworte hintereinander auflistet. Ich passe einmal das noch nicht ganz fertige LO-Base-Handbuch Deinen Bedürfnissen an:
Aus dieser Abfrage wird jetzt die Ansicht 'Ansicht1' erstellt. Die Abfrage, mit der z.B. die ersten 3 Stichworte zusammen in einer Zeile erscheinen können, lautet:
Auf diese Art und Weise können mehrere Datensätze nebeneinander als Felder dargestellt werden.
Jetzt brauchst Du natürlich noch Name und Vorname. Die kommen ja aus der Tabelle "Adresse". Die Verknüpfung zwischen "Ansicht1" und der Tabelle "Adresse" ist das Feld "AdresseID" der Tabelle "Adresse" bzw. "Adresse_ID" der "Ansicht1".
Diese Abfrage braucht dann aber ein separates Formular. Schließlich kann ein Formular nur eine Abfrage, einen SQL-Befehl oder eine Tabelle als Grundlage haben. Also muss ein Formular neben den anderen konstruiert werden oder ein Formular als Subformular, z.B. zur Tabelle "Filter".
Gruß
Robert
Wenn Du in einem Tabellenkontrollfeld gleichzeitig zwei Tabellen darstellen willst geht das im Allroundverfahren nur über eine Kombination mit Listenfeldern. Vorname und Nachname bleiben stehen, das Listenfeld hat als Grundlage die "AdressenID" der Tabelle "Adressen", zeigt aber alle dazugehörigen "Stichwort" aus der Tabelle "Stichworte" an. Allerdings musst Du das Listenfeld öffnen.
Alternativ dazu könntest Du eine Abfrage konstruieren, die die Stichworte hintereinander auflistet. Ich passe einmal das noch nicht ganz fertige LO-Base-Handbuch Deinen Bedürfnissen an:
Code: Alles auswählen
SELECT "ID", "Adresse_ID", "Stichwort", ( SELECT COUNT( "ID" ) FROM "Stichworte" WHERE "ID" <= "a"."ID" AND "Adresse_ID" = "a"."Adresse_ID") AS "lfdNr." FROM "Stichworte" AS "a"
Code: Alles auswählen
SELECT "Adresse_ID", "Stichwort" AS "ST_1", ( SELECT "Stichwort" FROM "Ansicht1" WHERE "lfdNr." = 2 AND "Adresse_ID" = "a"."Adresse_ID" ) AS "ST_2", ( SELECT "Stichwort" FROM "Ansicht1" WHERE "lfdNr." = 3 AND "Adresse_ID" = "a"."Adresse_ID" ) AS "ST_3" FROM "Ansicht1" AS "a" WHERE "lfdNr." = 1
Jetzt brauchst Du natürlich noch Name und Vorname. Die kommen ja aus der Tabelle "Adresse". Die Verknüpfung zwischen "Ansicht1" und der Tabelle "Adresse" ist das Feld "AdresseID" der Tabelle "Adresse" bzw. "Adresse_ID" der "Ansicht1".
Diese Abfrage braucht dann aber ein separates Formular. Schließlich kann ein Formular nur eine Abfrage, einen SQL-Befehl oder eine Tabelle als Grundlage haben. Also muss ein Formular neben den anderen konstruiert werden oder ein Formular als Subformular, z.B. zur Tabelle "Filter".
Gruß
Robert
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo !
Ich verstehe zwar was du willst, aber umsetzen kann ich das nun wirklich nicht. Ich bin in solchen Dingen eher ein Anwender und würde mich um Umsetzung dieser Sache freuen. Machst du das für mich?
Ich füge die aktuelle DB noch mal hinzu.
Danke schon mal.
Gruß Andreas
Ich verstehe zwar was du willst, aber umsetzen kann ich das nun wirklich nicht. Ich bin in solchen Dingen eher ein Anwender und würde mich um Umsetzung dieser Sache freuen. Machst du das für mich?
Ich füge die aktuelle DB noch mal hinzu.
Danke schon mal.
Gruß Andreas
- Dateianhänge
-
- Adressen.odb
- (40.44 KiB) 114-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
ich habe das jetzt so eingebaut, dass die Stichworte in einem Feld gemeinsam erscheinen. Das Tabellenkontrollfeld ist völlig unabhängig von der Suche - soll das so sein oder soll die Suche einen Einfluss darauf haben?
Gruß
Robert
ich habe das jetzt so eingebaut, dass die Stichworte in einem Feld gemeinsam erscheinen. Das Tabellenkontrollfeld ist völlig unabhängig von der Suche - soll das so sein oder soll die Suche einen Einfluss darauf haben?
Gruß
Robert
- Dateianhänge
-
- Adressen.odb
- (40.92 KiB) 125-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Genauso, wie es jetzt ist, ist es gut. Ich danke dir sehr dafür und werde das Thema jetzt auf "gelöst" stellen.
Wie gesagt, vielen vielen Dank.
Gruß Andreas
Genauso, wie es jetzt ist, ist es gut. Ich danke dir sehr dafür und werde das Thema jetzt auf "gelöst" stellen.
Wie gesagt, vielen vielen Dank.
Gruß Andreas
Re: (gelöst) bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Es ist zwar schon einige Zeit ins Land gegangen, aber ich bin lange nicht zur Umsetzung der Daten aus einer Access-Datenbank in die OpenOffice Datenbank gekommen. Dabei habe ich aber ein Problem festgestellt:
Im Formular Adressen hast du ein Tabellenkontrollfeld für die Stichworte eingebaut. Wenn ich jetzt einem vorhandenen Datensatz (Name, pp.) ein Stichwort zuordne bzw. ein neues eintrage, klappt das tadellos. Wenn ich aber nun den gesamten Datensatz der Person löschen möchte, klappt das gar nicht mehr. Ich muss zunächst alle Stichworte im Formular im Tabellenkontrollfeld händisch löschen und kann dann den Datensatz über den Schalter löschen.
Gibt es da eine andere Lösung, zumal die Datensätze mit den Stichworten als Tabellen verknüpft sind.
Danke schon mal
Gruß Andreas
Es ist zwar schon einige Zeit ins Land gegangen, aber ich bin lange nicht zur Umsetzung der Daten aus einer Access-Datenbank in die OpenOffice Datenbank gekommen. Dabei habe ich aber ein Problem festgestellt:
Im Formular Adressen hast du ein Tabellenkontrollfeld für die Stichworte eingebaut. Wenn ich jetzt einem vorhandenen Datensatz (Name, pp.) ein Stichwort zuordne bzw. ein neues eintrage, klappt das tadellos. Wenn ich aber nun den gesamten Datensatz der Person löschen möchte, klappt das gar nicht mehr. Ich muss zunächst alle Stichworte im Formular im Tabellenkontrollfeld händisch löschen und kann dann den Datensatz über den Schalter löschen.
Gibt es da eine andere Lösung, zumal die Datensätze mit den Stichworten als Tabellen verknüpft sind.
Danke schon mal
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren NEUES PROBL
Hallo Andreas,
das liegt daran, dass die Beziehungsdefinition nur eben schnell erstellt wurde:
Öfnne die Datenbank, dann im Menü Extras → Beziehungen. Doppelklick auf die Verbindungslinie. Du bekommst ein Fenster angezeigt, bei dem in den Update-Optionen und in den Lösch-Optionen jeweils "Keine Aktion" gewählt ist. Wähle darunter "Kask. Update" und "Kask. Löschen". Das sorgt dafür, dass bei einer Änderung des Primärschlüssels in der Tabelle Adressen (Update) das entsprechende Feld in der Tabelle "Stichworte" ebenfalls geändert wird, die Verbindung also nicht verloren geht. Beim Löschen des Datensatzes werden automatisch auch die dazu notierten Stichworte gelöscht. "Kask." steht für kaskadieren, d.h. von dem Primärschlüssel aus (1) zu dem Fremdschlüssel (n).
Gruß
Robert
das liegt daran, dass die Beziehungsdefinition nur eben schnell erstellt wurde:
Öfnne die Datenbank, dann im Menü Extras → Beziehungen. Doppelklick auf die Verbindungslinie. Du bekommst ein Fenster angezeigt, bei dem in den Update-Optionen und in den Lösch-Optionen jeweils "Keine Aktion" gewählt ist. Wähle darunter "Kask. Update" und "Kask. Löschen". Das sorgt dafür, dass bei einer Änderung des Primärschlüssels in der Tabelle Adressen (Update) das entsprechende Feld in der Tabelle "Stichworte" ebenfalls geändert wird, die Verbindung also nicht verloren geht. Beim Löschen des Datensatzes werden automatisch auch die dazu notierten Stichworte gelöscht. "Kask." steht für kaskadieren, d.h. von dem Primärschlüssel aus (1) zu dem Fremdschlüssel (n).
Gruß
Robert
- Dateianhänge
-
- Beziehungsdefinition_Stichworte.png (47.04 KiB) 4065 mal betrachtet
Re: bestimmte Felder per Makro (Schalter) leeren NEUES PROBL
Hallo Robert !
Wenn doch alles immer so einfach wäre. Danke, klappt wunderbar.
Gruß Andreas
Wenn doch alles immer so einfach wäre. Danke, klappt wunderbar.
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Ich habe aber noch ein Problem festgestellt:
Im Formular Adressen habe ich Schalter für jeden Anfangsbuchstaben eingebaut. Jetzt, bei der Übertragung der gesammelten Datensätze musste ich folgendes feststellen:
Wenn der Nachname mehrere Großbuchstaben enthält (z.b. ABCD als Nachname), so wird dieser Datensatz bei Betätigung von Schalter "A" dort angezeigt. Bei Betätigung des Schalters "B" taucht der Datensatz dort auch auf usw.
Das ist natürlich nicht so gut.
Kann man das ändern?
Gruß Andreas
Ich habe aber noch ein Problem festgestellt:
Im Formular Adressen habe ich Schalter für jeden Anfangsbuchstaben eingebaut. Jetzt, bei der Übertragung der gesammelten Datensätze musste ich folgendes feststellen:
Wenn der Nachname mehrere Großbuchstaben enthält (z.b. ABCD als Nachname), so wird dieser Datensatz bei Betätigung von Schalter "A" dort angezeigt. Bei Betätigung des Schalters "B" taucht der Datensatz dort auch auf usw.
Das ist natürlich nicht so gut.
Kann man das ändern?
Gruß Andreas
- Dateianhänge
-
- Adressen.odb
- (45.04 KiB) 139-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
Du hast in den Makros folgende Zeile für den Filter stehen:
""Nachname"" Like '%" & sErsterBuchstabe & "%'
Bei LIKE stehen die Zeichen % für alle möglichen Zeichen. Das bedeutet, dass Du so im Nachnamen alles filterst, egal an welcher Position. Wenn es wirklich nach dem ersten Buchstaben gehen soll, so muss das so sein:
""Nachname"" Like '" & sErsterBuchstabe & "%'
Gruß
Robert
Du hast in den Makros folgende Zeile für den Filter stehen:
""Nachname"" Like '%" & sErsterBuchstabe & "%'
Bei LIKE stehen die Zeichen % für alle möglichen Zeichen. Das bedeutet, dass Du so im Nachnamen alles filterst, egal an welcher Position. Wenn es wirklich nach dem ersten Buchstaben gehen soll, so muss das so sein:
""Nachname"" Like '" & sErsterBuchstabe & "%'
Gruß
Robert