Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Access - Endlosformular : Listeninhalt per Funtkion laden

Empfohlene Antworten

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

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

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.

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

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

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

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

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.

  • 2 Wochen später...

Wollte euch nur mitteilen, dass ich es geschafft habe...

Allerdings über den Umweg, dass ich das Ergebnis nicht in einer Liste sondern in einer mehrzeiligen Textbox darstelle!

Vielen Dank nochmal für eure Hilfe

Lg Baret

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.