🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Werte eines Unterformulars in ein Formular übertragen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
maton490
Beiträge: 11
Registriert: Do 31. Jan 2013, 12:39

Werte eines Unterformulars in ein Formular übertragen

Beitrag von maton490 » Do 31. Jan 2013, 15:26

Hallo liebe Libre-Gemeinde :-)

ich habe da ein Problem mit einem Listenfeld, und hoffe ihr könnt mir dabei helfen.

Über den Assistenten habe ich ein Tabellenkontrollfeld (rot) angelegt, welches ohne mein Einwirken alle Daten des markierten Datensatzesswahl oben anzeigt (grün).

Sobald ich dieses TKF allerdings in ein Subformular packe, wird da gar nichts mehr übertragen und ich weiß nicht, wie ich das wieder gerade biegen kann :-( Das Verpacken in ein Subformular wird benötigt, da die Daten im roten Fenster bearbeitet werden sollen, im grünen Bereich aber nur eine Auswahl stattfinden soll.

Wenn ich anstelle des TKF ein Listenfeld nehme, wird mir einfach mal gar nichts angezeigt :D

Kleineres Problem Nr.2 wäre, dass mein Suchfeld case sensitive ist und ich mit lcase nicht weiterkomme :( Aber das ist sekundär (wenn überhaupt) wichtig.

Liebe Grüße und vielen Dank!

maton
Dateianhänge
libre_1.jpg
libre_1.jpg (97.04 KiB) 10302 mal betrachtet

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von RobertG » Do 31. Jan 2013, 20:34

Hallo maton,

Dein Hauptformular muss mit dem Unterfromular verknüpft werden. Dazu musst Du Einstellungen in den Eigenschaften des Unterformulars vornehmen (Verknüpfen von - Verknüpfen nach). Du könntest z.B. die KundenID als Verknüpfungsfeld nutzen. Dann hast Du aber im Unterformular nur einen Datensatz - die Tabelle wäre überflüssig.
Eine Änderung im Unterformular wird von dem Hauptformular nicht registriert. Dazu musst Du erst im Hauptformular das Formular aktualisieren. Das Hauptformular muss dabei aber so eingestellt sein, dass es keine Änderungen vornehmen darf. Nur dann kann es auch neue Daten einlesen und nicht löschen.

Wenn Du einzelne Felder nicht zum bearbeiten zulassen willst, so ist es doch eigentlich viel sinnvoller, diese Felder separat schreibgeschützt zu definieren und das Unterformular sein zu lassen, oder?

Zur Suche: Wie suchst Du? Wie sieht die Abfrage dazu aus?

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

maton490
Beiträge: 11
Registriert: Do 31. Jan 2013, 12:39

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von maton490 » Di 5. Feb 2013, 08:24

Moin Robert,

vielen Dank für deine Antwort. Wurde leider nicht benachrichtigt oder habe es nicht mitbekommen.

Also eigentlich bräuchte ich nur eine Liste mit Kunden, deren Daten bei Auswahl eines Datensatzes oben in das Hauptformular übertragen werden. Leider bin ich der totale Noob was Base angeht und Access ist auch schon 10 Jahre her :(

Mein Problem mit den schreibgeschützten Feldern war, dass ich dann im Hauptformular auch nichts mehr eingeben konnte oder viel lustiger, der Button "Neuer Datensatz" war dann deaktiviert.

Die Suchabfrage war in einem anderen Forum geposted, diese habe ich einhfach kopiert und angepasst:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Main

   Dim oSuchFeld as variant
   Dim oDoc as variant
   Dim oForm as variant

    oDoc = ThisComponent
    oForm = oDoc.DrawPage.Forms.GetByName("MainForm").getByName("Kundenliste")
    oSuchFeld = oForm.getByName("txtSuche")
    sSuchwort1 = oSuchFeld.text

REM => dann Filter setzen
   if sSuchwort1 <> "" then 
   oForm.filter = " Vorname LIKE '%" +sSuchwort1+ "%' OR  Nachname LIKE '%" +sSuchwort1+ "%'"
   oForm.ApplyFilter=true
   else
   oForm.ApplyFilter = False
   end if 

   oForm.reload()
   
   if oSuchFeld.text = "" AND oForm.ApplyFilter then 
   msgbox("Kunde nicht gefunden")
   oForm.filter = ""
   oForm.ApplyFilter=false
   oForm.reload()

   end if    
end sub
Gruß,

ein maton

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von RobertG » Di 5. Feb 2013, 08:52

Hallo Maton,

jetzt fehlt noch die Verbindung von Hauptformulkar und Unterformular. Sieh Dir einfach einmal das Base-Handbuch dazu an, besonders das Kapitel "Formulare":
http://wiki.documentfoundation.org/imag ... re_V35.pdf

Gruß

Robert

maton490
Beiträge: 11
Registriert: Do 31. Jan 2013, 12:39

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von maton490 » Di 5. Feb 2013, 09:52

Ich glaub das geht inne Uhr, aber danke :D Ich gebe mein Bestes.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von RobertG » Di 5. Feb 2013, 17:39

Hallo Maton,

wenn Du Deine bisherigen Versuche einfach einmal als Anhang hier hoch stellst, dann kann ich mir das gerne einmal ansehen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von gogo » Mi 6. Feb 2013, 10:10

... deren Daten bei Auswahl eines Datensatzes oben in das Hauptformular übertragen werden
Das macht Dein Formular aus dem ersten Post dieses Threads nicht - das was Du da beschreibst ist Folgendes:
Die Daten Deiner Tabelle werden in Deinem Formular 2x angezeigt.
- Ein Mal im TKF (da kannst Du dann auch die "Nachbardatensätze" sehen - eh klar weil Liste)
- Das Zweite Mal als Feld in der Formular-Oberfläche (KundenID, Anrede ...)
Die Daten werden hier nicht "übertragen", sondern einfach nur "angezeigt" - Wenn Du den Kursor im TKF (grüner Pfeil links) von Datensatz 1 zu Datensatz 3 veränderst, dann wird einfach in der Formular-Oberfläche der Datensatz 3 angezeigt, weil Du dorthin 'gegangen' bist.
Das passiert deswegen, weil das TKF und die anderen Kontrollelemente sich im selben Formular-Objekt befinden.
Du hast dann das TKF in ein Unterformular verschoben, die anderen Kontrollelemente der Formular-Oberfläche aber im übergeordneten Formular-Objektes belassen - deswegen wird bei einem Datensatzwechsel im TKF nichts mehr in der restlichen Formular-Oberfläche verändert!

Weißt Du, wie Du den Formular-Navigator öffnest? (ist ein Icon in der "Formular-Entwurf"-Symbolleiste).

Die einfachste Lösung, damit die Formular-Oberfläche wieder die aktuellen Daten des TKFs anzeigt ist nämlich Folgende: ziehe die Kontrollelemente der Formular-Oberfläche im Formular-Navigator einfach vom Formular-Objekt in dem sie sich jetzt befinden in das Formular-Objekt in dem sich das TKF befindet - Fertig.
Formular-Objekte kannst Du nur im "Formular-Navigator" sehen!

Bild + Erläuterungen:
Rot eingeringelt: Icon zum Öffnen des Formularnavigators<br />Formularnavigator:<br />Links: links des &quot;SubForm&quot; befindet sich ein weisser Pfeil - das heisst: klick mich, dann zeige ich die Elemente des &quot;SubForm&quot;<br />Mitte: im &quot;SubForm&quot; befindet sich ein Kontrollelement mit dem Namen &quot;SubForm_Grid&quot; - die Elemente mit dem grünen Punkt befinden sich im &quot;MainForm&quot; - also auch das &quot;SubForm&quot; (Die Datenherkünfte (Abfrage, Tabelle etc.) von &quot;SubForm&quot; und &quot;MainForm&quot; sind aber unterschiedlich (meistens jedenfalls))<br />Rechts: Die Elemente des &quot;MainForm&quot; wurden per Drag and Drop in das &quot;SubForm&quot; gezogen - sie unterliegen jetzt der Datenherkunft des &quot;SubForm&quot;s - zeigen also die Daten des SubForms an.
Rot eingeringelt: Icon zum Öffnen des Formularnavigators
Formularnavigator:
Links: links des "SubForm" befindet sich ein weisser Pfeil - das heisst: klick mich, dann zeige ich die Elemente des "SubForm"
Mitte: im "SubForm" befindet sich ein Kontrollelement mit dem Namen "SubForm_Grid" - die Elemente mit dem grünen Punkt befinden sich im "MainForm" - also auch das "SubForm" (Die Datenherkünfte (Abfrage, Tabelle etc.) von "SubForm" und "MainForm" sind aber unterschiedlich (meistens jedenfalls))
Rechts: Die Elemente des "MainForm" wurden per Drag and Drop in das "SubForm" gezogen - sie unterliegen jetzt der Datenherkunft des "SubForm"s - zeigen also die Daten des SubForms an.
Unbenannt.jpg (50.02 KiB) 10257 mal betrachtet
Die Lage der Kontrollelemente "am Bildschirm" wird dabei NICHT verändert, denn sie sind ja als "Textfeld" etc. an der Seite, Absatz, Zeichen oder sonstwo verankert - das ist etwas verwirrend, aber mit dem "Formular-Navigator" lässt sich das schon verstehen ;)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

maton490
Beiträge: 11
Registriert: Do 31. Jan 2013, 12:39

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von maton490 » Mi 6. Feb 2013, 11:04

Darf ich die odb-Datei mal als Anhang hochladen, oder war das damit gemeint? Ich mach's einfach mal, auch wenn ich ja befürchte, dass die Formulare dann nicht mehr funktionieren :/ (s. anderes Topic *g*)

https://docs.google.com/file/d/0B2Px3Sx ... sp=sharing

Habe inzwischen drei Formulare"dateien" insgesamt, einfach zum Rumprobieren und Scheitern.

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von gogo » Mi 6. Feb 2013, 11:57

Wo ist das Problem? bei mir funktioniert alles so wie ich glaube dass es soll ;) - Beschreibe genau was Du tun willst, und was dann nicht geht.

Falls es die "Suchfunktion" sein sollte - da fehlt das Makro - in der DB gibt's keines. Es sollte aber etwa so aussehen:

Code: Alles auswählen

Sub Main(oEvent)
oEvent.source.model.parent.filter = "Nachname like '*" & oEvent.source.model.text & "*'"
oEvent.source.model.parent.reload
End Sub
Wobei diese Suche leider case sensitive ist...
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

maton490
Beiträge: 11
Registriert: Do 31. Jan 2013, 12:39

Re: Werte eines Unterformulars in ein Formular übertragen

Beitrag von maton490 » Do 7. Feb 2013, 10:18

Moin,

das Makro wird leider in Libre selbst und nicht in meiner DB gespeichert, daher fehlt das im Anhang.

In den Formularen "Kundenkartei" und "KundenkarteiTest" funktioniert die Übertragung des ausgewählten Datensatzes in das Hauptformular, jedoch nicht in dem Formular "Stammdaten". Ich hätte eigentlich gern rechts eine Liste, in der nur ein Feld ist (zusammengefasst aus Anrede,Vorname,Zuname). Wenn ich dies anklicke, sollten die Daten in das Hauptformular übertragen werden :(

Ich hoffe meine Problematik ist verständlich.

Liebe Grüße!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten