PDA

Vollständige Version anzeigen : Dynamisches Formular! Ja oder Nein?


Flubber
24.10.2003, 14:41
Hallo zusammen!

Ich möchte dynamische Textfelder erstellen. Also ich habe in einer Datenbank mehrere Datensätze, wo sich auch ständig die Anzahl der Datensätze ändert. Im Formular sollen soviel Textfelder angezeigt werden, wie es Datensätze gibt. Das Forumlar existiert bereits. Nur der umgang mit CreateControl klappt nicht.

Hier der Quelltext:

Sub Textfeld_erstellen()
Dim ctlText As Control
Dim f_FormularXY As Form_f_FormularXY

Set ctlText = CreateControl(f_FormularXY, acTextBox, acDetail, , TextNameXY,10,10,10,10)

End Sub


Danke für eure Hilfe.

Gruss
Flubber

kama
24.10.2003, 14:47
hallo
Ein Endlosformular wäre doch die richtige Lösung, oder?
Dann hat jedes datensatz sein was Eigenes (ein Feld :D )

Flubber
24.10.2003, 14:51
Und wie mach ich das?

kama
24.10.2003, 14:55
Hallo
Entwurfsansicht des Formulars
Eigenschaften
Format
Standardansicht=Endlosformular

Flubber
24.10.2003, 15:01
Ist zwar einfacher, aber so möchte ich das nicht haben.

Möchte halt das Sub Textfeld_erstellen in eine for-Schleife packen, so dass soviel Textfelder untereinander erstellt werden, wie es Datensätze gibt.

Flubber
24.10.2003, 15:16
Kann es sein, das sich mit dem Befehl die Entwurfansicht öffnet?

kama
24.10.2003, 15:37
hallo
Wenn du endlosformular gewählt hast nicht.
Das leistet aber auch genau was du willst
Nehmen wir mal an würdest wirklich zur Laufzeit 50 Felder erstellen deren Steuerelementinhalt feldxy wäre. Du würdest 50 mal den selben Felinhalt sehen.

Flubber
27.10.2003, 10:48
Hallo zusammen!

Ich habe ein Formular auf dem, während des Ablaufs, neue Textfelder erstellt werden sollen. Je nachdem wie viel Datensätze sich in einer bestimmten Tabelle befinden. Dazu habe ich mir den Befehl "CreateControl" ausgesucht. Doch jedesmal sagt mir Access, ich sollte meine Entwurfansicht öffnen. Aber wenn jemand später die Oberflächen(Formulare) benutzt, dann soll er ja nicht noch irgendwelche Änderungen in der Entwurfansicht machen. Und vorgefertigte Textfelder, die ich immer nur ein-/aus-blende, möchte ich nicht.

Vielleicht hat ja noch jemand ne Idee.

Danke
Gruß
Bastian

Nouba
27.10.2003, 11:07
Hallo,

das Hinzufügen oder Löschen von Steuerelementen in Formularen geht nur über die Entwurfsansicht. Dabei spielt es keine Rolle, ob manuell, per Kode oder ein Assistent dafür verwendet wird. Bei einer MDE würde dieses Verfahren versagen.

Wenn man etwas über das Datenmodell und seine Inhalte wüßte, könnten vielleicht noch andere Vorschläge kommen.

kama
27.10.2003, 11:16
Hallo

Warum machst nicht hier weiter.

http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=106994

Ein Tread nicht zu beantworten und zum selben Thema einen neuen zu eröffnen ist schlicht und ergreifend unhöflich! :mad:



Moderatorenanmerkung: Link zum anderen Thema ist durch das Zusammenlegen (s.u.) leider ungültig geworden.

Flubber
27.10.2003, 11:18
Also! Es war einmal....

Ok, ich erkläre es mal kurz. Mache gerade ne Ausbildung als Fachinformatiker AE und soll mich mit Access vertraut machen.

Dazu habe ich bzw. wir (sind nämlich zu zweit) folgendes Beispiel entworfen.

Du bist der Reustarant Chef und wählst täglich ein Hauptgericht aus. Bei jedem Hauptgericht siehst du das Rezept(das ist das Formular, um das es sich handelt) detailiert, sprich du siehst eine genaue Aufzählung der Zutaten. Je nachdem wieviel Zutaten es gibt, sollen Textfelder angezeigt angezeigt werden.

Dafür sollten die Textfelder jedesmal erstellt und bei beenden des Formulars wieder gelöscht werden. Unmd eigentlich wollte ich nicht mit ein-/ausblenden arbeiten.

jadatcoder
27.10.2003, 11:31
Hallo,

ich könnte mir eine Lösung mit Master- und Detailtabelle (1:n Beziehung) vorstellen:

Mastertabelle
lng_Rezept_ID (Autowert)
str_Rezept_Bezeichnung (Rezeptbezeichnung)

Detailtabelle
lng_Detail_id (Autowert)
lng_zu_Rezept (Fremdschlüssel aus tbl_rezepte)
str_Zutat (Bezeichnung der Zutat)

Über ein HF mit UF kannst Du dann jederzeit die Rezepte / Zutaten darstellen.

Besser wäre noch eine Lösung mit einer n:m Tabelle,
da immer wiederkeherende Zutaten mehrfach in Rezepten auftauchen können. Das vermeidet Redundanzen.

Arne Dieckmann
27.10.2003, 11:58
Hallo Flubber,

bitte erstelle immer nur ein Thema/Thread pro Frage.
S. dazu auch unsere Netiquette (http://www.ms-office-forum.net/forum/netiquette.php).

Themen wurden zusammengeführt.


Kleiner Tipp: Um Dein Problem im Forum erneut ins Blickfeld zu bringen, kannst Du eine Antwort (z.B. mit dem Inhalt "on top") in dem alten Thema erstellen. Durch die chronologische Sortierung anhand des Beitragsdatums wandert der Thread damit -zumindest für eine gewisse Zeit- wieder auf die 1. Seite.*

Das alte Thema findest Du -sofern Du registrierter Benutzer dieses Forums bist und den Thread nicht als Gast geführt hast- unter Deinen abonnierten Themen im Bereich "mein MOF" bzw. mit Hilfe des Lupen-Symbols neben Deinem Benutzernamen. Beachte bei der ersten Variante bitte die Einstellung "Zeige Themen", wo Du den gewünschten Zeitraum auswählen kannst.


*=Bitte mache aber von dieser Möglichkeit keinen exzessiven Gebrauch. Danke!

Kevin
27.10.2003, 13:09
Bei CreateControl gibt es auch Grenzen.
Hatte mal in Acc97 nen Parser mit Kartenzeichung gemacht.
Wenn Du Karte x mal aufgerufen wurde und in dem FRM immer und immer wieder neue Controls zugeführt (und auch wieder gelöscht) irgendwann gab es (keine Ahnung mehr bei wieviel) nen Fehler, das zuviele Controls für das FRM generiert wurden (obwohl wieder gelöscht wurden sie dennoch irgendwo gespeichert).
Also vergiss besser die CreateControl Methode, zumindest mit 97.

Gruß Kevin