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
|