Zum Inhalt springen

Access - Endlosformular : Listeninhalt per Funtkion laden


Baret

Empfohlene Beiträge

Hallo,

Ich habe folgendes Problem.

In einer Tabelle sind Fehlerarten wie folgt enthalten:

ID[Zahl] Fehlerart[Text]

1 zu lang

2 zu kurz

3 porös

usw.

Eine weitere Tabelle enthält die Felder Produkt[Text] und Fehlerart[Text].

Im Feld Fehlerart werden die Fehler anhand der Nummer und getrennt durch Strichpunkt gespeichert.

Produkt Fehlerart

Produkt1 1;3

Produkt2 1

Produkt3 2

Produkt4

usw.

Ich möchte im Endlosformular jetzt aber nicht die Nummern sondern die Fehlerbezeichnung in einer Liste anzeigen lassen.

Also bei Produkt1 sollte in einer Liste "zu lang" und "porös" stehen.

Ich habe es durch folgende Funktion in einerm Modul probiert:


Public Function lst_Fehler_Fuellen() As String
Dim str_Fehler As String
If Form_Produkte.txtFehler <> "" Then
str_Fehler = Form_Produkte.txtFehler
Else
Exit Function
End If
Do Until str_Fehler = ""
lst_Fehler_Fuellen = lst_Fehler_Fuellen & Form_Produkte.lst_FehlerArtenGeladen.Column(1, Left(str_Fehler, 1) - 1) & ";"
str_Fehler = Mid(str_Fehler, 3)
Loop
End Function
[/PHP]

Wobei im Endlosformular das Feld "txtFehler" die Fehlernummern enthält(also "1;3") und die Liste "lst_FehlerArtenGeladen" enthält die ID sowie den Namen des Fehlers.

Die Funktion wird als Steuerelementinhalt der geünschten Listbox verwendet.

Ich hoffe ich konnte mein Problem verständlich erklären.

Vielen Dank im Voraus

Lg Baret

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine weitere Tabelle enthält die Felder Produkt[Text] und Fehlerart[Text].

Im Feld Fehlerart werden die Fehler anhand der Nummer und getrennt durch Strichpunkt gespeichert.

Produkt Fehlerart

Produkt1 1;3

Das sieht mir nach einem schlechten Datenbankdesign aus. Hast du die Möglichkeit, das zu korrigieren?

Ich hoffe ich konnte mein Problem verständlich erklären.

Leider nein.

futdhn

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, kann ich ändern.

Es gibt eine Tabelle in der alle möglichen Fehlerarten augelistet sind.

In einer weiteren Tabelle sind alle Produkte vorhanden.

Sollte ein Fehler vorliegen bekommt das Produkt entweder einen oder mehrere Fehler zugewiesen.

Das möchte ich nun im Endlosformular darstellen und ändern können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

dann solltest du eine weitere Tabelle einführen, in der du speicherst, welches Produkt welche Fehler hat, also pro Fehler eines Produkts 1 Zeile.

Dadurch würde das unsägliche Gefrickel entfallen, mit dem du sonst die Fehler auseinanderklamküserst.

Zur Anzeige kannst du dann ein Listenfeld verwenden, dessen Inhalt alle Fehlerarten sind und das Vorhandensein des Fehlers für das Produkt in der neuen Tabelle bestimmt, ob der Eintrag marliert ist oder nicht.

hth

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank für die Antwort...

Ich habe das jetzt versucht so zu lösen ...

So ganz funktionieren tut das Ganze jedoch noch nicht...

Ich habe jetzt die Tabelle welche die Fehlerart und dessen Id beinhaltet.(=tbl_prog_Fehlerarten)

ID Fehlerart

1 Risse

2 Poren

3 zu lang

Und dann die Tabelle welche die Produkte mit den jeweilen Fehler enthält.(=tbl_Produkte_Fehler)

lng_SerienNr Fehler

Prod1 1

Prod1 2

Prod2 1

Die Abfrage dazu sieht folgendermaßen aus:


SELECT tbl_prog_Fehlerarten.Fehlerart
FROM tbl_Produkte_Fehler INNER JOIN tbl_prog_Fehlerarten ON tbl_Produkte_Fehler.FehlerID=tbl_prog_Fehlerarten.ID
WHERE (((tbl_Produkte_Fehler.lng_SerienNr) Like "2199998"));
[/PHP]

In der Liste im Endlosformular gebe ich diesen SQL String als Datenherkunft and, verwende aber statt

[PHP]Like "2199998"

die SerienNr des Datensatzes.

Die Liste bleibt aber anschließend leer.

Vielen Dank im Voraus

Liebe Grüße Baret

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie könnte ich das wie von dir beschrieben lösen?

Das nur die zutreffenden Fehler in der Liste markiert werden, aber alle Fehlerarten in der Liste vorhanden sind?

Der Liste als Datenquelle die Tabelle mit den Fehlerarten zuweisen.

Aber wie löse ich das mit der Markierung?

Und wäre es dann auch möglich, die aktuell ausgewählten Fehlerarten sofort zu speichern?

Edit: Mir ist gerade aufgefallen, dass wenn ich als Datenherkunft die Tabelle mit den Fehlerarten auswähle und anschließend einen Eintrag der Liste selektiere, bei allen Datensätzen diese Markierung übernommen wird. Also wenn ich bei DS1 "Poren" markiere, haben alle anderen Datensätze die selbe Markierung.

Liebe Grüße Baret

Bearbeitet von Baret
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie kann ich in der Liste die Fehler für eine bestimmte SerienNr. ausgeben?

Also ich habe im Endlosformular ein Textfeld welches die SerienNr. enthält.

In einer Tabelle sind die Fehler aufgelistet

SerienNr Fehler

Prod1 Risse

Prod2 zu lang

Prod2 pörös

Prod3 zu kurz

Prod3 Risse

Prod3 pörös

Nun möchte ich, dass in der Liste nur die Fehler mit der SerienNr des Textfeles zu sehen sind.

Vielen Dank im Voraus

Lg Baret

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Abfrage welche ich als Datensatzherkunft verwende sieht zurzeit folgendermaßen aus:

SELECT tbl_Produkte_Fehler.FehlerID FROM tbl_Produkt_Fehler WHERE (((tbl_Produkte_Fehler.lng_SerienNr) Like [Serien_Nr]));

Wobei [serien_Nr] das Textfeld und zugleich der Feldname ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...