Access 2007 - Felder automatisch ausfüllen

Hallo!

Ich arbeite gerade an einer Artikeldatenbank. Ich habe eine Tabelle mit allen Artikeln, die auch die Eigenschaften des Artikels beinhalten soll. Es gibt einige Standard-Verpackungen, die sehr häufig wiederkehren. Deren Abmessungen habe ich in einer eigenen Tabelle gespeichert. Über ein Formular lassen sich die Daten des Artikels eingeben. Ich möchte aber Zeit sparen und eine Auswahlliste in das Formular einbauen, in dem die Standardgrößen verzeichnet sind, so dass, wenn eine Auswahl daraus getroffen wird, automatisch die Felder Breite, Tiefe und Höhe ausgefüllt werden. Dennoch soll die Möglichkeit bestehen, die Daten manuell einzugeben, wenn Verpackung aufkommen, die nicht in der Liste vorhanden sind.

Gruß
Martin

Hallo Martin,

da nimmst du ein Kombinationsfeld mit den drei Spalten H/B/T
also als Datenbasis deine Tabelle mit den Werten.

Beim Ereignis: Bei Fokusverlußt schreibst du in den VBA Code:

me.MeinFeldfürHÖHE = me.MeinKombifeld.column(0)
me.MeinFeldfürBREITE = me.MeinKombifeld.column(1)
me.MeinFeldfürTIEFE = me.MeinKombifeld.column(2)

fertig

WICHTIG!! Die Zählung der Spalten beginnt mit 0

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

erstell im Artikelform ein gebundenes Kombifeld, das den ID-Wert und die Abmessungen aus der Tabelle „Standardgrößen“ bezieht.
Die Eigenschaft „Standardwert“ des Kombis setzt Du auf den ID-Wert, dessen Abmessungen eben als Standardwert benutzt werden sollen.

Müssen andere (weitere) Abmessungen verwendet werden, benutz die Ereignis-Eigenschaft „Bei nicht in Liste“ des Kombis, um die neuen Abmessungen zunächst als Ereignisprozedur in die Tabelle „Standardgrößen“ aufzunehmen und deren ID-Wert anschließend im Artikel-Form übernehmen zu können. Zur Anzeige der Abmessungen im Artikel-Form hat Netwolf Dir schon den Tipp gegeben.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Vielen Dank für die Anworten.
Leider bin ich noch blutiger Anfänger in Access und die Bücher, die ich mir besorgt habe, geben leider nichts dazu her.
Hab die beiden Sachen jetzt mal ausprobrobiert, aber leider tut sich da nichts.

Es wäre super, wenn mir das jemand, der ein paar Minuten Zeit hat, etwas detaillierter erklären könnte!

Gruß
Martin

Hallo,

Es wäre super, wenn mir das jemand, der ein paar Minuten Zeit
hat, etwas detaillierter erklären könnte!

am Besten schaust Du Dir mal Beispiel an:

www.donkarl.com FAQ 4.12 und die folgenden

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Martin,

Leider bin ich noch blutiger Anfänger in Access und die
Bücher, die ich mir besorgt habe, geben leider nichts dazu
her.

das hättest du gleich zu Anfang schreiben sollen :smile:

Hab die beiden Sachen jetzt mal ausprobrobiert, aber leider
tut sich da nichts.

hmmmm, da bleibt die Frage wie/was nicht geht?

Es wäre super, wenn mir das jemand, der ein paar Minuten Zeit
hat, etwas detaillierter erklären könnte!

*Start Access Grundlagenkurs*
(Mangels Informationen habe ich meine Feldbezeichnungen genommen!!)

  • Formular im Edit-Modus öffnen

  • ein Kombifeld einfügen

  • merken wie die drei Felder für Breite/Höhe/Tiefe heißen
    (ich nehme jetzt mal an: xBreite, xHöhe, xTiefe)

  • Rechtsklick auf Kombifeld -> Eigenschaften

  • Reiter [alle]

  • Name = Auswahl_Größe

  • Steuerelementinhalt = nichts = leer

  • Herkunftstyp = Tabelle/Abfrage

  • Datensatzherkunft = deine Tabelle mit den Maßen
    -> über den kleinen schwarzen Pfeil auswählen
    (Tabellenname ist mir nicht bekannt)

  • dann am Ende der Zeile auf die kleine Taste mit den drei Punkten klicken -> der Abfragenassistent wird aufgerufen

  • alle drei Spalten für Breite/Höhe/Tiefe erstellen

  • Abfrageassistent schließen (Wichtig: NICHT die Abfrage speichern)

  • Spaltenanzahl =3

  • Spaltenbreiten = 2;2;2
    (Semikolon und NICHT das Komma verwenden!!!)

  • Nur Listeneinträge: JA

Reiter [Ereignis]

  • Bei Fokusverlust: [Ereignisprozedur]

  • dann am Ende der Zeile auf die kleine Taste mit den drei Punkten klicken -> der VBA-Editor wird aufgerufen
    -> dort eintragen

Me.xBreite = Me.Auswahl_Größe.Column(0)
Me.xHöhe = Me.Auswahl_Größe.Column(1)
Me.xTiefe = Me.Auswahl_Größe.Column(2)

  • speichern

  • VBA-Editor schließen

  • Formular speichern

  • Formular schließen

  • Formular normal öffnen

  • die neue Auswahl testen

= fertig

*Ende Access - Grundlagenkurs*

Falls du etwas nicht verstanden hast, oder etwas bei dir nicht funktioniert, schreibe es bitte GENAU auf.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo!

Also verstanden hab ichs jetzt. Habs alles genauso gemacht, wie es beschrieben war, aber es passiert beim Ausführen garnichts. Also wenn ich das Formular öffne und eine Auswahl treffe, passiert nicht. Zwar wird die Auswahl im Kombifeld angezeigt, aber die entsprechenden Daten werden nicht in die entsprechenden Felder der Artikelliste eingetragen.
Ich bekomme aber auch keine Fehlermeldung o.ä.

Trotzdem schonmal viel Dank, dass Ihr euch die Zeit nehmt mir zu helfen!

Hallo Martin,

Also wenn ich das Formular öffne und eine Auswahl
treffe, passiert nicht.

nur zum Verständnis, die Daten werden erst in die neuen Felder übernommen, wenn du das Kombinationsfeld verläßt! Nicht direkt nach einer Auswahl!

Möglicher Weise fehlt einfach nur eine Requery (Aktualisierung) für die Felder, also noch hinzufügen:

me.xBreite.requery
me.xHöhe.requery
me.xTiefe.requery

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Habs geändert und ausprobiert, keine Veränderung.
Die Felder bleiben leer, sowohl im Formular, als auch in der Tabelle.
Da passiert leider nichts.
Ich würd die Datei ja hochladen, das würds vielleicht einfacher machen, aber da sind leider vertrauliche Daten drin, daher ist das schlecht!

Hallo Martin,

Habs geändert und ausprobiert, keine Veränderung.

hmm, komisch

Ich würd die Datei ja hochladen, das würds vielleicht
einfacher machen, aber da sind leider vertrauliche Daten drin,
daher ist das schlecht!

  • lege eine neue, leere Datenbank an
  • IMPORTIERE alles aus der Original-DB
  • Bei den Tabellen -> nur Struktur (ohne Daten) importieren

und schon hast du eine DB ohne Daten, die du ohne Probleme weitergeben kannst :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Okay, gesagt - getan!

Hier der Link zur Blanko Datenbank:

http://home.arcor.de/cracked-band/ArtikelDB.mdb

Gruß
Martin

Oh Martin,

wenn da was steht, sollst du auch ALLES machen, nicht die Hälfte weg lassen!

du hast vergessen:

  • merken wie die drei Felder für Breite/Höhe/Tiefe heißen
    (ich nehme jetzt mal an: xBreite, xHöhe, xTiefe)

OK - Herkunftstyp = Tabelle/Abfrage
OK - Datensatzherkunft = deine Tabelle mit den Maßen
OK -> über den kleinen schwarzen Pfeil auswählen
OK (Tabellenname ist mir nicht bekannt)

du hast vergessen:

  • dann am Ende der Zeile auf die kleine Taste mit den drei Punkten klicken -> der Abfragenassistent wird aufgerufen
  • alle drei Spalten für Breite/Höhe/Tiefe erstellen
  • Abfrageassistent schließen (Wichtig: NICHT die Abfrage speichern)
  • Spaltenanzahl =3
  • Spaltenbreiten = 2;2;2

Außerdem habe ich in Unkenntnis deiner Feldbezeichnungen MEINE Feldbezeichnungen benutzt. Die kannst du natürlich NICHT einfach SO übernehmen, wenn deine Felder andere Namen haben!!

Wenn du in deiner Tabelle noch die Felder ID und Karton hast, diese ohne eine entsprechende Abfrage zu machen einfach übernimmst, dann ergibt sich eine andere Spaltennummerierung:

ID = 0
Karton = 1
Breite = 2
Höhe = 3
Tiefe = 4

D.h. du kannst mein Beispiel nicht einfach 1:1 übernehmen! Du musst entweder alle notwendigen Angaben hier machen, oder die hier „blind“ gemachten Beispiele an deine Gegebenheiten anpassen!

Die geänderte MDB ist auf dem Weg zu dir…

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)