Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: silentwolf am Dezember 17, 2011, 11:12:19

Titel: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 11:12:19
Hallo liebe Access Freunde :)

hab ein kleineres Problem wo ich mir leider nicht ganz sicher bin wie man so etwas am besten Lösen könnte.
Vieleicht hat jemand schon so etwas gemacht und könnte mir bitte helfen.

Ich möchte eine Artikel nummer erstellen die aus folgenden Kriterien zusammen gesetzt werden soll.
Eine Tabelle GrundArtikel beinhaltet drei Nachschlage Tabellen. Aus jeder dieser Nachschlage Tabelle soll nun der erste Buchstabe also Artikel Code dienen.
Also ich erstelle einen neuen Artikel und wähle in einer Form Kategorie, Hersteller, und Mengeneinheit aus.
Nun soll wenn es der erste Artikel ist z.B. CBl1 in meiner GA_ArtikelNr eingetragen werden.
Habe eine Abfrage mit einem Ausdruck erstellt der mir die z.B. CBl zurück gibt. Wie muss ich nun weiter vorgehen um diesen Ausdruck mit der ArtikelId zu kombinieren und in mein Textfeld geben. Das wiederum in meine Tabelle geschrieben werden muss.

Hoffe ich habe mich verständlich ausgedrückt und jemand könnte mir diesbezüglich helfen.

Vielen Dank!!


Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: DF6GL am Dezember 17, 2011, 11:23:53
Hallo Albert,


Wenn Du das wirklich so machen willst, (die ArtikelNr automatisch zusammensetzen), dann überleg Dir genau, WORAUS die ArtikelNr zusammengesetzt werden soll.



"Nun soll wenn es der erste Artikel ist z.B. CBl1 in meiner GA_ArtikelNr eingetragen werden."

ist nicht so klar, was Du meinst.. Willst Du gleichartig lautende Grundartikel "durchnummerieren" ?


Wenn so, dann wird das nur über eine kleine Funktion erreichbar sein, die das Ganze bewerkstelligt.
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 11:35:34
Hallo Franz,

ja ich dache mir das ich dann ebern die verschiedenen Artikel Gruppen durchnummeriere.
Eben mit den aufgezählten "Kategorien"

Dachte ich mir schon das ich dazu VBA funktion brauche ggg aber na ja da bin ich noch nicht so weit ggg
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: DF6GL am Dezember 17, 2011, 11:37:59
Hallo Albert,

muss nochmal sagen: Überleg Dir ein KONZEPT, mit denen die Grundartikel (warum denn aber die Grundartikel) so benannt werden sollen....  Durchnummerieren finde ich da nicht so ideal.
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 11:48:36
Hallo Franz,
hmm ok na ich dachte mir nur damit ich Artikel Nummern bekomme die für mich sind. Und nicht immer wieder eine Abkürzung und dergleichen für jeden Artikel ausdenken muss.
Soll auch danach einfacher sein Abfragen zu erstellen.

Aber wenn es nicht gut ist dann lass ich es lieber wieder :)

Ist ja kein Problem :)

Ach wenn Du grad da bist bräuchte kurz hilfe wie ich im HF auf das dazugehörige Unterformular greifen kann.
Hab einen Code der funktioniert aber nur wenn ich im UF klicke .. Würde lieber aus dem HF (button) klicken.

Danke

Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: bahasu am Dezember 17, 2011, 12:14:42
Hallo,

schaust Du hier: http://www.donkarl.com/ (http://www.donkarl.com/)
beim Punkt 4.2

Harald
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 12:25:34
Hallo Harald,

vielen Dank aber ich bekomme es leider nicht hin.

das wäre der Code momentan

DoCmd.OpenForm "GAVLieferantHF", , , "GAVLief_GAVer_Id =" & Me!GAVer_ID

wie muss man den im diesen Fall es änder??

Hab schon versucht aber leider ohne Erfolg.

Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: bahasu am Dezember 17, 2011, 12:53:14
Hallo,

ich bin verwirrt, was nun die Zielvogabe  ist:
DoCmd.OpenForm "GAVLieferantHF", , , "GAVLief_GAVer_Id =" & Me!GAVer_ID
ist ein Code, um ein Formular (HF = Hauptformular?) zu öffnen. Woher stammt GAVer_ID (HaFo, UFo?)?

Deine obige Zielvorgabe habe ich so interpretiert, dass Du ein Formular hast, in dem ein Unterformular (bereits vorhanden) ist.
Der Hinweis auf DonKarl beschreibt diesen Fall,dass man aus einem HaFo auf ein UFo zugreift.
Wenn dieses Ziel zutrifft, dann ist aus dem HaFo der Zugriff auf z.B. ein Feld im Ufo möglich mit:
MsgBox Me!DeinUnterformular.Form.DeinFeldImUnterformular

Harald
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 13:04:37
Ok ich versuche es zu erklären.
Es existieren 4 tabellen die miteinander verknüpft sind.
Also Erste tabelle mit der zweiten die mit der dritten und die mit der vierten.

Jetz habe ich die ersten zwei in ein HF und ein UF erstellt.
Die zweiten in ein weiteres. Da ich aber die daten von der zweiten Tabelle(die ist ja das UF im ersten HF) weiter verarbeiten muss.
Hab ich im ersten HF einen Button eingebaut der mir eben das zweite HF mit UF öffnen soll und auf den Datensatz springt der
im ersten UF ausgewählt wurde.

Kann man das so verstehen??
Ich hätte ja am anfang alle vier Tabellen in ein Formular gestellt aber das geht ja nicht oder? Und es wäre ja auch ziehmlich gross.
Deshalb zwei Formulare mit jeweils zwei Tabellen.



Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: bahasu am Dezember 17, 2011, 13:41:30
Hallo,

der Formular-Assistent läßt nur HaFo + 2 UFo's zu. Manuell sind mehr möglich.
Wenn Du per Assi HaFo + 2 UFo's erstellt hast, im 2. Ufo (sollte Deine dritte Tabelle sein) ein "Unterformular/-bericht"-Steuerelement eintragen und in dem das Formular (sollte bei Dir das Ufo aus dem 2. HaFo sein) zuweisen und dann noch die Verknüpfung regeln.

Deine obige Anweisung habe ich jetzt so verstanden, dass Du aus dem 1. HaFo heraus einen zum dort vorhanden Ufo passenden Datensatz im zweiten HaFo aufrufen willst. Dann mußt Du beim where-Teil einen Bezug zum 1. Ufo angeben:
Könnte lauten:
DoCmd.OpenForm "GAVLieferantHF", , , "GAVLief_GAVer_Id =" & Me!DeinUnterformular_im_ersten_HaFo.Form.GAVer_ID

Harald
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 14:57:17
Hallo,

bei Versionen ab Access 95 ist die Angabe von 'Form' optional.
Wenn aber angegeben dann ...

Me!DeinUnterformular_im_ersten_HaFo.Form!GAVer_ID

einfacher und übersichtlicher, wobei die ID bei Bedarf weiterverwendet werden KÖNNTE:


Dim lngGAVerID as Long

lngGAVerID = Me!DeinUnterformular_im_ersten_HaFo!GAVer_ID

DoCmd.OpenForm "GAVLieferantHF", , , "GAVLief_GAVer_Id =" & lngGAVerID


Mehr zu Referenzen auf Unterformulare findest du hier: http://www.donkarl.com?FAQ4.2 (http://www.donkarl.com?FAQ4.2)
Beachte auch den dort angegebenen Link zu Dev Ashish
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 15:01:13
Hallo Peter :)
auch danke für Deine mail! Bin immer noch beim probieren!!
Hab mal ein HF mit 2 Ufos erstellt aber hab jetzt wieder eine Fehlermeldung bekommen.
Weil irgend ein Ausdruck nicht zu finden ist.

Weis nicht wie es besser wäre mit 1 Hf und 2 Ufos und dann noch die 4 tabelle in das selbe einfügen
oder eben wie ich es gemacht hätte. damit es einfach etwas übersichtlicher bleibt
aber na ja da hat es dann schon etwas gefuxt tgggg
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 15:26:31
Hallo,

Zitat....hab jetzt wieder eine Fehlermeldung bekommen
und wie lautet die GENAU?
Möglicherweise heißt ...  "GAVLief_GAVer_Id"  in deinem aufgerufenen Formular anders!

p.s. die obigen Codes beschreiben den Formularaufruf vom Hauptformular aus.
lngGAVerID = Me!DeinUnterformular_im_ersten_HaFo!GAVer_ID ... greift vom Hauptformular aus af ein ID-Feld im Unterformular zu

DoCmd.OpenForm "GAVLieferantHF", , , "GAVLief_GAVer_Id =" & lngGAVerID  ...  stellt den Aufruf des NEUEN Formulars dar und bewirkt,
dass der Datensatz geladen wird, dessen GAVLief_GAVer_ID dem Inhalt der Variablen entspricht.

Sonst hänge mal die betroffenen Tabellen und Formulare in eine BeispielDB hier herein
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 15:42:10
Danke Peter für Deine Antwort.

Gib mir bitte noch ein paar Minuten und dann werd ich wissen ob ich es geschafft habe oder nicht.
Hab das Formular schon verschmissen dauert länger den Fehler zu finden als ein neues zu erstellen.

Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 16:02:57
Peter bist noch da??
Also ich habe nun ein HF mit 3 UF das letzte UF also das ich gerade eingefügt habe hab ich folgende Verknüfungen gemacht.

Nach [GAVLieferantUF].Forms![GAVLief_ID]
Von GAVA_GAVLief_Id

also auch wie die anderen UF verknüpft sind. Aber geht nicht
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 16:26:30
Hallo,
hier wären die Tabellen und Formulare... leider geht es bei mir mal nicht ;(



[Anhang gelöscht durch Administrator]
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 18:00:17
Hallo,

Im Entwurfsmodus...
wähle im 'GrundartikelHF' das 'GAVLieferantUF' aus, zeige die Eigenschaften des UF an und klicke danach auf das kleine Quadrat links oben im Form.
Danach erstellst du im Ereignis 'Beim Anzeigen' eine Ereignisprozedur und fügst folgende Zeile dort ein, dass die Prozedur dann folgendermaßen ausschaut:


Private Sub Form_Current()
    Forms!GrundartikelHF!GAVAIDUF.Requery
End Sub


Beim Wechsel des Datensatzes im 'GAVerpackungUF' wechselt auch die Anzeige im 'GAVLieferantUF'.
Durch die Codezeile wird  veranlaßt, dass die Datenanzeige im 'GAVAIDUF' aktualisiert wird, wenn sich der aktuelle Datensatz in 'GAVLieferant' ändert.

Ich habe das veränderte Beispiel unten wieder angehängt

[Anhang gelöscht durch Administrator]
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: bahasu am Dezember 17, 2011, 18:02:50
Zitat von: database am Dezember 17, 2011, 14:57:17
Hallo,

Me!DeinUnterformular_im_ersten_HaFo.Form!GAVer_ID


"Ich bevorzuge eh den Punkt, egal was Donkarl dazu sagt." Das Zitat stammt aus: siehe: http://www.access-o-mania.de/forum/index.php?topic=14796.msg85253;topicseen#msg85253
und gibt auch meine Meinung wieder.
Das obige war getestet und funktioniert.

Harald
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 18:10:20
Hallo an Euch beiden :)

Vielen Dank na jetzt hab ich es mit Deiner Version nochmal probiert Peter und es funktioniert :)
Aber warum steht das dann nicht im Code Beispiel drinnen???
Schon komisch das ich grad immer was extra brauche damit es funktioniert  ::)
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 18:16:46
Hi,

Codebeispiel?

Was meinst du?
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 18:27:52
Hallo Peter,
na ja das ich immer noch was dazu brauche schaue in Donkarl da ist nichts gestanden oder?? Von dem was Du mir jetzt geschrieben hast.

Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 18:29:29
Hallo,

@bahasu
Es ist ja unbestritten, dass es auch mit der Punktnotation funktioniert. und ich habe deine Empfehlung nicht als falsch gewertet oder bewertet
Aber das ! deutet eben auf eine Auflistung hin und die Punktierung auf eine Eigenschaft oder Methode.
Wenn ich mich nun auf der einen Seite beim Programmieren strikt an ein Konvention oder Notation halte dann halte ich mich auch hierbei dran.
Keine Frage, es ist auch viel bequemer bei Me den Punkt zu verwenden als das !, werden danach samt den Methoden und Eigenschaften auch gleich die richtigen Felder angezeigt.
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 18:36:09
Peter weil Du grad noch da bist hätte ich eine Frage.
Bin bald durch mit meinen Formularen ggg
Kann es jetzt schon fast ganz alleine ggg  ;D
Aber meine Frage... wenn ich eine Front End und Back End machen möchte müssen dann alle Formulare schon gemacht sein?
Wie funktioniert es denn genau mit der Front und Back end Db

Danke

Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 19:15:13
Hi,

Prinzipiell ist es so, dass das Backend AUSSCHLIESSLICH Tabellen enthält.
Die restlichen DB-Objekte wie Abfragen, Formulare, Module, ... befinden sich bzw. verbleiben im Frontend.
Die einfachste Methode danach die aufgeteilte Datenbank zu verwenden ist es via Tabellenverknüpfungsassistenten die Tabellen des Backends ins Frontend einzubinden.
BEIDE Teile sollten sich dabei am Speicherort des Backends befinden. Ob da nun auf einem Stand-Allone- PC ist oder auf einem Rechner (Server) auf einem gemeinsam genutzten Laufwerk oder Freigabe ist dabei unerheblich.
Um das Frontend dann 'in Betrieb' zu nehmen sollte sebiges von diesem Standort aus z.B. auf den Desktop des Bestimmungsrechners KOPIERT werden.
Dabei werden die Tabellenverknüpfungen richtig erhalten und man muß diese Verknüpfung dann nicht nochmals aktualisieren.
Im Mehrbenutzerbetrieb ist die Aufteilung m.E. unerläßlich!

Die Aufteilung in Frontend und Backend kann prinzipiell zu jedem Zeitpunkt der Entwicklung erfolgen.
Um während der Entwicklungsphase eine Aufteilung durchzuführen würde ich empfehlen 2 Frontends anzulegen.
Das eine dient als Kopiervorlage für die Clients, das zweite für die Entwicklung. Ist dann ein Entwicklungsschritt wieder abgeschlossen,
wird das ursprüngliche Kopierobjekt durch eine Kopie des neuen Frontends ersetzt und wie vorhin beschrieben an die Clients verteilt.

Lies dazu bitte auch dazu ...  http://www.donkarl.com?FAQ1.35 (http://www.donkarl.com?FAQ1.35)
sowie einschlägige Artikel beim Hersteller z.B. ... http://support.microsoft.com/kb/304932/de (http://support.microsoft.com/kb/304932/de)

... hast du schon mal den Link #2 in meiner Signatur angeschaut, ich glaube, das wäre was für dich...  ;)
HTH
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 17, 2011, 19:23:09
Danke Peter für Deine Erklärung!
Hilft immer wieder aufs neue :)
Ja den Link hab ich mir auch schon mal angeschaut aber im Moment nicht grad soviel Zeit leider :(
Was kannst Du denn empfelen um besser in VBA zu werden?
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 17, 2011, 20:52:24
Hallo,

ZitatWas kannst Du denn empfelen um besser in VBA zu werden

Lesen, Lesen, Lesen - und aktiv probieren.
Es gibt eine Menge einschlägige Literatur zu dieem Thema sei es in gedruckter Form oder Internet,
jede Menge sehr gute Seiten zum Thema VB 6.0 und VBA und recht hilfreiche Seiten mit Lösungsangeboten.

Dr. Google gibt da eine Unmenge von Angeboten her, wenn du Suchbegriffe rund um VBA verwendest.
Leider kann ich dir keine Bestenliste liefern, dazu ist das gesamte Angebot zu groß und die Art und Weise des Aufbaues einzelner Medien zu unterschiedlich.
Ist halt für jeden 'Geschmack' und jeden Kenntnisstand was dabei.
Auch auf Amazon lassen sich gute Bücher zum Thema finden.
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 20, 2011, 11:37:16
Hallo nochmals...
jetzt hab ich ja das Formular so erstellt das ich ein HF und drei UF darin habe. Es sieht so aus als würde es funktionieren mit den Datensatz anzeigen.
Aber trotzdem hab ich mal wieder ein Problem und es funktioniert nicht so wie es eigentlich soll.
Nach der eingabe im Formular verschwienden wieder diese daten ... nicht immer aber immer öfter ggg
Also wenn ich daten in das Formular eingebe und zu einen neuen Datensatz gehe dann wieder zurück komme auf mein Formular dann sind die Datensätze die ich bereits gemacht habe wieder weg (in manchen Feldern)
Das sol ja wohl nicht sein oder ist das normal ?????????????????

Danke für Eure Hilfe
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: database am Dezember 21, 2011, 20:31:41
Hallo,

ich habe das eben an der abgespeckten Version ausprobiert, mit der wir das 3. UF eingebunden haben.
Dein Problem kann ich an der Datei nicht nachvollziehen, ich sehe immer alle neu eingegebenen Daten, egal wie oft ich in den Unterformularen die Datensätze wechsle!

Ev. passen die gesetzten Beziehungen nicht - prüfe mal nach ob die bei dir im Original exakt so gesetzt sind wie in der Abbildung unten

[Anhang gelöscht durch Administrator]
Titel: Re: Code für Artikel Nummer erstellen
Beitrag von: silentwolf am Dezember 22, 2011, 05:06:50
Hallo Peter,

danke Dir sehr für Deine Hilfe!!
Ich werd es dann nochmal versuchen aber hab gehört das mein Formular so nicht stimmt. Aber wie gesagt ich werd es nochmal
anschaun und probieren.

Nochmals vielen Dank


Albert