Textfeld dynamisch erstellen

Liebe ExpertInnen,
ich habe mal wieder ein Problem mit VBA in Access 2003.

Ich möchte in einem Formular einen knopf haben ("+ knopf"), der wenn man auf ihn klickt ein Textfeld in Formular erzeugt.

Ich möchte so beliebig viele Textfelder erzeugen können.

Deshalb kann ich es nicht mit der Sichtbarkeit austricksen.

ich Habe diesen Einfachen Code probiert:

------------Code-----------------
Private Sub plus_Click()

Set txtbox = CreateControl(Me.Name, acTextBox, acDetail, , , 10, 20, 20, 10)

End Sub

Beim Ausführen bekomme ich einen Laufzeitfehler 2147: „Damit Sie Steuerelemente erstellen oder löschen können, müssen Sie sich in der Entwurfsansicht befinden.“

Ich habe schon viele Sachen probiert, wie „AllowDesignChanges“ auf True zu setzten. Oder DoCmd.OpenForm (…, acDesign)
Aber bekomme immer wieder Fehler.

Hat jemand schon mal so was gemacht?
kann mir bitte jemand helfen?

Ich bedanke mich im Voraus dafür.

Viele Grüße.

Willy

Hallo,

der Code kann nicht ablaufen, wenn das Form selber im Entwurfsmodus geöffnet ist. Benutze also ein zweites Form, mit dem Du die Steuerelemente im ersten Form erzeugen willst.

z. B. (im Formular2)

Private Sub plus_Click()
Dim otxtBox As Object
DoCmd.OpenForm „Formular1“, acDesign
Set otxtBox = CreateControl(„Formular1“, acTextBox, acDetail, , , 100, 200, 2000, 1000)
MsgBox otxtBox.Name
DoCmd.Restore
DoCmd.Close acForm, „Formular1“
End Sub

Warum willst Du überhaupt dynamisch Controls erzeugen?

Viele Grüße vom Bodensee
Franz, DF6GL

Moin Moin,

Ich möchte in einem Formular einen knopf haben ("+ knopf"),
der wenn man auf ihn klickt ein Textfeld in Formular erzeugt.

Was ist die/der eigentliche Vorgabe/Grund, warum du versuchst, das soooo umzusetzen? Ich vermute, das „Problem“ kann man anders lösen.

Ich möchte so beliebig viele Textfelder erzeugen können.

nö, das geht nicht, da Access nur eine bestimme Anzahl von Objekten auf einem Formular zulässt.

Deshalb kann ich es nicht mit der Sichtbarkeit austricksen.

nö, das wäre ja ich ne echte Fleißarbeit.

Hat jemand schon mal so was gemacht?

also ich noch nicht, da ja die Daten auch irgendwo gespeichert werden müssen ist das Ansinnen sooo nicht sinnvoll.

Du kannst INPUT als „dynamisches“ Textfeld nutzen, auch wenn es über dem Formular angezeigt wird.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Franz,

erstmal vielen Dank für deine Antwort.

Dein Code funktioniert wunderbar. Leider muss ich noch herausfinden, wie ich die richtige Formatierung für die erzeugten Textfelder erwische. (Die Vorgaben für Breite, Links, usw… habe ich in cm. Die eingaben in „CreateControl“ sind es jedoch nicht, oder? )

Ich versuche noch mein Problem zu schildern:

Ich möchte ein Formular haben, um gewisse Bedingungen, die ein Kunde aufstellen kann, zu erfassen.

Beispielweise, wenn der Kunde sagt:

  • Der Apfel muss billig sein und wenn es geht aus Europa kommen.

Möchte ich zwei Textfelder haben, wo man dann eintragen kann:

Bedingung | Kommentar

Billig…| Apfel aus Europa, wenn möglich

Der Punkt ist, die verschiedenen Szenarien, sind schwer vorhersehbar und zu dem Apfel könnte noch Banane kommen.

Dafür wäre es gut zwei neue Textfelder zu erstellen, weil alle diese Eingaben danach in einer Datenbank gespeichert werden.

Eine Liste mit allen möglichen Produkten wäre auch sehr umständlich, da es über 1000 mögliche Produkte gibt.

Ich habe ein Einfaches Beispiel ausgewählt, um das Problem zu schildern.

Vielleicht gibt es eine elegantere Lösung. Ich wäre über jede Hilfe sehr verbunden.

Viele Grüße.

Hallo Wolfgang,

danke für deine Antwort.

Ich möchte in einem Formular einen knopf haben ("+ knopf"),
der wenn man auf ihn klickt ein Textfeld in Formular erzeugt.

Was ist die/der eigentliche Vorgabe/Grund, warum du versuchst,
das soooo umzusetzen? Ich vermute, das „Problem“ kann man
anders lösen.

Ich glaube auch, dass man das Problem anders lösen kann, aber momentan fällt mir nicht viel ein.
Ausgangpunkt ist: Eingaben von Kunden zu erfassen.
Z.b aus einer Liste von über 1000 Produkte, möchte der Kunde nur gewisse Produkte haben.
Zu diesen gibt er gewisse Bedingungen und Wünsche.
Momentan erfasse ich dies alles in Textfelder, nach dem Schema:

Kunde | Bedingung | Kommentar

Ich möchte, dass der Kunde für jedes neue Produkt, die Chance bekommt, seine Wünsche und Bedingungen einzugeben.
Danach wird alles in einer Datenbank gespeichert.

Du kannst INPUT als „dynamisches“ Textfeld nutzen, auch wenn
es über dem Formular angezeigt wird.

Wie meinst du das?

Viele Grüße.

Willy

Kehrtwende
Moin, einstein,

dazu braucht’s keine „dynamischen“ Felder, sondern eine Tabelle

**Bedingung** (<u>Id</u>, FS\_Kunde, FS\_Produkt, Bedingungstext)

(FS_x sind Fremdschlüssel, mit denen die Beziehung zur jeweiligen Tabelle dargestellt wird)

Damit kann der Kunde Abertausende Bedingungen zu jedem Produkt speichern.

Wenn die Tabelle mal vorliegt, kannst Du Dir Gedanken machen, wie daraus Abfragen formuliert werden können. Viel Spaß!

Gruß Ralf

Hallo Ralf,
Danke für die Antwort.

dazu braucht’s keine „dynamischen“ Felder, sondern eine
Tabelle

Bedingung (Id, FS_Kunde, FS_Produkt, Bedingungstext)

(FS_x sind Fremdschlüssel, mit denen die Beziehung zur
jeweiligen Tabelle dargestellt wird)

Damit kann der Kunde Abertausende Bedingungen zu jedem Produkt
speichern.

Ich weiß nicht, ob ich es verstanden habe.
Du meinst, ich sollte erstmal eine Tabelle (oder mehrere Tabellen?)für die Produkte, Bedingungen und Bedingungstexte erstellen?

Wenn ja, wie wird die Eingabe vom Kunde erfolgen?

Müsste man bei jeder Kundeneingaben, die Tabelle selbst pflegen und die Ergebnisse in Formular ausgeben (das ist eigentlich unerwünscht)? Oder wie hast du dir das gedacht?

Sorry, wenn meine Fragen komisch erscheinen. Es liegt sicherlich an dem Montag und dem Wetter :smile:.

LG
Willy

Hallo,

Danke für die Antwort.

dazu braucht’s keine „dynamischen“ Felder, sondern eine
Tabelle

Bedingung (Id, FS_Kunde, FS_Produkt, Bedingungstext)

(FS_x sind Fremdschlüssel, mit denen die Beziehung zur
jeweiligen Tabelle dargestellt wird)

Damit kann der Kunde Abertausende Bedingungen zu jedem Produkt
speichern.

Ich weiß nicht, ob ich es verstanden habe.
Du meinst, ich sollte erstmal eine Tabelle (oder mehrere
Tabellen?)für die Produkte, Bedingungen und Bedingungstexte
erstellen?

EINE Tabelle mit allen überhaupt möglichen Bedingungen und den dazu gehörenden „harten“ Kriteriumswerten.

DU(!) musst diese Tabelle pflegen, der KUNDE wählt ein für ihn akt. gültige Frage aus und startet damit eine Abfrage, die die dazu passenden Datensätze (Artikel…) liefert.

Eine solche Art der „Fuzzy“-Abfrage, wie Du sie Dir vorstellst (Kunde gibt irgendeinen mehr oder weniger sinnvollen/aussagefähigen Text an und Access soll ihn dann verstehen (eine Abfrage ausführen), gibt es in Access nicht. Vielleicht ist ja eine andere Art von DB-System (à la Google-Suche) besser für solche „Abfragen“ geeignet… :wink:

Z. B ist eine Suche nach „billig“ , bzw. „möglichst billig“ unmöglich, wenn diese beiden Wörter nicht irgendwo in einem DS der Tabelle auftauchen. Solche subjektiven Angaben sind mathematisch(!, was ja immer bei Abfragen mit Kriterienangabe passiert) nicht zu fassen.

Wenn ja, wie wird die Eingabe vom Kunde erfolgen?

Der wählt nur aus den vorgegebenen Fragen (Bedingungskombinationen) eine aus und läßt sie beantworten(–>startet eine Routine, die aus den „harten“ Kriterien eine vernünftige Abfrage erstellt und ausführt).

Müsste man bei jeder Kundeneingaben, die Tabelle selbst
pflegen und die Ergebnisse in Formular ausgeben (das ist
eigentlich unerwünscht)? Oder wie hast du dir das gedacht?

Dem Kunde wird ein Formular präsentiert, mit dem er o. g. Auswahl treffen kann.

Sorry, wenn meine Fragen komisch erscheinen. Es liegt
sicherlich an dem Montag und dem Wetter :smile:.

Naja, lassen wir halt mal so stehen… :wink:

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz, Hallo Ralf,
Vielen Dank für Eure Hilfe.

Ich werde mir das noch mal alles anschauen und mir einen anderen Weg ausdenken.

@Franz,
ich kann mir leider nicht eine Liste von unter anderem Bedingungen/ Fragen erstellen.
Das Einzige, was ich habe, ist die Liste der Produkte.
Das Formular bekommt der Kunde (bzw. der Mitarbeiter, die mit dem Kunde in Kontakt ist)
Die erfassten Daten des Formulars müssen in die Datenbank gespeichert werden.
Diese erfasste Daten kann ich in keiner Art beeinflussen.
Die Wünsche der Kunde werden genau eingetragen, wie er sich das ausdenkt.
Das einzige, was von unserer Seite kommt ist der Name der Produkte, die wir anbieten.

@Ralf,
über Excel ist es schlecht, da dieses Formular ein Unterformular von einem mehrseitigen Formular sein wird (also ein Reiter vom gesamten Formular).

Den Weg, den ich (bzw. die erfasste Daten) laut Vorgabe des Chefs folgen muss (bzw. müssen): Kunde wählt ein Produkt oder „beliebig“ viele Produkte aus --> Bedingung + Kommentare werden eingetragen --> Das ganze (Kunde + Produkt + Bedingungen + Kommentare) werden gespeichert.
Hintergrund ist das alles wieder irgendwann mal als Doc-Datei automatisch, für diverse Unterschriften, zu generieren.

Wie gesagt, es handelt sich um ein mehrseitiges Formular.

Ein schöner Tag wünsche ich euch.
p.s Falls ihr trotzdem, weitere Vorschläge habt, nehme ich sie sehr gerne entgegen :smile:.

LG
Willy

Drama in 7 Akten
Hi Willy,

diese Beschreibung hätte viel früher kommen müssen. Ich fasse mal zusammen:

  • Chef schreit: Will Datenbank haben!

  • Keiner hat Ahnung

  • Darf nichts kosten, schon gar keine Schulung

  • Daten erfassen, egal wie

  • Irgendwann großes Staunen, weil keiner weiß, was mit der Müllkippe geschehen soll

  • Suche nach Verantwortlichen

Hintergrund ist das alles wieder irgendwann mal als Doc-Datei
automatisch, für diverse Unterschriften, zu generieren.

Dann sammelt das Zeug doch in Word-Dateien, organisieren lassen die sich in Verzeichnissen, und druckt sie als PDFs aus.

Ich kann absolut nicht erkennen, wozu hier eine Datenbank nötig sein soll - Datenbanken werden strukturiert, um in ihnen zu recherchieren. Als Zwischenlager für Wunschzettel jedenfalls der absolute Overkill.

Wie Du jetzt dem Scheffe beibringst, dass es sinnlos ist, ein Pferd von hinten aufzuzäumen, weiß ich leider auch nicht.

Gruß Ralf

Hallo,

Ich werde mir das noch mal alles anschauen und mir einen
anderen Weg ausdenken.

Vermutlich ist das der einzige Weg…

@Franz,
ich kann mir leider nicht eine Liste von unter anderem
Bedingungen/ Fragen erstellen.

ok, gehen wir mal davon aus.

Das Einzige, was ich habe, ist die Liste der Produkte.

zwar Wenig, aber besser als gar nichts… :wink:

Das Formular bekommt der Kunde (bzw. der Mitarbeiter, die mit
dem Kunde in Kontakt ist)
Die erfassten Daten des Formulars müssen in die Datenbank
gespeichert werden.

Wenn es nur um die Erfassung dieses Kundenwünsche geht, dann reicht eine Tabelle („tblKundenwuensche“) mit solchen Feldern:

KWID
KW_KundID
KW_ArtikelID
KW_Wunsch (Memofeld)
KW_Datum

Diese erfasste Daten kann ich in keiner Art beeinflussen.
Die Wünsche der Kunde werden genau eingetragen, wie er sich
das ausdenkt.

Ok

Das einzige, was von unserer Seite kommt ist der Name der
Produkte, die wir anbieten.

WANN kommen die? VOR/BEI der Abgabe des Formulars an den Kunden, oder NACH der Auswertung seiner erfassten Wuensche?

@Ralf,
über Excel ist es schlecht, da dieses Formular ein
Unterformular von einem mehrseitigen Formular sein wird (also
ein Reiter vom gesamten Formular).

Also, was „werden wird“, ist im Moment noch nicht abzusehen…

Den Weg, den ich (bzw. die erfasste Daten) laut Vorgabe des
Chefs folgen muss (bzw. müssen): Kunde wählt ein Produkt oder
„beliebig“ viele Produkte aus

Woraus? Wie o. g., muss zu diesem Zeitpunkt der Kunde eine Artikelliste (mit ArtikelNr, bzw. ArtikelID) besitzen.

–> Bedingung + Kommentare
werden eingetragen --> Das ganze (Kunde + Produkt +
Bedingungen + Kommentare) werden gespeichert.

Hintergrund ist das alles wieder irgendwann mal als Doc-Datei
automatisch, für diverse Unterschriften, zu generieren.

Zwischen der o. g. Erfassung der Kundenwünsche und dieser Doc-Generierung muss ja irgendeine Tätigkeit von Euerer Seite liegen.
Um was handelt es sich dabei, bzw. welche Infos und für wen stehen in diesem Dokument?

Wie gesagt, es handelt sich um ein mehrseitiges Formular.

Access-Formular oder ein (Word-) Ausdruck?

Ein schöner Tag wünsche ich euch.
p.s Falls ihr trotzdem, weitere Vorschläge habt, nehme ich sie
sehr gerne entgegen :smile:.

Ich glaube, Du musst erst mal deutlich machen und klar legen, was überhaupt mit der Db gemacht werden soll und welcher Geschäftsprozess damit abzudecken ist. Eine DB hilft nur, den Workflow einer Geschäftstätigkeit zu „verwalten“. Wenn aber der Workflow nicht auf festen Füßen steht (bekannt ist), dann wird es halt schwierig, ihn genau als Datenbankanwendung umzusetzen.

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz, Hallo Ralf,
tut mir leid, dass ich erst jetzt antworte.

diese Beschreibung hätte viel früher kommen müssen. Ich fasse
mal zusammen:

  • Chef schreit: Will Datenbank haben!

  • Keiner hat Ahnung

  • Darf nichts kosten, schon gar keine Schulung

  • Daten erfassen, egal wie

  • Irgendwann großes Staunen, weil keiner weiß, was mit der
    Müllkippe geschehen soll

  • Suche nach Verantwortlichen

So ungefähr ist das :smile:.

Ok mal ernsthaft.
Ich finde, dass die Lösung mit der Datenbank schon nicht schlecht ist.

Um auf die Fragen von Franz zu beantworten.

Der Kunde wählt natürlich erstmal aus, was er kaufen möchte. Dann kommen extra Wünsche, die wir dann erfassen.
Du sollst dir das so vorstellen, wie ein Kunde, der ein Rennrad kauft und dann einen anderen Sattel haben möchte. Oder einen hohen Sitz, usw…
Der Verkäufer kann nicht vorhersehen, was für Änderungswünsche ein Kunde haben könnte.
Verstehst du?

So um allgemein, das ganze zu erklären. Vielleicht hätte ich es von Anfang an machen sollen. (Ich wollte nicht nur ein Buch schreiben, weil ich dachte, die Antwort wäre trivial, mein Fehler).

Also momentan ist es so dass:

  • Ein Kunde möchte irgendetwas kaufen (Produkt).
  • Dieses Produkt setzt sich auf mehrere Komponente zusammen, die wir anbieten.
    Unter anderem aus der Elektronik-Abteilung, Informatik-Abteilung, usw …
  • Der Kunde äußert wünsche, wie das sein soll.
  • Wir erfassen sie und bewerten die Wünsche.
  • Falls diese Wünsche Möglich sind, bekommt er ein Angebot, das er unterschreiben wird. (Natürlich mit wünschen, Risiken und alle Mögliche Sachen von jeder Abteilung gelistet)
  • Diese Unterlagen bekommt er in Word.

Momentan für die Erfassung der Daten sieht es so aus:

  • Der Kunde hat eine Liste in 3 Excel-Dateien von den ganzen (Komponenten und es sind sehr sehr viele mit Beschreibung und so).

  • Wenn er ausgewählt hat. wird seine Auswahl in verschiedenen Word-Dateien kopiert. Er äußert auch seine finale Bedingungen und Kommentaren dazu.

Informatik Abteilung bekommt seine Word-Datei, Elektronik Abteilung auch, usw…

  • Die Informatiker je nach dem Produkt schreiben, was für Risiken, wie Teuer, wann Auslieferung erfolgen kann usw …
    Gleich für die Elektrotechniker …

Die einzelnen Auswertungen von den Abteilungen werden als Word-Datei zusammengefasst und zu dem Kundenbetreuer (Bei uns) zugeschickt (könnte mehr als 10 Dicke Word Dateien werden) und der muss darein rumsuchen und zum Beispiel für die Auslieferung das spätere Datum von allen die vorgeschlagenen auswählen.
Gesamter Preis berechnen, Risiko abschätzen, weil wenn die Informatiker sagen das Risiko ist auf Level 1 und die Elektrotechniker auf Level 2, dann hat das fertige Produkt Level 2 Risiko.

Wenn das alles fertig ist. muss das ganze als eine Light Version (Word-Datei) zusammengefasst werden und zu dem Kunde zugeschickt werden.
Wenn er unterschrieben hat, schickt er das zurück und die Produktion kann anfangen.

Warum wollen wir eine Datenbank:

  • weil für jede Komponente, kennt schon jede Abteilung Risiken, Preis, usw.

  • Mit dem Formular ( Access-Formular) könnte der Kundenbetreuer eine Komponente auswählen und per VBA würde die Risiken und so automatisch generiert werden. (Dafür werden Produkte mit Eigenschaften in einer Datenbank gespeichert)

Wie stellt sich mein Chef das vor.

Der Kunde wählt die Komponente aus, die er braucht und schickt uns das.
Der Kundenbetreuer öffnet das Formular und wählt die Komponente aus einer Liste aus. Dann für jede Auswahl erscheint automatisch Sachen wie Risiken und so in dafür vorgesehene Textfelder.

Momentan habe ich eine Datenbank mit den Komponenten. Im Formular werden diese Komponenten über eine Combobox ausgewählt und mit einem „>“ Knopf in die Liste hinzugefügt. (d.h beliebig viele Produkte können in die Liste)

Das ist übrigens eine Seite des Formular.
Eine andere Seite hat das Auslieferungsdatum. Für jede Produkt wird dieses Datum in der Datenbank auch eingetragen und draus automatisch gelesen.
Mit VBA wird das „größte“ Datum ausgewählt und als gesamte Auslieferungsdatum angezeigt.

Also ich weiß nicht, ob ich ein gutes Bild von der Situation malen konnte.
Momentan habe ich ungefähr 10 Seiten vom Formular mit den verschiedenen Daten die erfasst oder erzeugt werden.
Mein einziges Problem ist bei dieser Seite, wo die Wünsche der Kunde für das gesamte Produkt erfasst werden muss (NB: mehrere Komponente aber ein einziges Produkt).

Zusammengefasst:

Es ist so als ob, der Kunde sagt. Ich möchte eine fliegende Auto.
wir produzieren Flügeln, Rädern usw.
wir wissen mit Flügeln wird das Risiko zum Unfall größer.
Für das fliegende Auto muss der Kunde sagen können:
Ich hätte dazu MP3 Player, Schiebedach, usw … das muss erfasst sein.

Tut mir leid, wenn alles wieder so lang ist. Ich habe mich so kurz gefasst wie ich konnte. :smile:

Viele Grüße.

Willy

Hallo Willy,

diese Beschreibung hätte viel früher kommen müssen.

ja…

Der Kunde wählt natürlich erstmal aus, was er kaufen möchte.
Dann kommen extra Wünsche, die wir dann erfassen.
Du sollst dir das so vorstellen, wie ein Kunde, der ein
Rennrad kauft und dann einen anderen Sattel haben möchte. Oder
einen hohen Sitz, usw…
Der Verkäufer kann nicht vorhersehen, was für Änderungswünsche
ein Kunde haben könnte.
Verstehst du?

Klar doch… :wink:

Also momentan ist es so dass:

  • Ein Kunde möchte irgendetwas kaufen (Produkt).
  • Dieses Produkt setzt sich auf mehrere Komponente zusammen,
    die wir anbieten.
    Unter anderem aus der Elektronik-Abteilung,
    Informatik-Abteilung, usw …
  • Der Kunde äußert wünsche, wie das sein soll.
  • Wir erfassen sie und bewerten die Wünsche.

d. h. er kann ein EndProdukt aus Einzelprodukten selber zusammenstellen. Wenn es ein Einzelprodukt noch nicht gibt (das beinhaltet auch ein solche, die es schon gibt, aber geändert werden müssen), dann tritt Euere „Entwicklung“ in Aktion und setzt ein neues Einzelprodukt zusammen.

  • Falls diese Wünsche Möglich sind, bekommt er ein Angebot,
    das er unterschreiben wird.

Geschieht das, bevor das neue Einzelprodukt bearbeitet wird?

(Natürlich mit wünschen, Risiken
und alle Mögliche Sachen von jeder Abteilung gelistet)

  • Diese Unterlagen bekommt er in Word.

Es ist zunächst egal, auf welchem „Datenträger“ die Daten ausgegeben werden. Hier ist erst mal der Workflow (Abfolge der Änderunge/Erzeugung von Daten in Abhängigigkeit der Geschäftsprozesse) zu klären: Wer macht mit welchen Daten was, wann und wo…

Momentan für die Erfassung der Daten sieht es so aus:

  • Der Kunde hat eine Liste in 3 Excel-Dateien von den ganzen
    (Komponenten und es sind sehr sehr viele mit Beschreibung und
    so).

Die Anzahl der Daten ist unerheblich (bis zu gewissen Grenzen). Wesentlich ist die genaue Definiton und Kennzeichnung der Komponeneten(Artikel?)

  • Wenn er ausgewählt hat. wird seine Auswahl in verschiedenen
    Word-Dateien kopiert. Er äußert auch seine finale Bedingungen
    und Kommentaren dazu.

Word-Dateien können hier vergessen werden. Aber versteh ich es richtig, dass das Angebeot an den Kunden mehrere Alternativen zu seinen Wünschen enthält? Wenn ja, muss das während der Datenanalyse, die nach der Festlegung/Klärung des Geschäftsablaufes (der Geschäftsprozesse) berücksichtigt werden.

Informatik Abteilung bekommt seine Word-Datei, Elektronik
Abteilung auch, usw…

Hier ist zu fragen, ob zu/für diesen Zeitpunkt die DB verwendet werden soll (wenn ja, für was?) oder diese Abteilungen lediglich ein „Projekt“ abarbeiten, das als Ergebnis lediglich zu erzeugende, bzw. zu ändernde Komponenten abwirft.

  • Die Informatiker je nach dem Produkt schreiben, was für
    Risiken, wie Teuer, wann Auslieferung erfolgen kann usw …
    Gleich für die Elektrotechniker …

OK, so en Produkt kann ja als „Neue Komponente“ in die DB eingepflegt werden. Ob das nun die Entwickler selber tun müssen, oder ein „Arbeitsvorbereiter“ besser dafür zuständig wäre, liegt an Eueren Geschäftsmodell.

Die einzelnen Auswertungen von den Abteilungen werden als
Word-Datei zusammengefasst und zu dem Kundenbetreuer (Bei uns)
zugeschickt (könnte mehr als 10 Dicke Word Dateien werden) und
der muss darein rumsuchen und zum Beispiel für die
Auslieferung das spätere Datum von allen die vorgeschlagenen
auswählen.

Das hat m. E. nichts mit der DB zu tun, sondern unterliegt Eueren geschäftlichen Tätigkeiten. Wenn es darum geht, die in der Db erfassten Daten zu kombinieren, wären allerdings Word-Doc hier fehl ab Platz.

Gesamter Preis berechnen, Risiko abschätzen, weil wenn die
Informatiker sagen das Risiko ist auf Level 1 und die
Elektrotechniker auf Level 2, dann hat das fertige Produkt
Level 2 Risiko.

Diese Auswertung kann natürlich von der Db erledigt werden, wenn Die Daten aus den o . g. Word-Docs

Wenn das alles fertig ist. muss das ganze als eine Light
Version (Word-Datei) zusammengefasst werden und zu dem Kunde
zugeschickt werden.

Wie o. g. es ist letztendlich egal, wie die von der DB (und den Usern) verarbeitetetn DB-Daten ausgegeben werden. Ich sehe in dieser Kladde ein „Kundenangebot“

Wenn er unterschrieben hat, schickt er das zurück und die
Produktion kann anfangen.

Gut, das hoffen wir dann mal…

Warum wollen wir eine Datenbank:

  • weil für jede Komponente, kennt schon jede Abteilung
    Risiken, Preis, usw.

ok

  • Mit dem Formular ( Access-Formular) könnte der
    Kundenbetreuer eine Komponente auswählen und per VBA würde die
    Risiken und so automatisch generiert werden. (Dafür werden
    Produkte mit Eigenschaften in einer Datenbank gespeichert)

Risiken automatisch generieren: Wenn es für die Berechnung des Risikos einen Algorithmus gibt… ja.

Wie stellt sich mein Chef das vor.

Der Kunde wählt die Komponente

aus der Excel-Liste

aus, die er braucht und schickt
uns das.

Der Kundenbetreuer öffnet das

(Datenbank-)Formular

und wählt die
Komponente aus einer Liste aus. Dann für jede Auswahl
erscheint automatisch Sachen wie Risiken und so in dafür
vorgesehene Textfelder.

ok, wenn diese Daten (Artikel, Komponenten) schon existieren

Momentan habe ich eine Datenbank mit den Komponenten. Im
Formular werden diese Komponenten über eine Combobox
ausgewählt und mit einem „>“ Knopf in die Liste hinzugefügt.
(d.h beliebig viele Produkte können in die Liste)

ok, aber nur als Liste eher zu sehr „unterdimenssioniert“. Diese Liste sollte als Tabelle „KundenAngebot“ einschliesslich aller dazugehörenden verknüpften Daten aus anderen Tabellen erscheinen.

Das ist übrigens eine Seite des Formular.

Vergiss erst mal Formulare… Die kommen erst zum Zuge, bzw. werden erstellt, wenn die (unverzichtbare!) Basis einer DB gebaut ist, nämlich die normaliesierte Tabellenstruktur und die Verknüpfugen (Beziehungen).

Eine andere Seite hat das Auslieferungsdatum. Für jede Produkt
wird dieses Datum in der Datenbank auch eingetragen und draus
automatisch gelesen.

Mit VBA wird das „größte“ Datum ausgewählt und als gesamte
Auslieferungsdatum angezeigt.

Wie auch immer, solche Sachen sind erst nach dem Erstellen der gesamten(!) Tabellen zu erledigen (—> Formulare /Berichte erst NACH dem Tabellenaufbau angehen.)

Also ich weiß nicht, ob ich ein gutes Bild von der Situation
malen konnte.
Momentan habe ich ungefähr 10 Seiten vom Formular mit den
verschiedenen Daten die erfasst oder erzeugt werden.

Vergiss das Ding, siehe oben. Du hast noch nicht den Hauch eines Tabellenkonzeptes.

Mein einziges Problem ist bei dieser Seite, wo die Wünsche der
Kunde für das gesamte Produkt erfasst werden muss (NB: mehrere
Komponente aber ein einziges Produkt).

Hier spielt schon wieder der Tabelleaufbau hinein: Es sind weitere Tabellen in bestimmter Beziehung zueinander nötig.

Zusammengefasst:

Es ist so als ob, der Kunde sagt. Ich möchte eine fliegende
Auto.
wir produzieren Flügeln, Rädern usw.
wir wissen mit Flügeln wird das Risiko zum Unfall größer.
Für das fliegende Auto muss der Kunde sagen können:
Ich hätte dazu MP3 Player, Schiebedach, usw … das muss
erfasst sein.

Tut mir leid, wenn alles wieder so lang ist. Ich habe mich so
kurz gefasst wie ich konnte. :smile:

Na, wie Du siehst, ist das Ganze immer noch nicht detailliert genug. Ich würde Dir raten, zunächst GANZ GENAU den „Datenverkehr“ im Einzelnen in Euerem Geschäft zu untersuchen, die Geschäftsprozesse klar zu legen, am Besten auf Papier, und die Daten nach Zusammengehörigkeit zu ordnen . Das geschieht am Besten auf einem Stück Papier, ohne Gedanken an eine DB…

Aber das gesamte DB-Projekt ist auch nicht ohne und hoffentlich weißt Du, was Du Dir da vorgenommen hast… Ich bezweifle ob alle Fragen und Probleme (d. H. Systemanalyse, Datenanalyse, Datenbeziehungen, Tabellenaufbau, Normalisierung, etc… hier im Forum beantwortet bzw. gelöst werden können…

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz,
du hast schon trotz meiner undetaillierten Beschreibung fast alles verstanden, Respekt :smile:.
Du hast schon recht, wenn du sagst, dass ich die verschiedenen Abläufe in der Firma erstmal skizzieren sollte.
Aber wenn der Druck von oben kommt?
Ich muss erstmal Ergebnisse liefern ( am besten sichtbare).

Wenn es vorbei ist, ist der größte Druck weg.
Wie du es sagst, ich war auch der Meinung, dass die Datenbanken und Beziehungen zwischen den, usw… erstmal entwerfen werden müsste, bevor man auf Visual-Ebene stürzt.

Aber wie gesagt, die Befehle kommen von oben :smile:.
Ich habe übrigens eine halbwegs Lösung für die zusätzliche Textfelder gefunden.
Ich unterbinde ein verstecktes Unterformular mit 20 zusätzlichen Textfelder zu meinem Hauptformular. (Sichtbar / unsichtbar über einen Knopf)
Hoffentlich wird der Kunde nicht mehr als 20 Extra Wünsche :smile:.

Ich werde meine Lösung meines Chefs vorstellen und mal sehen was er dazu sagt.

Danke schön für die Unterstützung.

Viele Grüße.

Willy.

Hallo,

na gut, dann pass nur auf, dass Dich das Pferd, das Du von hinten auzäumst, nicht schmerzhaft tritt… :wink:

Moin, Willy,

ich will Dir nicht den Mut rauben, aber ich fürchte, wenn da kein Geld in die Hand genommen wird, dann wird nichts draus.

Schau Dir auf den Seiten von BMW den Car Configurator an (könnte jeder andere Hersteller sein, den kenne ich zufällig), da steckt genau die Datenbankstruktur dahinter, die Du brauchst. Voraussetzung für so eine Software ist aber, dass alles bekannt ist, was gebaut und angeboten werden kann. Es gibt nun mal keine Fleischwanne für den Z4, basta. Sollte die wider Erwarten doch häufiger gewünscht werden, dann geht sie vielleicht im nächsten Jahr in die Produktion ein und kann dann bestellt werden.

Du baust also erstmal ein System, das Visionen berücksichtigt, hast aber noch gar keinen Katalog, aus dem Käufliches bestellt werden kann? Au Backe.

Ansonsten kann ich mich nur Franz anschließen: Geschäftsprozesse und Objekte identifizieren und daraus die notwendigen Daten ableiten. Auch das geschieht aber nicht nebenher und kostenlos :frowning:

Gruß Ralf