VBA Datenbank Daten erfassen und ablegen
#11
Hallo Max,

Schau mal hier: Option Explicit, Intellisense und Techniken des Schreibens

Gruß Uwe
Top
#12
Hi Uwe,

Danke. Den Artikel hatte ich nach Ralf's Frage auch schon gefunden und gelesen.
Werde mal schauen, dass ich es beherzige.

Gruß
Max
Top
#13
Hallo Max,

vielen Dank für den ersten Entwurf. Das sieht wirklich sehr gut aus. Auf diese Form der Datenablage bin ich bisher noch nicht gekommen.
Die Struktur der Datenablage kann auf jeden Fall so bleiben. Gefällt mit sehr gut!!!

Jetzt bleiben für mich noch zwei Fragen offen:

a) Bei der Eingabe gibt es noch folgenden Effekt => Für einen Verkäufer werden in einem Monat mehrere Verkäufe aus unterschiedlichen Warengruppen erfasst. Wahrscheinlich muss ich dann nur die Eingabemaske über mehrere Zeilen erweitern (ich benötige maximal soviel Zeilen wie Warengruppen) und dann übertrage ich diese per Schleife in die Datenbank, oder?

b) Das Rücklesen der Daten in die Eingabemaske soll wie folgt erfolgen: Über Auswahl Monat/Jahr und Verkäufer werden bereits erfasste Daten in die Eingabemaske übernommen. Wurden bisher keine Daten erfasst bleibt die Eingabemaske leer.

Wenn Du mir dann noch beschreiben könntest, wie eine Überprüfung der Daten auf Vollständigkeit möglich ist (nur übertragen wenn zumindest Jahr, Monat, Verkäufer, Warengruppe und Stück erfasst sind wäre das perfekt.

Viele Grüße
Frank
Top
#14
Hallo Frank,

schön das Dir der Entwurf gefällt.

Von einem mehrzeiligen Erfassungsbereich würde ich Dir gerade im Hinblick auf Deinen
zweiten Punkt abraten. Nur rein hypothetisch...
Nehmen wir einmal an, ein Verkäufer würde in einem Monat 2x etwas aus der gleichen Warengruppe
verkaufen und jeweils 1x etwas aus allen anderen, dann würde automatisch das "Problem" entstehen, dass das Makro dann
a) nicht "weiß" welcher Eintrag angezeigt werden soll und
b) die Anzahl Deiner Erfassungsfelder nicht ausreicht.

Ich habe aber eine Idee, wie man Deinen Wunsch auch anders realisieren kann.
Ich mache mich morgen dran.

Bis dann
Max
Top
#15
Hallo Max,

ein doppelter Verkauf aus einer Warengruppe pro Monat/Verkäufer kommt nicht vor. Die Daten werden so erfasst, dass pro Monat/Jahr und Verkäufer nur einmal die Warengruppe angezogen wird. Darum auch meine Frage mit der Erfassung über mehrere Zeilen.

Was mir noch spontan durch den Kopf geht ist folgende Situation => Es sind die Daten für einen Monat/Verkäufer/Warengruppe erfasst. Beim Aufruf des Monats werden die erfassten Daten zurückgelesen. Manchmal kommt es vor, dass die Werte Stück, Umsatz, Gewinn/Verlust nachträglich angepasst werden müssen. Damit der Eintrag nun nicht doppelt in der Datenbank aufgenommen wird folgende Frage: Gibt es die Möglichkeit bei Korrekturen die Daten in der gleichen Zeile abzulegen aus der die Daten eingelesen wurden?

Ich freue mich auf Deine Ideen und Anregungen.

Viele Grüße
Frank
Top
#16
Hallo zusammen,

bei solchen Aufgaben würde ich mit eindeutigen IDs arbeiten.
ID s können ganz einfach eine Verkettung von mehreren Werten sein. Z.B.: Datum&Artikel& etc
So hat man einen Eindeutigen Datensatz und kann auch leichter einlesen und korrigiert zurückschreiben.
Gruß Atilla
Top
#17
(24.11.2014, 23:32)tnt1968 schrieb: Hallo Max,

ein doppelter Verkauf aus einer Warengruppe pro Monat/Verkäufer kommt nicht vor. Die Daten werden so erfasst, dass pro Monat/Jahr und Verkäufer nur einmal die Warengruppe angezogen wird. Darum auch meine Frage mit der Erfassung über mehrere Zeilen.

Okay - ich baue da was.

(24.11.2014, 23:32)tnt1968 schrieb: ...
Damit der Eintrag nun nicht doppelt in der Datenbank aufgenommen wird folgende Frage: Gibt es die Möglichkeit bei Korrekturen die Daten in der gleichen Zeile abzulegen aus der die Daten eingelesen wurden?
...

Ja, dazu hätte ich auch eine Lösung. Werde das entsprechend berücksichtigen.

Gruß
Max
Top
#18
Hallo Max,

ich wollte mich nur kurz erkundigen, ob Du schon Zeit und Gelegenheit hattest den VBA Code weiterzuentwickeln?

Viele Grüße
Frank
Top
#19
Hallo Frank,

ich bin dran!
Zwei Probleme bremsen mich ein wenig aus...
1. Mein "Unvermögen" (dazu unten ein wenig mehr)
2. Die Tatsache, dass man mir gestern ein 155 Seiten starkes Pamphlet zur redaktionellen Prüfung auf den Tisch geknallt hat (:75:)

Mein "Unvermögen":
Habe mich ein paar mal vergallopiert Blush. Leider!!!
Da ICH ein von mir absolut überzeugter Hobby(!)-Programmierer bin, habe ich natürlich vor dem Test eines neuen Codeschnipsels,
den alten Codeschnipsel immer zuvor gelöscht, anstatt ihn zunächst einmal nur zu kommentieren (das nur zur Belustigung der Mitleser).
Was mich dann unterm Strich ein paar Mal(!) zurückgeworfen hat. Wie sage ich immer: "Nicht zur Strafe, nur zur Übung!"
Ich bin aber guter Dinge, dass ich bis spätestens Ende der Woche etwas auf die Beine gestellt habe.

@ All the others
Ein kleines "Problem" habe ich noch vor der Brust und hoffe mir gibt jemand einen Tipp:
Ich habe eine UF entworfen.
Am Ende jeder "Zeile" (habe ich zunächst für die ersten beiden Zeilen entwickelt) erfolgt eine Abfrage: "Weitere Zeile Ja/Nein".
Bei "Ja" wird eine neuer Rahmen mit entsprechenden TextBoxen und einer ComboBox eingeblendet.
Mein bisheriger Code erlaubt mir nur das Schreiben der ersten Zeile in die Tabelle "Datenbank".
Hat jemand eine Idee wie ich elegant die Sichtbarkeit des Rahmens und der entsprechen Steuerelemente abfragen kann, um diese
dann in die Tabelle zeilenweise zurück zu schreiben?
Die Listbox in der UF habe ich noch nicht programmiert. Sie dient dem Wusch des TS, evtl. vorhandene
Einträge nachträglich editieren zu können.

Sorry Frank für den Verzug.

Gruß
Max


.xlsm   Testdatei_V02_1.xlsm (Größe: 50,77 KB / Downloads: 9)
Top
#20
Hallo Max,

ich hätte da mal zwei Vorschläge.

Wenn ich Daten übernehmen will, muss ich 2x Daten übernehmen drücken. Beim ersten mal kommt die Frage nach einem weiteren Satz und erst beim 2. mal kommen die Daten in die Tabelle. Falls das so gewollt ist, würde ich 2 getrennte Buttons dafür nehmen. Eventuell kann man dem Anwender auch anzeigen oder melden, dass die Daten übernommen wurden.

Für die Auswahl der Warengruppe würde ich versuchen, bereits in der Kombination Jahr/Monat/Verkäufer verwendete Warengruppen auszuschließen. Wenn die Reihenfolge der Eingabe mal "ungeordnet" erfolgt, müsste man diese Prüfung für jede Box vornehmen. Alternativ könnte man, wenn in allen 4 Boxen was steht, bei Auswahl einer bereits vorhandenen Kombination eine Warnmeldung ausgeben und die Übernehme verhindern.

Bei der Übernehme von zwei Einträgen und der Auswahl, dass ich keinen weiteren Eintrag anlegen will, kam glaube eine Fehlermeldung. Eventuell hab ich nur was falsch gemacht, kann das jetzt nicht mehr prüfen - muss zur Arbeit Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste