Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kombinationsfeld in Tabelle per Recordset(VBA) füllen

Begonnen von JanJB99, Oktober 09, 2022, 11:55:46

⏪ vorheriges - nächstes ⏩

JanJB99

Lieber Franz,

ich habe Deine Hinweise gelesen.
Leider ist alles was Du zu meinem Problem sagst:

ZitatWozu? Ich verstehe das nicht..  Und was soll der Code denn bewirken? Das Nachschlagefeld erhält seine Daten ("Nachname" und "Vorname") über die Abfrage in dessen Eigenschaft "Datensatzherkunft".

und

ZitatAlles in allem, vergiss Code für dieses Problem und vergiss auch die Tabellen-Nachschlagefelder (wie Klaus es ja schon sagte).

Nutze Formulare für die Bedienung der DB und für die Datenpflege. In Formular sind die Kombifelder bestens zu verwenden.

Dazu kommt noch einiges an Kritik an Dingen, die ich zwar nachvollziehen kann, mich jedoch grade kein Stück nach vorn bringt.

Ich danke Euch wirklich für Eure Mühe in diesem Forum. Viele Fragen wurden mir hier beantwortet, ohne dass ich sie selbst stellen musste.
Dennoch bin ich bei meinem Problem seit 8h kein Stück weiter - Was sicherlich zum Großteil an meinem Know-How liegt.



DF6GL

#16
Hallo,

auch das:

Zitat von: undefined...Das Nachschlagefeld erhält seine Daten ("Nachname" und "Vorname") über die Abfrage in dessen Eigenschaft "Datensatzherkunft".


Was fehlt, ist die Angabe der Spaltenbreiten. Daran könnte es liegen, das dass der Nachname nicht in das Tabellenfeld "Mitarbeiter" übernommen wird....



habe ich gesagt, womit Du sicher darauf schliessen könntest, dass in Deinem Beispiel in der Eigenschaft "Spaltenbreiten" des Nachschlagefeldes (Kombifeld) z. B. 
4cm;4cm    stehen sollte.



Hast Du das umgesetzt?  Und nochmal:  VBA-Code ist völlig überflüssig/unangebracht/falsch an dieser Stelle.


An anderer Stelle berufst Du Dich auf ein Formular-Listenfeld, das die Mitarbeiter anzeigt und den ausgewählten MA (den Nachnamen) in das entspr. Tabellenfeld (Mitarbeiter) übertragen soll.  Das gelingt ganz einfach damit, das Listenfeld an das Tabellenfeld "Mitarbeiter" zu binden (Steuerelementinhalt: Mitarbeiter)

Trotzdem ist hier die "Kritik" angebracht, dass kein Primärschlüssel ("MitarbeiterID") für diesen Vorgang benutzt wird. Wenn es keinen PK in der Stammdaten-Tabelle gibt, dann füge einen hinzu und verwende diesen im Steuerelement-Inhalt des Listenfeldes. Dass die Abfrage und die Eingenschaften des Listenfeldes angepasst werden müssen, wäre eigentlich überflüssig zu erwähnen. Das konkrete Umsetzen überlasse ich jetzt Dir..

ZitatDennoch bin ich bei meinem Problem seit 8h kein Stück weiter - Was sicherlich zum Großteil an meinem Know-How liegt.


Warum investierst Du diese Stunden nicht in das Durcharbeiten eines Tutorials (auch in das Anschauen der Links in meiner Signatur)?

Das wäre effizienter und nachhaltiger.




 

JanJB99

Lieber Franz,
ich habe das Gefühl, Du hast überhaupt nicht verstanden wo mein Problem liegt.
Das Kombifeld funktioniert einwandfrei. Und ich weiß wie die Spaltenbreiten funktionieren.
Um genau zu sein steht da in meinem Fall 0cm;3cm;3cm, damit die erste Spalte, die die MitarbeiterID enthält, nicht angezeigt wird,die Datensätze aber trotzdem als ID und nicht als Name gespeichert werden.

Mein Problem liegt einzig und allein darin, Mitarbeiter per VBA code in das Nachschlagefeld hinzuzufügen.
Der Punkt den Du für:
ZitatCode ist völlig überflüssig/unangebracht/falsch an dieser Stelle
empfindest.

Ich verstehe noch nicht wieso es überflüssig sein sollte dem User eine Menge Klicks durch einen zu ersetzen indem man einen Teil des Plans automatisch befüllt, aber jedem seine Meinung.

Ich habe jetzt die Info, dass man ein Nachschlagefeld wohl mit einem 2. Recordset befüllen kann. Das werde ich heute probieren und wenn es funktioniert die Lösung hier teilen.

LG Jan

DF6GL

#18
Hallo,

Zitatich habe das Gefühl, Du hast überhaupt nicht verstanden wo mein Problem liegt.

das glaube ich auch... 8)

Erklär es mir nochmal genau und ausführlich: Wo (Tabelle, Tabellenfeld, Formular, Steuerelement (-Namen)  ) willst Du was und wie hinzufügen und/oder abspeichern?




ZitatUm genau zu sein steht da in meinem Fall 0cm;3cm;3cm, damit die erste Spalte, die die MitarbeiterID enthält, nicht angezeigt wird,die Datensätze aber trotzdem als ID und nicht als Name gespeichert werden.

WO steht das?  Jedenfalls nicht im Screenshot der Eigenschaften des  Tabellen-Nachschlagefeldes.


Dass die ID in das entspr. Tabellenfeld (heißt das "Mitarbeiter"?) abgespeichert wird, ist doch so RICHTIG! Genau das ist zu erwarten.  Allerdings hat "Mitarbeiter" vermutlich den Datentyp TEXT, was  mit dem Datentyp des ID-Feldes, der vermutlich LONG ist, nich korreliert.


ZitatMein Problem liegt einzig und allein darin, Mitarbeiter per VBA code in das Nachschlagefeld hinzuzufügen.

Das wiederum versteh ich nicht....  Ist das Tabellen-Nachschlagefeld damit gemeint?  Und was heißt "hinzufügen"?  Einen neuen MA hinzufügen oder den im Formularlistenfeld ausgewählten MA darstellen, und zwar in der Tabellen-Ansicht?

Das hört sich einfach verquert an.  Wirf das Nachschlagefeld endlich aus der Tabelle heraus und alles wird gut....  und das ganz ohne Code... Vorausetzung sind die korrekten Datentypen-Deklarationen und passend gesetzte Beziehungen im Beziehungsfenster. (Das wurde ja auch schon angesprochen und solltest Du dringend umsetzen, wenn noch nicht geschehen.)


ZitatIch verstehe noch nicht wieso es überflüssig sein sollte dem User eine Menge Klicks durch einen zu ersetzen indem man einen Teil des Plans automatisch befüllt, aber jedem seine Meinung.

Das habe ich nicht gesagt. Mach es so wie beschrieben, und das Ganze funktioniert mit einem einzigen Klick.


Insofern versteh ich, wo Dein Problem liegt.


Du könntest ja mal die DB (datenreduziert, komprimiert/repariert und gezippt) hier hochladen....