Thema Datum  Von Nutzer Rating
Antwort
Rot Problem bei einer Datenbank in VBA
19.01.2018 10:23:44 Burder
NotSolved
22.01.2018 09:15:48 Gast10938
NotSolved
22.01.2018 11:57:17 Burder
NotSolved
23.01.2018 11:53:24 Burder
NotSolved
24.01.2018 10:04:36 Burder
NotSolved
24.01.2018 10:28:38 Gast25210
**
NotSolved
24.01.2018 11:28:10 Burder
NotSolved
25.01.2018 11:34:06 Burder
NotSolved
26.01.2018 11:19:58 Burder
NotSolved

Ansicht des Beitrags:
Von:
Burder
Datum:
19.01.2018 10:23:44
Views:
1185
Rating: Antwort:
  Ja
Thema:
Problem bei einer Datenbank in VBA

Hallo,

Ich habe ein Problem mit einer Datenbank die ich für ein Lagersystem geschrieben habe. Ich habe kaum excel Erfahrung. Alles was ich geschrieben habe ist zusammen gewürfelt, und auf meine Bedürfnisse so gut wie es geht angepasst. Mein Problem dreht sich um das Abspeichern der Datenbank.

Meine Produkte können den selben Rohling zugrunde liegen, d.H. Produkt a1 und a2 und b2 stammen alle aus dem Rohling Z. Wenn ich jetzt Produkt a1 auslese, und die Anzahl der Rohlinge ändere, da ich Produziert o.ä. habe, müsste sich die Anzahl der Rohlinge für die Produkte a2 und b2 dementsprechend auch automatisch ändern ohne die jeweiligen Daten manuell zu ändern. 

So Speicher ich momentan:

Private Sub CommandButton3_Click()
  Dim lZeile As Long
  

    If ListBox1.ListIndex = -1 Then Exit Sub
    

    If Trim(CStr(TextBox1.Text)) = "" Then

        MsgBox "Sie müssen mindestens eine Artikelnummer hinterlegen!", vbCritical + vbOKOnly, "FEHLER!"

        Exit Sub
    End If

    

    lZeile = 2 

    Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""

        If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
            
            Tabelle1.Cells(lZeile, 2).Value = Trim(CStr(TextBox1.Text))
            Tabelle1.Cells(lZeile, 3).Value = TextBox2.Text
            Tabelle1.Cells(lZeile, 7).Value = TextBox4.Text
            Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text
            Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text
            Tabelle1.Cells(lZeile, 1).Value = TextBox8.Text
            Tabelle1.Cells(lZeile, 4).Value = TextBox9.Text
            Tabelle1.Cells(lZeile, 8).Value = TextBox10.Text
            Tabelle1.Cells(lZeile, 9).Value = TextBox11.Text
            Tabelle1.Cells(lZeile, 10).Value = TextBox12.Text
            Tabelle1.Cells(lZeile, 11).Value = TextBox13.Text
            Tabelle1.Cells(lZeile, 13).Value = TextBox15.Text
            
            If ListBox1.Text <> Trim(CStr(TextBox1.Text)) Then
                Call UserForm_Initialize
                If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
            End If
            
            Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
            
        End If
    
        lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    
End Sub

 

Und so Lade ich die Datenbank ein:

Private Sub ListBox1_Click()
  Dim lZeile As Long
    

    TextBox1 = ""
    TextBox2 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox8 = ""
    TextBox9 = ""
    TextBox10 = ""
    TextBox11 = ""
    TextBox12 = ""
    TextBox13 = ""
    TextBox15 = ""
    

    If ListBox1.ListIndex >= 0 Then
    
        lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn

        Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""

            If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
            

                TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value))
                TextBox2 = Tabelle1.Cells(lZeile, 3).Value
                TextBox4 = Tabelle1.Cells(lZeile, 7).Value
                TextBox5 = Tabelle1.Cells(lZeile, 5).Value
                TextBox6 = Tabelle1.Cells(lZeile, 6).Value
                TextBox8 = Tabelle1.Cells(lZeile, 1).Value
                TextBox9 = Tabelle1.Cells(lZeile, 4).Value
                TextBox10 = Tabelle1.Cells(lZeile, 8).Value
                TextBox11 = Tabelle1.Cells(lZeile, 9).Value
                TextBox12 = Tabelle1.Cells(lZeile, 10).Value
                TextBox13 = Tabelle1.Cells(lZeile, 11).Value
                TextBox15 = Tabelle1.Cells(lZeile, 12).Value
                
                TextBox14 = Tabelle1.Cells(lZeile, 6).Value + Tabelle1.Cells(lZeile, 8).Value + Tabelle1.Cells(lZeile, 10).Value + Tabelle1.Cells(lZeile, 12).Value
            
                Exit Do 
            
            End If
        
            lZeile = lZeile + 1 
        
        Loop
        
    End If
    
End Sub

 

Hier ist ein Ausschnitt aus meiner Datenbank wie ich die Daten hinterlege. Natürlich weiß ich das die Verbundenen Zellen Mist sind, ich habe es jetzt nur so gemacht um das Problem genauer dazustellen.

 

Artikelübersicht Artikelnummer Variante Kürzel Bezeichnung Lager W Menge Lagerplatz in Lager W Lager H Menge Lagerplatz in Lager H Lager F Menge Lagerplatz in Lager F Rohling
        a1 280           168
        a2          
        b2            
        b3 158          
        b4            

 

An diesem Beispiel sieht man es ganz gut denke ich. Lager W behinhaltet Teile die zu Endprodukt a1 und a2 verarbeitet werden kann. und die Rohlinge können zu a1,a2,b2,b3,b4 verarbeitet werden. Wenn ich nun in die Produktion steige, und ich weiter in diesem Beispiel 300 a1 produziere, müsste nach meinem Speicher die Tabelle so aussehen.

Artikelübersicht Artikelnummer Variante Kürzel Bezeichnung Lager W Menge Lagerplatz in Lager W Lager H Menge Lagerplatz in Lager H Lager F Menge Lagerplatz in Lager F Rohling
        a1             148
        a2            
        b2            
        b3 158          
        b4            

 

Das Problem welches ich nicht lösen kann, ist durch das auslesen meiner Datenbank durch die Listbox(a1 auslesen z.B.)  und das Abspeichern in einer bestimmten Zeile,(LZeile2 z.B.) ich es nicht schaffe die dementsprechenden Zeilen der anderen Produkte anzusteuern(a2,b2...). und die Produktmenge die aus gleichen Rohlingen produziert werden variert von Bauteil zu Bauteil.

 

Ich würde mich über eure Hilfe und/oder Antworten sehr Freuen.

Bei weiteren Fragen oder Problemen mit meiner Erklärung schreibt mich einfach an.

 

m.f.G. Burder


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Problem bei einer Datenbank in VBA
19.01.2018 10:23:44 Burder
NotSolved
22.01.2018 09:15:48 Gast10938
NotSolved
22.01.2018 11:57:17 Burder
NotSolved
23.01.2018 11:53:24 Burder
NotSolved
24.01.2018 10:04:36 Burder
NotSolved
24.01.2018 10:28:38 Gast25210
**
NotSolved
24.01.2018 11:28:10 Burder
NotSolved
25.01.2018 11:34:06 Burder
NotSolved
26.01.2018 11:19:58 Burder
NotSolved