Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Listenfeld auslesen,Daten berechnen und in 2. Liste einlesen
zurück: festes Unterformular - wie anlegen? weiter: Anfänger//Nach Kombifeld Auswahl soll Rest vervollständigen 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
Stefan234
Gast


Verfasst am:
30. Okt 2008, 15:16
Rufname:

Listenfeld auslesen,Daten berechnen und in 2. Liste einlesen - Listenfeld auslesen,Daten berechnen und in 2. Liste einlesen

Nach oben
       Version: Office 2003

Hallo ihr,

Ich habe folgendes Problem. Ich bin blutiger Anfänger in diesem Bereich und tue mich gerade schwer. Folgendes Problem:

Ich habe ein Formular in dem über ein Kombinationsfeld der Name eines Rezeptes ausgewählt wird und ein Listenfeld in dem alle zugehörigen und die prozentual enthaltene Menge anhand des in dem Kombinationsfeld ausgewählten Eintrages aufgeführt sind.
Das passiert hierüber:
Code:
Private Sub Kombinationsfeld0_AfterUpdate()
    Me!Liste12.Visible = True
    Me!Liste12.RowSource = "SELECT Name, Menge " & _
                             "FROM Abfrage_Liste_tab_protokoll " & _
                            "WHERE IDRezept = " & _
                       "Forms![Frm_Herstellungsprotokoll]![Kombinationsfeld0]"
    Me!Liste12.Requery
End Sub
Außerdem wird in einem Textfeld angegeben, wie viel ich davon herstellen will.
Ich will jetzt, dass er mir alle im Listenfeld aufgeführten Werte ausliest, den entsprechenden Wert berechnet und das Ergebnis der berechnung für alle zutaten in einem 2. Listenfeld einträgt.
Beispiel:
Ich habe ein Rezept X mit den Zutaten 1,2 und 3. 1 ist zu 40% und die beiden anderen zu jeweils 30% enthalten. (Zutaten und die Angaben in % sind Inhalt des ersten Listenfeldes)
Ich will 1000g (was im Textfeld stehen würde) vom Rezept X herstellen.
Das heißt ich hätte gern im 2. Listenfeld stehen, dass Zutat 1 400g, sowie 2 und 3 mit jeweils 300g enthalten sind.
Es soll also im Prinzip das gleiche drin stehen nur eben anstatt dem Wert in % der entsprechende Wert anhand der Angabe im Textfeld.
Wie sähe der Code dafür aus?

Hoffe ich konnte mich eingermaßen klar ausdrücken. Falls benötigt, könnte ich auch einen Screenie beilegen.

Viele Grüße und danke für eure Mühe,

Stefan
lleopard
IT Datenbankentwickler


Verfasst am:
30. Okt 2008, 16:34
Rufname: leo

AW: Listenfeld auslesen,Daten berechnen und in 2. Liste einl - AW: Listenfeld auslesen,Daten berechnen und in 2. Liste einl

Nach oben
       Version: Office 2003

Hallo Stefan,

erstmal auf ein Wort zu deinem Code, und zwar zu folgender Zeile:
Code:
    Me!Liste12.RowSource = "SELECT Name, Menge " & _
                             "FROM Abfrage_Liste_tab_protokoll " & _
                            "WHERE IDRezept = " & _
                       "Forms![Frm_Herstellungsprotokoll]![Kombinationsfeld0]"
Klar geht das. ABER
- du solltest dir angewöhnen deinen Controls im Formular nachvollziehbare Namen zu geben,
- im rowsource auf sich selbst zu verweisen ist mehr als Redundant!
- übergibt man den wert - auch eine Frage der Übersichtlichkeit - besser an eine Variable und setzt damit dann den SQL-String für einen RowSource zusammen.

Nehmen wir an Forms![Frm_Herstellungsprotokoll]![Kombinationsfeld0] ist Zahl, dann sieht es so aus:
Code:
    Dim cc As Long
   
    cc = Me!Kombinationsfeld0
' oder
    cc = Me!Kombinationsfeld0.Value
In Beiden Fällen erhälst du den aktuellen Wert des Kombinationsfeldes.
Code:
    cc = Nz(Me!Kombinationsfeld0, 0)
Und kannst nun auch prüfen ob es nicht Null ist oder leer...
Code:
    Me!Liste12.RowSource = "SELECT Name, Menge " & _
                             "FROM Abfrage_Liste_tab_protokoll " & _
                            "WHERE IDRezept = " & cc
' Und bei string:
    Dim stg As String
   
    stg = Nz(Me!Kombinationsfeld0, "")
    Me!Liste12.RowSource = "SELECT Name, Menge " & _
                             "FROM Abfrage_Liste_tab_protokoll " & _
                            "WHERE IDRezept = '" & stg & "'"
Soviel also dazu! Wink

Nun zu deiner eigentlichen Frage:
ich stell mir das so vor:
Du wählst das Rezept. Damit ist das Listenfeld gefüllt, das auch die %-Angaben beinhaltet.
Und in dem Feld in dem du dann die Menge eingibst kannst du als Ereignisprozedur "NachAktualisierung" diesen Code hinterlegen:
Code:
    Dim i As Integer
    Dim BenötigteMenge As String
    Dim Menge As Long
   
    With Me!DeineListe1
        'Listeneinträge beginne bei 0, deswegen zählen wir -1
        For i = 0 To .ListCount - 1
            Menge = .Column(1, i)               'Das holt aus deinem RowSource
                                     'Spalte 2 = Menge des jeweiligen Eintrags
            BenötigteMenge = BenötigteMenge & ";" & CStr(Menge * Anteil)
        Next i
    End With
    'ist er damit durch, einfach an DeineListe2 übergeben:
    Me!DeineListe2.RowSource = IIf(BenötigteMenge <> "", _
                                   Mid$(BenötigteMenge, 2), "")
Wichtig: DeineListe2 muß auf Herkunfstyp = Wertliste stehen!!

Fertig.

Gruß Leo

_________________
Gruß Leo

Honnit soit qui mal y pense!
Stefan234
Gast


Verfasst am:
31. Okt 2008, 16:26
Rufname:


AW: Listenfeld auslesen,Daten berechnen und in 2. Liste einl - AW: Listenfeld auslesen,Daten berechnen und in 2. Liste einl

Nach oben
       Version: Office 2003

Stefan234 am 30. Okt 2008 um 16:03 hat folgendes geschrieben:
Ok, schon mal vielen Dank für die Hinweise. Ich werde mal versuchen, das bei mir unterzubringen. Könnte unter Umständen ein wenig dauern. Sollte das funktioniert haben, werd ich das entsprechende Feedback sofort liefern Smile

Ok, hat mir die Richtung gewiesen.
Herzlichen dank.
Das hier läuft jetzt in der Datenbank.
Code:
    Dim i As Integer
    Dim BenötigteMenge As String
    Dim Menge As Long
    Dim Name As String
   
    Me!Liste20.Visible = True
    With Me!Liste12
        For i = 1 To .ListCount - 1
            Menge = .Column(1, i)
            Name = .Column(0, i)
            Anteil = Me!Text10
            BenötigteMenge = BenötigteMenge & ";" & _
                             CStr(Menge / 100 * Anteil) & "g von " & Name
        Next i
    End With
    Me!Liste20.RowSource = IIf(BenötigteMenge <> "", _
                               Mid$(BenötigteMenge, 2), "")
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
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: Bestand berechnen 4 Sachse 821 08. Nov 2004, 14:27
Sachse Bestand berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus einer dat Datei in eine Access Tabelle einlesen! 7 VP 001 8238 26. Okt 2004, 21:57
snurb Daten aus einer dat Datei in eine Access Tabelle einlesen!
Keine neuen Beiträge Access Tabellen & Abfragen: Komment. u Daten in zelle schreiben, Zellenausrichtung festl 2 k@lle 816 06. Okt 2004, 11:49
k@lle Komment. u Daten in zelle schreiben, Zellenausrichtung festl
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2003: Fälligkeitsdatum berechnen 4 Keule 2462 04. Okt 2004, 23:16
Keule Access 2003: Fälligkeitsdatum berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten Trennen 4 Oliver.Giertz 1194 02. Sep 2004, 13:05
Oliver.Giertz Daten Trennen
Keine neuen Beiträge Access Tabellen & Abfragen: Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...) 2 SMArmageddon 2417 01. Sep 2004, 15:07
SMArmageddon Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...)
Keine neuen Beiträge Access Tabellen & Abfragen: Bei"Parameterwert eingeben"Para über Liste auswähl 10 Figo 1008 20. Aug 2004, 12:09
Figo Bei"Parameterwert eingeben"Para über Liste auswähl
Keine neuen Beiträge Access Tabellen & Abfragen: Dropdown Liste funktioniert nicht wie sie soll !!! 8 Panter 2021 27. Jul 2004, 09:28
Panter Dropdown Liste funktioniert nicht wie sie soll !!!
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl der Monate zwischen 2 Daten 2 master_tj 1837 22. Jul 2004, 13:17
master_tj Anzahl der Monate zwischen 2 Daten
Keine neuen Beiträge Access Tabellen & Abfragen: 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen 2 mondi 1015 23. Jun 2004, 10:10
mondi 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: 2 tabellen verknüpfen und daten übergeben 5 mihca 2004 05. Jun 2004, 13:22
mihca 2 tabellen verknüpfen und daten übergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Änderungen an abgefragten Daten vornehmen 1 mimey 1139 28. Mai 2004, 22:06
lothi Änderungen an abgefragten Daten vornehmen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS