Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
beim wechsel eines Registerblattes Schaltfläche ausblenden
Gehe zu Seite 1, 2  Weiter
zurück: Listenfeld Kriterien an weiteres Listenfeld weitergeben weiter: Abstände im Endlosformular ändern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
cook6791
VBA Einsteiger


Verfasst am:
05. Nov 2008, 14:44
Rufname: Jens
Wohnort: bei Leipzig

beim wechsel eines Registerblattes Schaltfläche ausblenden - beim wechsel eines Registerblattes Schaltfläche ausblenden

Nach oben
       Version: Office XP (2002)

Hallo,

ich habe wieder eine kleine Anfrage an euch, die mich mal wieder zum verzweifeln bringt.

Ich habe ein Registersteuerelement mit 7 Register.
Auf dem Hauptformular möchte ich 7 Schaltflächen mit unterschiedlichen Aktionen übereinanderlegen wobei jeweils nur die entsprechende Schaltfläche eingeblendet werden soll wenn ein bestimmtest Registerblatt aufgerufen wurde.

Beispiel:
bei Seitenindex = 0 dann Befehl1 aktivieren (Befehl2-Befehl7 deaktiviert)
bei Seitenindex = 1 dann Befehl2 aktivieren (Befehl1 und Befehl3-Befehl7 deaktiviert)

Ich hatte shon mit einem code versucht rumzubasteln., aber entweder wird sie immer nur eingeblendet oder nur ausgeblendet.
Code:
    Me!Befehl94.Visible = True = Me![Fleisch].PageIndex = 0 = Visible = True
    Me!Befehl94.Visible = False = Not Me![Fleisch].PageIndex = 0 = Visible = False
Ich hoffe das jemand von euch eine einfache Lösung kennt.
Hintergrund ist der, dass bei Klick auf die Schaltfläche jeweils unterschiedliche Textfelder angesprochen werden, die sich in einem Ufo befinden und diese dann in eine andere Tabelle weggeschrieben werden.

Danke schon einmal für eure Hilfe.
Jens
Martin1000
Gast


Verfasst am:
05. Nov 2008, 22:24
Rufname:


AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hi,

nachstehenden Code in das Ereignis des Registersteuerelements "Bei Änderung"
Code:
    Dim bytTab As Byte
    Dim strBtn(7) As String
    Dim i As Byte
   
    strBtn(0) = "btn1" 'Name der Befehlsschaltfläche in Array speichern
    strBtn(1) = "btn2": strBtn(2) = "btn3": strBtn(3) = "btn4"
    strBtn(4) = "btn5": strBtn(5) = "btn6": strBtn(6) = "btn7"
    ' Aktuellen Wert des Registersteuerelement speichern
    bytTab = Me!RegisterStr0
    For i = LBound(strBtn) To UBound(strBtn) - 1         'Schleife durchlaufen
        If i = bytTab Then      'Wenn der Zähler gleich dem Wert des Registers
            Me.Controls(strBtn(i)).Visible = True
          Else                                                    'andernfalls
            Me.Controls(strBtn(i)).Visible = False
        End If
    Next i
Damit durchläufst du immer die Array (strBtn), die Schleife prüft dann ob der i Wert mit dem Wert des Registers übereinstimmt. Sollte das der Fall sein dann wird dieser Button auf sichtbar und wenn nicht auf unsichtbar gestellt. Mit Me.Controls() sprichst du alle Steuerelemente an. Durch strBtn(i) übergibst du den Namen des Button an Me.Controls aus der Array (Datencontainer). Das i bezeichnet die Zeile in der Array.

Viel Spaß
steffen0815
VBA-Programmierer


Verfasst am:
05. Nov 2008, 22:34
Rufname:

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo,
zunächst brauchst du ein Ereignis, was beim Seitenwechsel auftritt (Registerelement-> Bei Änderung).
Tritt dieses Ereignis auf, setzt du entsprechend der Seite dein Knöpfe sichtbar/unsichtbar):
Code:
Private Sub Fleisch_Change()
    Select Case Me![Fleisch]
      Case 0:
        Me!Befehl94.Visible = True
        Me!BefMachDies.Visible = False
      Case 1:
        Me!Befehl94.Visible = False
        Me!BefMachDies.Visible = True
    End Select
End Sub
Btw: Benenne deine Steuerelemente logisch, sonst siehst du irgendwann nicht mehr durch Wink
_________________
Gruß Steffen
cook6791
VBA Einsteiger


Verfasst am:
06. Nov 2008, 11:34
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Martin1000, hallo Steffen0815

danke euch beiden für die Mühe, die Lösung von Martin1000 hat auch super funktioniert.
Der Code sieht nun so aus:
Code:
Private Sub RegisterStr5_Change()
    Dim bytTab As Byte
    Dim strBtn(7) As String
    Dim i As Byte
   
    strBtn(0) = "cmdFleisch" 'Name der Befehlsschaltfläche in Array speichern
    strBtn(1) = "cmdHive1": strBtn(2) = "cmdHive2": strBtn(3) = "cmdVerpack"
    strBtn(4) = "cmdLohn": strBtn(5) = "cmdFGMK": strBtn(6) = "cmdDSD"
    ' Aktuellen Wert des Registersteuerelement speichern
    bytTab = Me!RegisterStr5
    For i = LBound(strBtn) To UBound(strBtn) - 1         'Schleife durchlaufen
        If i = bytTab Then      'Wenn der Zähler gleich dem Wert des Registers
            Me.Controls(strBtn(i)).Visible = True
          Else                                                    'andernfalls
            Me.Controls(strBtn(i)).Visible = False
        End If
    Next i
End Sub


@Steffen0815: Mit der Select case Anweisung bekomme ich nur die Fehlermeldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht (Fehler 438)" Ich bin mir nicht ganz sicher ob du dachtest, dass ich 7 Registersteuerelemente habe, statt eines mit 7 Blättern.
Aber trotzdem Vielen Dank!

Gruß
Jens
Martin1000
Gast


Verfasst am:
06. Nov 2008, 22:42
Rufname:


AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Danke,

die Select Case Anweisung müsste aber laufen. Es ist die einfachste Variante solche Aufgabe zu lösen. Nur das der beschriebene Code halt bei 7 Btn relativ lang wird.

Die aber insgesamt kürzeste Variante ist die Geschicht zu drehen. Man hinterlegt nur einen Button den man mit der Veränderung des Registers anpasst. (Weniger Steuerelemente = Perfomance Vorteil + Übersichtlicher!!)

Im Ereigniss "Bei Änderung" des Steuerelements muss dann sowas rein:
Code:
    Dim strBtnCaption(3) As String 'Bezeichnungen des Buttuon
   
    strBtnCap(0) = "Bez1": strBtnCap(1) = "Bez2": strBtnCap(2) = "Bez3"
    Me!Button0.Caption = strBtnCap(Me!Register)
Und für den Button:
Code:
    Select Case Me!Register
      Case 0
        'Code des Button für Register 0
      Case Is = 1
        'Code des Button für Register 1
      Case 2
        'Code des Button für Register 2
      Case Else
        MsgBox "Bitte editieren Sie das Ereigniss"
    End Select
Viel Spaß noch!

PS: Wenn ich schon DSD lese Twisted Evil elender Krampf und das nur für ein amerkanischen Investor und die Deutschen haben nicht von der vielen verschwendeten Kohle!!
cook6791
VBA Einsteiger


Verfasst am:
07. Nov 2008, 10:10
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Martin1000,

vielen Dank für deine Rückmeldung!
Ich habe heute früh den Code auf ein Bruchteil reduzieren können, als er vorher war.

Hier der Code vom Change Ereignis:
Code:
Private Sub RegisterStr5_Change()
    Dim cmdFleisch(6) As String 'Bezeichnungen des Buttuon
   
    cmdFleisch(0) = "Fleisch"
    cmdFleisch(1) = "Hive1"
    cmdFleisch(2) = "Hive2"
    cmdFleisch(3) = "Verpack"
    cmdFleisch(4) = "Lohn"
    cmdFleisch(5) = "FGMK"
    cmdFleisch(6) = "DSD"
    Me!cmdFleisch.Caption = cmdFleisch(Me!RegisterStr5)
End Sub
und hier vom Click Ereignis:
Code:
Private Sub cmdFleisch_Click()
On Error GoTo Err_cmdFleisch_Click
    Dim lngBG As Long   'Baugruppe
    Dim lngSt As Long   'Stufe
    Dim lngSt1 As Long   'Stufe1
    Dim lngSt2 As Long   'Stufe2
    Dim lngSt3 As Long   'Stufe3
    Dim lngSt4 As Long   'Stufe4
    Dim lngSt5 As Long   'Stufe5
    Dim lngSt6 As Long   'Stufe6
    Dim lngSt7 As Long   'Stufe7
    Dim lngAN As Long   'Art_Nr
    Dim dblAM As Double 'Art_Menge
    Dim strSQL As String

    lngBG = Me!Text55
    lngSt = Me!Text71
    lngSt1 = Me!Text65
    lngSt2 = Me!Text78
    lngSt3 = Me!Text74
    lngSt4 = Me!Text82
    lngSt5 = Me!Text86
    lngSt6 = Me!Text91
    lngAN = Me!Text50
    dblAM = Me!Text56
    If Nz(Me!Text50, "") = "" Then
        MsgBox "Bitte eine Nummer auswählen!"
        Me!Befehl52.SetFocus
      Else
        If Nz(Text56, "") = "" Then
            MsgBox "Bitte eine Menge eintragen!"
            Me!Text56.SetFocus
          Else
            Select Case Me!RegisterStr5
              Case 0 ' Register Fleisch
                strSQL = "INSERT INTO Stücklisten_Anteile " & _
                                "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 1 ' Register Hive1
                strSQL = "INSERT INTO Stücklisten_Anteile " & _
                                "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt1 & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 2     'Register Hive2
                strSQL = "INSERT INTO Stücklisten_Anteile " & _
                                "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt2 & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 3     'Register Verpackung
                strSQL = "INSERT INTO Stücklisten_Anteile " & _
                                "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt3 & ", " & _
                                      ngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 4     'Register Lohn
                strSQL = "INSERT INTO Stücklisten_Konditionen " & _
                                "(Baugruppe, Stufe, Kond_Nr, Kond_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt4 & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 5     'Register FGMK
                strSQL = "INSERT INTO Stücklisten_Konditionen " & _
                                "(Baugruppe, Stufe, Kond_Nr, Kond_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt5 & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 6     'Register DSD
                strSQL = "INSERT INTO Stücklisten_Konditionen " & _
                                "(Baugruppe, Stufe, Kond_Nr, Kond_Menge) " & _
                         "VALUES (" & lngBG & ", " & lngSt6 & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case Else
                MsgBox "Bitte editieren Sie das Ereigniss"
            End Select
            Me!Text50 = ""
            Me!Text53 = "" 'Art_Bezeichnung
            Me!Text56 = ""
            Me!Befehl52.SetFocus
            Me!Text56.Enabled = False
        End If
    End If
Exit_cmdFleisch_Click:
    Exit Sub
Err_cmdFleisch_Click:
    MsgBox Err.Description
    Resume Exit_cmdFleisch_Click
End Sub
Es gibt bestimmt immer noch hier und da was zu zu basteln, aber als Anfänger freut man sich auch so schon riesig Very Happy

PS: Auch wir können uns nicht vor den DSD Abgaben schützen Mad

Grüße
Jens
Martin1000
Gast


Verfasst am:
07. Nov 2008, 11:00
Rufname:

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hi,

also nur damit du siehst das es wirklich noch geht zu kürzen, dem Spaße wegen!
Code:
Private Sub cmdFleisch_Click()
On Error GoTo Err_cmdFleisch_Click
    Dim lngBG As Long   'Baugruppe
    Dim lngSt As Long   'Stufe
    Dim lngSt(6) As Long   'Stufe1-7 'geändert
    Dim lngAN As Long   'Art_Nr
    Dim dblAM As Double 'Art_Menge
    Dim strSQL As String
   
    lngBG = Me!Text55
    lngSt(0) = Me!Text71 'geändert
    lngSt(1) = Me!Text65 'geändert
    lngSt(2) = Me!Text78 'geändert
    lngSt(3) = Me!Text74 'geändert
    lngSt(4) = Me!Text82 'geändert
    lngSt(5) = Me!Text86 'geändert
    lngSt(6) = Me!Text91 'geändert
    lngAN = Me!Text50
    dblAM = Me!Text56
    If Nz(Me!Text50, "") = "" Then
        MsgBox "Bitte eine Nummer auswählen!"
        Me!Befehl52.SetFocus
      Else
        If Nz(Me!Text56, "") = "" Then
            MsgBox "Bitte eine Menge eintragen!"
            Me!Text56.SetFocus
          Else
            ' Daher das der strSQL nur geändert wird und dies durch das
            ' Register selbstgesteuert werden kann, ist der ganze
            ' Select-Bereich nicht notwendig
            strSQL = "INSERT INTO Stücklisten_Anteile " & _
                            "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                     "VALUES (" & lngBG & ", " & _
                                  lngSt(Me!RegisterStr5) & ", " & _
                                  lngAN & ", " & Str(dblAM) & ")"
            CurrentDb.Execute strSQL
            DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
            Me!Text50 = ""
            Me!Text53 = "" 'Art_Bezeichnung
            Me!Text56 = ""
            Me!Befehl52.SetFocus
            Me!Text56.Enabled = False
        End If
    End If
Exit_cmdFleisch_Click:
    Exit Sub
Err_cmdFleisch_Click:
    MsgBox Err.Description
    Resume Exit_cmdFleisch_Click
End Sub
cook6791
VBA Einsteiger


Verfasst am:
07. Nov 2008, 11:28
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Martin1000,

ja gekürzt sieht das schon ganz anders aus. Der Versuch war wirklich Klasse!

Allerdings habe ich für für die Case 4 - 6 eine anderes INSERT INTO. (andere Zieltabelle)
Da ich mir die Option vorbehalte für die Registerblätter noch zusätzliche Textfelder zu deklarieren gefällt mir die Select case Variante als "Übersichtlicher"

Aber ist schon ein Hammer wie kurz und bündig man programmieren kann. Smile

Aber das größte Problem steht mir demnächst bevor wenn die Stücklistenberechnung programiert werden muss.

Heißt: ich habe ein Rohstoff mit einem Preis, welcher durch mehrere Fertigungsprozesse läuft. Bei jedem Fertigungsprozess kommen neue Zutaten hinzu oder es entstehen Verluste so daß sich nach jeder Fertigungsstufe ein neuer Preis je KG bildet.

Ich würde sagen da muss man bestimmt Schleifen programmieren. Kennst du dich damit auch aus? Das wäre dann aber ein neuer Tread den ich aufmachen würde.

Grüße
Jens
Martin1000
Gast


Verfasst am:
07. Nov 2008, 11:54
Rufname:

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Sicherlich kann man da was machen. Entweder ermittelt man eine Direktbedarfsmatirx oder mit Schleifen und schrittweise.

Wichtig wird, wieviel Pordukte bei einem Prozess entstehen, bzw. das du beachtest das sich irgendwann jemand einfällen lässt, das was heute noch Abfall war morgen schon wieder Rohstoff sein könnte und somit den Stücklistenpreis des Hauptproduktes senkt. Das ganze wird aber nur wichtig wenn du die Bewertungsregeln nach AO beachten musst und ihr keine Ausnahmegenehmigung für die Bwertung nach FIFO beantragt habt.

Also für genaueres im neuen Tread!

PS: Ändere mal Deine Feldbezeichnung in den Formularen, sodass diese auch im Code aussagefähig werden!!

Was wegen kürzen:
Die Me!-Felder für lngSt umbenennenen in z.B. Stufe0, Stufe1, Stufe2 usw.
Code:
    Dim i As Byte
   
    For i = LBound(lngSt) To UBound(lngSt)
        lngSt(i) = Me.Controls("Stufe" & i).Value
    Next i
cook6791
VBA Einsteiger


Verfasst am:
07. Nov 2008, 13:00
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Martin1000,

Habe jetzt die Variablendeklaration geändert, bekomme aber nur die Fehlermeldung: "Typen unverträglich!". Bringt mir aber auch kein Debuggen.
Code:
    Dim lngBG As Long   'Baugruppe
    Dim lngAN As Long   'Art_Nr
    Dim dblAM As Double 'Art_Menge
    Dim strSQL As String
    Dim i As Byte

    For i = LBound(lngst) To UBound(lngst)
        lngst(i) = Me.Controls("Stufe" & i).Value
    Next i
    lngBG = Me!Text55
    lngSt1 = Me!Stufe1
    lngSt2 = Me!Stufe2
    lngSt3 = Me!Stufe3
    lngSt4 = Me!Stufe4
    lngSt5 = Me!Stufe5
    lngSt6 = Me!Stufe6
    lngSt7 = Me!Stufe7
    lngAN = Me!Text50
    dblAM = Me!Text56
Un das alles nur weil in den blöden Textfeld genau die Zahl drinnsteht die immer per INSERT INTO in die Tabelle weggeschrieben wird.

Also
Me!Stufe1 =1 bzw. Register [Fleisch] =1
Me!Stufe2=2 bzw. Register[Hive1] =2
Code:
            strSQL = "INSERT INTO Stücklisten_Anteile " & _
                            "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                     "VALUES (" & lngBG & ", " & lngSt1 & ", " & _
                                  lngAN & ", " & Str(dblAM) & ")"
Also an Stelle des lngSt1 soll dann die "1" weggeschrieben werden
für lngSt1 die "2" und soweiter.
Bis jetzt konnte ich mit dem versteckten Textfeld leben, aber ich möchte ja dazulernen. Smile

Grüße
Jens
Martin1000
Gast


Verfasst am:
07. Nov 2008, 14:00
Rufname:

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo,

leider für heute zum letzten Mal.

zu Deiner Frage:
Lass doch gleich die ganze Deklarition von lngSt weg und nimm in den SQL gleich das Register + 1, dann kannst du dir auch die Felder sparen.
Code:
            strSQL = "INSERT INTO Stücklisten_Anteile " & _
                            "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                     "VALUES (" & lngBG & ", " & _
                                  CInt(Me!RegisterStr5 + 1) & ", " & _
                                  lngAN & ", " & Str(dblAM) & ")"
Wenn ich mir das anschaue was du so schreibst, dann hat die 1, 2, 3 doch nur was mit den Stücklistenebenen zu tun?

Nach der Methode begrenzt du Dich auf jeden Fall auf 6 Stücklistenebenen. Als zweites ist dann gerade bei der ermittlung des Endbestandes immer ein Problem mit unfertigen Erzeugnissen und deren Preise.

Ich würde daher so vorgehen, das jede Stücklistenstufe ein Artikel ist. Der Artikel der höheren Stücklistestufe enthält damit den der Niedrigeren und natürlich nocht die Inkredenzien der Veredlungsstufe.
Code:
Stufe   Produktionsartikel
      Stücklistenartikel
________________________________________
1   Fleisch      
      Rind
      Schwein
      Salz
      Arbeitskosten
      Maschinenkosten

2   Mett   
      -1>Fleisch
      Gewürze
      Salz
      Eis
      Arbeitskosten
      Maschinenkosten

3   Wurst roh   
      -2>Mett
      Darm
      Arbeitskosten
      Maschinenkosten

4   Wurst gebrüht
      -3>Wurs roh
      Wasser
      Arbeitskosten
      Maschinenkosten

5   Wurst 5 x 100g   
      -4>Wurst gebrüht
      Verpackung
      Gas
      Arbeitskosten
      Maschinenkosten
So wird dann nach jeder Produktionsstufe ein Artikel (Unfertiges Erzeugnis) fertig gemeldet und ein Preis gesetzt. Mit der Letzen Produktionsstufe hast du dann ein Fertigerzeugnis. Insgesamt hast du dann auch weniger Probleme was die KLR anbetrifft.
Weiterhin wirst du auch weniger Stücklisten haben, da in der Wirklichkeit ein Zwischenprodukt auch zu mehreren Endprodukten weiterverarbietet wird. ( 5Stk Wurst in einer Verpackung oder 10 Stück in einer Verpackung, das Vorprodukt Wurst gebrüht bleibt dabei gleich nur die Anzahl ändert sich nicht)

Als nächstes hast du auch weniger Arbeit im nachhinein, ändern sich die Inkredentien eines Zwischenproduktes, musst du nur das Zwischenprodukt ändern und nicht 20 weitere Stücklisten.

Also, eh du weiter machst mal nachdenken über diesen Aufbau!!!

Viel Spaß
cook6791
VBA Einsteiger


Verfasst am:
07. Nov 2008, 15:21
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Martin1000,

so jetzt ist der Code dank deiner Ausdernden Hilfe auf ein minimal geschrumpft.
Code:
Private Sub cmdFleisch_Click()
On Error GoTo Err_cmdFleisch_Click
    Dim lngBG As Long   'Baugruppe
    Dim lngAN As Long   'Art_Nr
    Dim dblAM As Double 'Art_Menge
    Dim strSQL As String

    If Nz(Me!Text50, "") = "" Then
        MsgBox "Bitte eine Nummer auswählen!"
        Me!Befehl52.SetFocus
      Else
        If Nz(Me!Text56, "") = "" Then
            MsgBox "Bitte eine Menge eintragen!"
            Me!Text56.SetFocus
          Else
            lngBG = Me!Text55
            lngAN = Me!Text50
            dblAM = Me!Text56
            Select Case Me!RegisterStr5
              Case 0 To 3 ' Register Fleisch, Hive1 und Hive2
                strSQL = "INSERT INTO Stücklisten_Anteile " & _
                                "(Baugruppe, Stufe, Art_Nr, Art_Menge) " & _
                         "VALUES (" & lngBG & ", " & _
                                      CInt(Me!RegisterStr5 + 1) & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case 4 To 6     'Register Lohn, FGMK, DSD
                strSQL = "INSERT INTO Stücklisten_Konditionen " & _
                                "(Baugruppe, Stufe, Kond_Nr, Kond_Menge) " & _
                         "VALUES (" & lngBG & ", " & _
                                      CInt(Me!RegisterStr5 + 1) & ", " & _
                                      lngAN & ", " & Str(dblAM) & ")"
                CurrentDb.Execute strSQL
                DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
              Case Else
                MsgBox "Bitte editieren Sie das Ereigniss"
            End Select
            Me!Text50 = ""
            Me!Text53 = "" 'Art_Bezeichnung
            Me!Text56 = ""
            Me!Befehl52.SetFocus
            Me!Text56.Enabled = False
        End If
    End If
Exit_cmdFleisch_Click:
    Exit Sub
Err_cmdFleisch_Click:
    MsgBox Err.Description
    Resume Exit_cmdFleisch_Click
End Sub
Zum anderen Punkt: Die Register stellen nicht die Ebenen des Produktionsprozesses dar, sondern lediglich eine genaue Aufteilung der Kosten jeden einzelnes Produktionsprozesses.
Der Aufbau in die Tiefe erfolgt über Baugruppennummern

Der Aufbau ist ähnlich einer Vorgängersoftware, die im Unternehmen aber nicht mehr eingesetzt wird.
Diese Programm dient ausschliesslich zur Ermittlung der Herstellkosten bis zum verpackten Produkt. Lagerbewegungen oder Bewertungen fließen hier nicht mit ein.

Der Aufbau ist dann wie in der Beispiel.txt im Anhang.
Das meine ich dann auch von der Schleifenberechnung: Der Preis von Art_Nr 2000 WurstGefüllt muss ja erst aus den Einsatz der Rohstoffe berechnet werden.
Und wie du schon sagst: Der Artikel 1000 Rezeptur1 kann ebenso auch in andere Produkte eingesetzt werden.

Gruß
Jens



Beispiel.zip
 Beschreibung:

Download
 Dateiname:  Beispiel.zip
 Dateigröße:  484 Bytes
 Heruntergeladen:  22 mal

Willi Wipp
Moderator


Verfasst am:
07. Nov 2008, 15:52
Rufname:
Wohnort: Raum Wiesbaden

Re: beim wechsel eines Registerblattes Schaltfläche ausblend - Re: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hi Ihr Zwei,

wen Ihr schon am optimiern seit, wie waere es mit
Code:
Private Sub cmdFleisch_Click()
On Error GoTo Err_cmdFleisch_Click
    Dim strSQL As String

    If Nz(Me!Text50, "") = "" Then
        MsgBox "Bitte eine Nummer auswählen!"
        Me!Befehl52.SetFocus
      ElseIf Nz(Me!Text56, "") = "" Then
        MsgBox "Bitte eine Menge eintragen!"
        Me!Text56.SetFocus
      Else
        strSQL = "INSERT INTO Stücklisten_%Ziel% " & _
                        "(Baugruppe, Stufe, %Z%_Nr, %Z%_Menge) " & _
                 "VALUES (" & Nz(Me!Text55) & ", " & _
                              CInt(Me!RegisterStr5 + 1) & ", " & _
                              Nz(Me!Text50) & ", " & Str(Nz(Me!Text56)) & ")"
        Select Case Me!RegisterStr5
          Case 0 To 3 ' Register Fleisch, Hive1 und Hive2
            strSQL = Replace(Replace(strSQL, "%Ziel%", "Anteile"), _
                             "%Z%", "Art")
          Case 4 To 6     'Register Lohn, FGMK, DSD
            strSQL = Replace(Replace(strSQL, "%Ziel%", "Konditionen"), _
                             "%Z%", "Kond")
          Case Else
            MsgBox "Bitte editieren Sie das Ereigniss"
            Exit Sub
        End Select
        CurrentDb.Execute strSQL, 128 'dbFailOnError
        DoCmd.RunCommand acCmdSaveRecord
        Me!Text50 = ""
        Me!Text53 = "" 'Art_Bezeichnung
        Me!Text56 = ""
        Me!Befehl52.SetFocus
        Me!Text56.Enabled = False
    End If
Exit_cmdFleisch_Click:
    Exit Sub
Err_cmdFleisch_Click:
    MsgBox Err.Description
    Resume Exit_cmdFleisch_Click
End Sub
Wobei sich mir noch die Frage aufdraengt, warum man bei nahezu gleichem Aufbau
nicht mit einer Tabelle und einem Merkmal-Feld auskommt Wink

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
cook6791
VBA Einsteiger


Verfasst am:
07. Nov 2008, 16:06
Rufname: Jens
Wohnort: bei Leipzig

AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo Willi,

ja so jeder Programmierer findet doch immer noch etwas um den Code so dünne wie möglich zu machen. Da bekomm ich ja bald meine MDB Datei wieder auf ne Diskette Very Happy

Der Code funktioniert natürlich auch. Smile

Habe ihn jetzt im Einsatz ohne genau zu wissen, ob ich es dann noch selber hinbekomme noch neue Tabellenfelder im INSERT INTO hinzuzunehmen.
Aber ich kann ja wieder den "alten" in Einsatz bringen.

Danke nochmals.

Jens
Martin1000
Gast


Verfasst am:
07. Nov 2008, 16:31
Rufname:


AW: beim wechsel eines Registerblattes Schaltfläche ausblend - AW: beim wechsel eines Registerblattes Schaltfläche ausblend

Nach oben
       Version: Office XP (2002)

Hallo doch noch mal,

erstmal an Willi --> Bist halt der Altmeister!!! Razz

ich glaube es entsteht genau der Fehler den ich meinte. Der am Ende die Pflege der Stücklisten äußerst aufwendig macht und unendliche Suchen nach Fehlern hervorruft. Da du die Preis hier schon weg schreibts, die erst zum Zeitpunkt der Fertigung zu ermitteln sind.

Schau dir mal Dynamics Stücklisten, da kenne ich den vorgeschlagenen Aufbau her und die Erfahrung damit zeigt höchste Flexiblität.

Also Viel Spaß
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: Zeilen ausblenden wenn ALLE Zellen leer sind 15 Access_Esc 209 29. Nov 2013, 19:51
KlausMz Abfrage: Zeilen ausblenden wenn ALLE Zellen leer sind
Keine neuen Beiträge Access Tabellen & Abfragen: Formulare über Schaltfläche in der Menüleiste öffnen 5 Hasenfuss8 106 04. Jul 2013, 09:25
Hasenfuss8 Formulare über Schaltfläche in der Menüleiste öffnen
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: 9 Stellige Nummer die letzte ausblenden? 2 wimmera 90 08. Mai 2012, 18:55
KlausMz 9 Stellige Nummer die letzte ausblenden?
Keine neuen Beiträge Access Tabellen & Abfragen: Feld für Zwischenberechnungen im Datenblatt ausblenden?? 2 atze87 284 09. Dez 2011, 08:45
Gast Feld für Zwischenberechnungen im Datenblatt ausblenden??
Keine neuen Beiträge Access Tabellen & Abfragen: SQL SELECT Anweisung - Mehrfacher Datensatz ausblenden 5 Mr. SQL 2476 02. Aug 2011, 21:00
Mr. SQL SQL SELECT Anweisung - Mehrfacher Datensatz ausblenden
Keine neuen Beiträge Access Tabellen & Abfragen: Zeile ausblenden wenn Feld gefüllt 2 alexander912 1127 30. Jun 2010, 11:41
alexander912 Zeile ausblenden wenn Feld gefüllt
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterien Code: Doppelte Werte ausblenden 8 Akima 1978 27. Nov 2009, 21:07
Akima Kriterien Code: Doppelte Werte ausblenden
Keine neuen Beiträge Access Tabellen & Abfragen: Feldinhalt ein-/ausblenden (wenn dann sonst Fkt in Abfrage) 13 Riza 2537 15. Okt 2009, 17:33
Riza Feldinhalt ein-/ausblenden (wenn dann sonst Fkt in Abfrage)
Keine neuen Beiträge Access Tabellen & Abfragen: nullstellen im oberflächendiagramm ausblenden 0 habicht 799 04. Dez 2008, 13:00
habicht nullstellen im oberflächendiagramm ausblenden
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz ausblenden / deaktivieren 10 schaedel 3858 17. Apr 2008, 10:19
schaedel Datensatz ausblenden / deaktivieren
Keine neuen Beiträge Access Tabellen & Abfragen: Spalten in Abfrage ausblenden bei bestimmten Werten 2 Maaadin1987 1104 24. Jan 2008, 20:05
MiLie Spalten in Abfrage ausblenden bei bestimmten Werten
Keine neuen Beiträge Access Tabellen & Abfragen: spalten ausblenden 3 whitenoise 492 28. Jun 2007, 19:11
Willi Wipp spalten ausblenden
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps