Mai 25, 2022, 12:52:13

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Textfeld per Knopfdruck erstellen, passend zur Anzahl in Listenfeld

Begonnen von TerracottaCSV, März 15, 2022, 08:17:07

⏪ vorheriges - nächstes ⏩

TerracottaCSV

Guten Morgen,
ich habe ein Listenfeld, welches ich per Knopfdruck mit einzelnen Werten aus einer Tabelle gefüllt wird, das ist auch alles gut, nur ich möchte gerne wissen ob und wie es möglich ist, neben diesem Listenfeld zu jedem ausgewählten Wert ein Textfeld zu erstellen per Knopfdruck.

Das Listenfeld hat 4 Werte, ich drücke auf den Knopf und erstelle 4 Textfelder zur Eingabe von Werten die dann auf Knopfdruck eines anderen Buttons in eine Tabelle geschrieben werden.

Also zb. das Listenfeld enthält die Werte A1, B2, C3 und D4. Ich drücke auf einen Knopf und kriege ein Mengeneingabefeld(textfeld) für A1, B2, C3 und D4, welches auch als solches erkennbar ist, danach drücke ich auf eine Schaltfläche und übertrage die Werte im Listenfeld + die Mengen aus den Textfeldern in eine Tabelle.

Außerdem möchte ich noch ein Eingabefeld(textfeld) welches per Knopfdruck einen Wert in das Listenfeld ganz unten einträgt, dieses soll auch per Knopfdruck ein Mengenfeld bekommen.

Ich hoffe das ist möglich und verständlich.

Grüße



DF6GL

Hallo,


1) Das ist möglich, der Aufwand, bzw. Schwierigkeit könnte evtl. (für Dich) erheblich sein.
2) Was Du beschrieben hast, ist (fast) verständlich. (Einmal schreibst Du von einer Listenfeld-Auswahl, zum Anderen vom gesamten Listenfeld.)
3) Gar nicht verständlich ist der Bedienungsablauf und die Methode, das Formular zu manipulieren (Textfelder dynamisch zu generieren) und damit Daten einzugeben.

Allenfalls wäre ein Sichtbar-/Unsichtbar-Machen von einer vorgegebenen Anzahl von Textfeldern als schwammige Alternative zu sehen.

Sehr vermutlich steckt da ein unausgegorenes Tabellenkonzept dahinter.

TerracottaCSV

Sichtbar / Unsichtbar machen.

Du meinst also ich erstelle so um die 20 Textfelder, und mache dann je wert im listenfeld eins sichtbar?

Das klingt nach einem Plan, wie das geht finde ich bestimmt schnell heraus.

Dann bleibt nur noch das Problem offen wie ich aus einem Textfeld in ein Listenfeld übertrage.
Vielleicht sowas wie
Me.lstRohartikel.Column = Me.txtTextfeld ?

Danke für die Hilfe soweit Franz!

MzKlMu

Hallo
wer so etwas braucht bzw. glaubt brauchen zu müssen, hat in den allermeisten Fällen eine falsche Tabellenstruktur angelegt.
Beschreibe mal die Funktion der 20 Felder genauer.
Was auch Franz in seinem letzten Satz oben vermutet hat.
Gruß
Klaus

TerracottaCSV

20 Felder sind nur so gesagt.

Ich möchte nachdem Artikel ausgewählt wurden und ins Listenfeld übertragen wurden, zu jedem Artikel im Listenfeld ein Textfeld einblenden / anzeigen in welches man die Menge eines Artikels einträgt.

Da das X Artikel sein können jedes mal, weiß ich nicht wie viele Textfelder ich wirklich brauche.

Mit diesen Mengen wird dann ein Preis berechnet über eine Tabelle und demzufolge einer Abfrage.

 

DF6GL

Hallo,

 dafür ist doch ein Listenfeld absolut nicht geeignet und somit Quatsch.

Nimm einfach ein an die Tabelle "tbl_Artikelmengen" gebundenes Endlosform und gut is...

tbl_Artikelmengen wird mit tbl_Artikel   in n:1-Beziehung gesetzt.  Somit kann dann auch eine Historie über die Bestände geführt werden, wenn ein Datum zum aktuellen Bestand mitgeführt wird.


Aber: Dies gilt nur hier und unter dem  Mangel an Kenntnis des DB-Hintergundes (Aufgabe der DB, TAbellenkonstruktion, Beziehungen usw.)

TerracottaCSV

Beziehungen sind doch gar nicht möglich oder? Denn die Tabellen sind extern auf verschiedenen SQL-Servern.

tblArtikel kommt aus der Warenwirtschaft, welches ein eigener SQL-Server ist.
Und tblArtikelmengen kommt aus meinem eigenen SQL-Server

Beaker s.a.

Hallo,
Ich sehe darin kein Problem. Die fehlende Beziehung kannst du über eine
Verknüpfung in einer HFo/UFo-Konstruktion auch darstellen.
Klaus' und Franz' Hinweisen schliesse ich mich an.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

TerracottaCSV

März 15, 2022, 12:22:00 #8 Letzte Bearbeitung: März 15, 2022, 13:15:50 von TerracottaCSV
Ich habe es jetzt folgendermaßen versucht, eine Auswahl zu treffen und diese ins Listenfeld einzutragen:
Private Sub btnAuswahl_click()
Me.lstRohartikel.Column(1) = Me!sfmArtikelsuche!matArtNr
End Sub

Aber ich bekomme da die Fehlermeldung:
"Let-Prozedur der Eigenschaft ist nicht definiert, und Get-Prozedur hat kein Objekt zurückgegeben"

Was soll da bedeuten und was muss ich jetzt machen? Kann ich den Code irgendwie ändern oder fehlt da noch was?
Diese Fehlermeldung habe ich noch nie gesehen und Google findet fast nur Excel Themen.
Außer das hier: https://www.vba-tutorial.de/objekte/eigenschaften.htm
Was mir aber nicht wirklich weiterhilft. Hat nichts mit Listenfeldern zutun


Edit: Scheint wohl an den ! nach dem Me zu liegen, ändere ich das in einen Punkt sagt mir Access das die beiden Anweisungen so nicht kompatibel sind, was wahrscheinlich eher stimmt.

Beaker s.a.

Hallo,
Du kannst einer Column eines Listfeldes keinen Wert zuweisen.
Das geht höchstens mit einer Werteliste als DS-Herkunft, die
du dann manipulieren müsstest. Macht man aber nicht.
Nehme ein (Endlos)Unterformular, da kannst du deine Mengen direkt
in das Feld schreiben. Und alles ohne eine Zeile Code.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

DF6GL

Hallo,

zitiere mich selber:


ZitatNimm einfach ein an die Tabelle "tbl_Artikelmengen" gebundenes Endlosform und gut is...
::)

TerracottaCSV

Kann ich denn über ein Endlosformular auch Artikel auswählen und diese übersichtlich in ein Listenfeld übertragen?

Muss nicht mal ein Listenfeld sein, ich möchte nur eine Möglichkeit haben x Artikel zu einem vorher ausgewählten Artikel auszuwählen

zb: Ich wähle auf Formular1(welches Bereits funktioniert) den Artikel XYZ aus, dieser wird hergestellt aus Artikel X, Artikel Y und Artikel Z.

Nach der Auswahl gehe ich auf Formular2(um dieses geht es hier) dort sehe ich in einem Textfeld bereits den gewählten Artikel XYZ und jetzt möchte ich aus einer Liste aller Artikel, die Artikel auswählen die zu XYZ gehören, in diesem Fall X, Y und Z.

Wie kann ich das am einfachsten umsetzen? Wie soll mir da ein Endlosformular helfen, wenn ich damit keine Möglichkeit habe übersichtlich die Artikel auszuwählen und aufzulisten?

DF6GL

Hallo,

um was geht es denn hier eigentlich?

Um Artikelmengen (Bestände)  oder um Artikel-Stücklisten?



Beschreibe mal ausführlich, was eigentlich die Aufgabe (der Db) hier ist, und ohne Formulare zu erwähnen.

Beaker s.a.

@TerracottaCSV
Verwende das anliegende Datenmodell. Erstelle ein Hauptformular mit der Tabelle
"Artikel". In dieses bettest du in einem UFo-Steuerelement ein Formular auf
Basis der Tabelle "Stuecklisten" ein. Die Verknüpfung erfolgt über "Artikel.ArtikelID"
und "Stuecklisten.ProdArtikelID_F".
Dann kannst du im HFo in den ArtikelDS navigieren, und im UFo werden die Artikel
gezeigt bzw. lassen sich anlegen und/oder editieren, die dazu gehören.
Und, das Ganze funzt ohne eine Zeile Code (zunächst jedenfalls).

gruss ekkehard

Sie dürfen in diesem Board keine Dateianhänge sehen.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

TerracottaCSV

Das funktioniert so nicht, weil die Tabellen nicht lokal sind, außerdem verwirrt mich das.


Ich habe das jetzt so gelöst: Ich habe in meinem Formular jetzt vier unsichtbare Textfelder die alle Werte eines Artikels nach einem Knopfdruck enthalten, daraufhin werden die Werte per Insert Into in eine Zwischenspeicher Tabelle gespeichert, und von dieser dann per SELECT in die RowSource des Listenfelds. Das funktioniert super!


Mein letztes Problem wäre jetzt das der Preis aus der Warenwirtschaftstabelle als Text kommt und ungefähr so aussieht:
5.9800000000000000000000000 ich müsste das jetzt beim Select konvertieren.

Weiß jemand wie man das gut machen kann? Ich habe bei Google folgendes gefunden:

CONVERT (varchar, cast(Verkaufspreis as money),1)Leider funktioniert das so nicht.

Hat jemand eine Idee?

Grüße