Hallo Zusammen, ich bin der Neue und hoffe durch eure Hilfe eine Lösung für mein "banales" Problem zu finden. Eigentlich ganz einfach (dachte ich) aber ich kriege es überhaupt nicht hin und finde keinen einzigen passenden Beitrag im Web.
- Ich habe die Tabelle "Baureihe" mit Spalte "BaureiheID" (Format = Text) und Spalte "Maßnahme" (Format = Text).
- Ich habe ein Formular mit einem ungebundenen Textfeld, in welches ich die "BaureiheID" eingeben möchte.
- In diesem Formular ist auch ein Unterformular eingebettet, welches alle Baureihen und Maßnahmen in der Tabelle "Baureihe" zeigt.
Ich bekomme das Textfeld nicht mit dem Unterformular verbunden, sodass nur die "Maßnahmen" angezeigt werden, die zur entsprechenden Baureihe im Textfeld passen. So schwer kann das doch nicht sein.
Ich habe Access 365 ProPlus. Bitte helft mir, ich verzweifel noch.
Hallo,
normalerweise wird das Unterformular mit dem Hauptformular über die Eiegnschaften "Verknüpfen von/nach" verbunden und nicht über ein Textfeld. Im Hafo zeigt man dann die Felder der Baureihe an.
Dann kann man im Hafo blättern und im Ufo werden automatisch die passenden Maßnahmen angezeigt.
Zum Suchen verwendet an ein extra Feld/Kombinationsfeld das im Hafo die Baureihe sucht und anzeigt.
Zitat"BaureiheID" (Format = Text)
Für eine ID verwendet man im Regelfall eine Zahl (meist Autowert). Texte sind nicht so geeignet.
Zeige mal ein Bild des Beziehungsfensters.
Hallo MzKlMu
die Verbindung eines Kombinationsfeldes mit dem Unterformular war mein erster Ansatz. Den hab ich aber auch nicht hinbekommen. Also geht mein Ansatz Textfeld (statt Kombinationsfeld) mit Unterformular verbinden nicht???
Zitat von: MzKlMu am Mai 04, 2020, 19:17:01
Zitat"BaureiheID" (Format = Text)
Für eine ID verwendet man im Regelfall eine Zahl (meist Autowert). Texte sind nicht so geeignet.
Mein Fehler, der Primärschlüssel ist tatsächlich eine Zahl, ich hab nur die Bezeichnung der Spalte nicht gut gewählt. Werde ich ändern, danke für den Hinweis.
Welches Beziehungsfenster meinst Du? Ich hab doch nur eine einzige Tabelle, ein Formular und ein Unterformular.
Natürlich will ich später mit mehreren Tabellen arbeiten, aber das ist ein anderes Thema. Vorerst will ich es im Kleinen bewerkstelligen um generell zu kapieren wie es geht.
Hallo,
ZitatAlso geht mein Ansatz Textfeld (statt Kombinationsfeld) mit Unterformular verbinden nicht???
doch, das geht:
Schreibe in die UFO-Steuerelement-Eigenschaft "Verknüpfen nach" den Namen des ungebundenen Textfeldes
Aber wie Klaus schon anmerkt, ist das eher eine Krücke denn vernünftige Bedienung.
ZitatVorerst will ich es im Kleinen bewerkstelligen um generell zu kapieren wie es geht.
Dann beschäftige Dich zunächst nicht mit solchen exotischen Sachen, sondern lies u. st. Links 1, 1a und 1b, soll heißen mit Tabellenaufbau und Beziehungen.
Formulare/Berichte kommen später an die Reihe.
Mein eigentliches Projekt besteht mittlerweile aus 25 Tabellen und 4 Formularen mit etlichen Beziehungen. Darin funktioniert bislang alles einwandfrei, bin also kein Vollanfänger aber dennoch sehr weit vom Durchsteiger entfernt. Unsicherheiten hab ich überall dort, wo ich noch keinen Erfolg erzielen konnte, wie im aktuellen Thema.
Also gut, dann gehe ich jetzt einen Schritt zurück und versuche nochmal das Unterformular mit einem Kombinationsfeld in einem Hauptformular zu verknüpfen.
- habe erstellt tblBaureihe mit Primarschlüssel namens "BaureiheID" auf Autowert und Spalte "Baureihe" (=Text)
- habe erstellt tblMassnahme mit Primärschlüssel namens MassnahmeID auf Autowert sowie Spalte "BaureiheID"
- habe Beziehung erstellt zwischen beiden Tabellen über "BaureiheID"
--> funktioniert einwandfrei....bis hier ist alles gut
- habe Formular erstellt mit Unterformular aus tblMassnahme und Kombinationsfeld aus tblBaureihe
- habe im Unterformular-Eigenschaftenblatt der Daten Verknüpfen nach "Baureihe"
- habe im Unterformular-Eigenschaftenblatt der Daten Verknüpfen von "Baureihe"
mit dem Ergebnis, dass wenn ich in die Formularansicht wechsle das Pop-Up "Parameterwert eing..." aufkommt. Ich geb den Parameter ein und die Tabelle stimmt zwar, reagiert aber nicht auf meine Neueinstellung im Kombinationsfeld. Irgendwas hab ich noch falsch und komme nicht weiter.
Hallo,
Du sollt hier auch kein Kombifeld verknüpfen. Das habe ich auch nicht gesagt.
Du brauchst hier ein Hauptformular zur Anzeige der Baureihe und darin ein Unterformular das über die Schlüsselfelder (BaureiheID) der Tabellen (keine Textfeld und kein Kombi) verknüpft wird.
Das Ufo zeigt dann automatisch die passenden Maßnahmen an.
Lege dann im Hafo ein Kombifeld an (ungebunden) und verpasse ihm den Namen "cboBaureihe" und hinterlege im Ereignis "Nach Aktualisierung" des Kombis folgenden Code an:
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[BaureiheID] = " & Me.cboBaureihe
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Für das Kombifeld legst Du eine Abfrage an mit dem Primärschlüssel als erste Spalte und dem Namen der Baureihe als 2. Spalte.
Einstellungen Kombi:
Spaltenzahl: 2
Spaltenbreite: 0cm;5cm
Gebundene Spalte: 1
Du kannst dann im Kombi eine Baureihe mit Klartext auswählen und das Hafo wird auf diese Baureihe positioniert. Das Ufo syncronisiert sich automatisch.
Hallo MzKlMu
vielen Dank für die Hilfestellung, die war jetzt leider zu kompakt. Ich krieg es trotzdem nicht hin, wahrscheinlich weil ich da etwas falsch umsetze. Ich hänge schon hier fest:
Zitat von: MzKlMu am Mai 05, 2020, 10:27:56
Du brauchst hier ein Hauptformular zur Anzeige der Baureihe und darin ein Unterformular das über die Schlüsselfelder (BaureiheID) der Tabellen (keine Textfeld und kein Kombi) verknüpft wird.
.
Ich glaube ich brauch die detaillierte Anleitung für Einsteiger.
Folgendes hab ich gemacht:
1. ein leeres Formular erstellt
2. darin ein Unterformular über Steuerelement erstellt, das Herkunftsobjekt ist tblMassnahme. Jetzt hab ich alle Massnahmen und Baureihen in der Tabellenansicht, passt soweit.
3. Im Ufo hab ich im Eigenschaftsblatt / Daten / Verknüpfen nach "BaureiheID" und Verknüpfen von "BaureiheID" eingestellt. Jetzt stimmt die Tabelle nicht mehr, was ich auch erwartet habe.
4. Habe dann ein ungebundenes Kombifeld erstellt mit Beschriftung "cboBaureihe" und Datensatzherkunft SELECT [tblBaureihe].[BaureiheID] FROM tblBaureihe;
5. Im Eigenschaftenblatt des Kombifeldes wähle ich nach Aktualisierung, sodass im Pop-Up der Code-Generator ausgewählt werden kann. Deinen Code hab ich dann ins VBA reinkopiert. Das sieht jetzt so aus:
Option Compare Database
Private Sub Kombinationsfeld14_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[BaureiheID] = " & Me.cboBaureihe
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub6. Dann habe ich den Abfrageentwurf "qryBaureihe" gemacht und dabei tblBaureihe ausgewählt. Primärschlüssel ist "BaureiheID" und Namen der Baureihe als 2. Spalte.
Wenn ich jetzt in der Formularansicht etwas im Kombifeld auswählen will, öffnet sich der Debugger:
"Fehler beim Kompilieren. Methode oder Datenbankobjekt nicht gefunden."
und .cboBaureihe ist dann blau hinterlegt / markiert
Mit Deinen Einstellungen für das Kombifeld kommt keine Fehlemeldung, aber das Feld läßt sich dann nicht mehr öffnen.
Wo ist der Wurm drin?
Hallo,
ZitatWo ist der Wurm drin?
In allem, da ist gar nix richtig.
Zu 1)
Das Hafo darf nicht leer sein, das muss die Tabelle "Baureihen" als Datenherkunft haben und die Daten der Baureihen als je ein Datensatz anzeigen.
Zu 2)
Ein Unterformaule ist ein ganz normales Formular das als Unterformular in das Hafo mit der Maus gezogen wird. Herkunftsobjekt tblMassnahme ist falsch. Herkunftsobjekt ist das normal erstellte Formular (nicht das Hafo). Du hast also im Datenbankfenster diese beiden Formulare stehen.
ZitatJetzt hab ich alle Massnahmen und Baureihen in der Tabellenansicht, passt soweit.
Nein, das kann nicht passen. In der Tabelle Maßnahmen können (außer dem Fremdschlüsselfeld) keine Daten der Baureihe sein.
Zu 3)
Das geht bei Deinem Aufbau der falsch ist nicht.
4, 5 und 6 sind so nicht möglich.
Wenn Du Baureihen hast und zu gehörende Maßnahmen, dann muss es doch mindestens diese beiden Tabellen geben. Ich fürchte, da fehlt auch noch weitere Tabellen. Was sind denn dass für Maßnahmen die einer Baureihe zugeordnet werden.
Zeige bitte mal ein Beziehungsbild mit den beiden Tabellen auf dem man auch die Feldnamen der Tabellen vollständig sieht. Ich mache Dir ein Beispiel.
Hallo MzKlMu
herzlichen Dank für Deine Mühe. Ich dachte mir schon, dass ich was grundsätzliches falsch gemacht habe, deswegen habe ich mein Vorgehen so detailliert beschrieben.
Jetzt muss ich sagen, dass ich grad vom Glauben abfalle. Alle meine Formulare wurden bislang so erstellt (also als leeres Formular), dann manuell von mir befüllt, sodass ich jetzt ein dickes Konstrukt habe, welches tatsächlich so funktioniert, wie erhofft. Darin habe ich dutzende Steuerelemente drin, die auch alle einwandfrei (zumindest aus meiner Sicht) funktionieren. Effektiv gesehen werde ich dafür wahrscheinlich auf dem Scheiterhaufen landen, weil da wohl nicht nur der Wurm drin ist, sondern alles falsch ist (und es funktioniert trotzdem, zumindest für meine Anfängeransprüche). Ich werde es natürlich komplett überarbeiten. Ich dachte nicht, dass ein leeres Formular befüllt mit Steuerelementen immer noch als "Leeres Formular" betrachtet wird.
Zitat von: MzKlMu am Mai 05, 2020, 17:37:10
Nein, das kann nicht passen. In der Tabelle Maßnahmen können (außer dem Fremdschlüsselfeld) keine Daten der Baureihe sein.
Zu 3)
Das geht bei Deinem Aufbau der falsch ist nicht.
4, 5 und 6 sind so nicht möglich.
Ich schwöre, dem ist so. Deswegen ist mir nicht in den Sinn gekommen, dass ich so einen großen Fehler gemacht habe. Habe allerdings vergessen zu erwähnen, dass ich über die Feldliste den Primärschlüssel BaureiheID und die Spalte Baureihe reingezogen habe. Die Tabelle ist da, sowie die ID und die Bezeichnung.
Habe ein Bild der Beziehung mal hochgeladen. Da steckt aktuell nicht viel dahinter, da das noch meine Lernplattform ist. Aber so ähnlich wird es später sein. Übliche Maßnahmen sind Reparatur, Inspektion, Austausch, Überprüfung, etc.
Hab jetzt über den Formularassistenten die Formulare "frmBaureihe" sowie "frmMassnahme" erstellt. In "frmBaureihe" hab ich das Ufo "frmMassnahme" einfach rein gezogen. Über den Datensatz kann ich jetzt auswählen und es filtert wie gewünscht. Funktionierte auf Anhieb, vielen Dank für den Hinweis. Kaum macht man's richtig, geht's ;)
Ich werde jetzt noch versuchen das Thema mit dem Textfeld zu realisieren. Jedes Deiner Feedbacks ist hilfreich für mich, vielen Dank!!!
Hallo,
ZitatIch dachte nicht, dass ein leeres Formular befüllt mit Steuerelementen immer noch als "Leeres Formular" betrachtet wird.
Ein leeres Formular enthält für mich nix. Wenn da Steuerelemente drin sind, ist es nicht mehr leer.
Zu den Beziehungen:
Das geht so nicht. Dir fehlt noch eine Tabelle zur Zuordnung der Maßnahmen zur Baureihe. In diese Tabelle kommt dann ein Fremdschlüssel (FS) zur Baureihe und ein FS zur Maßnahme. Da nennt sich dann n:m Beziehung zu der 3 Tabellen (mit 2 1:n Beziehungen) erforderlich sind. Die Maßmahmentabelle enthält dann
alle Maßnahmen die vorkommen können (Reparatur, Inspektion, Austausch, Überprüfung, etc.) als je ein Datensatz mit einem Primärschlüsselfeld.
Die Felder Startdatum und Enddatum müssen dann in die neue Zuordnungstabelle.
Was steht im Feld Bezeichnung ?
Hallo,
@Klaus
ZitatEin leeres Formular enthält für mich nix. Wenn da Steuerelemente drin sind, ist es nicht mehr leer.
Na ja, wenn die alle ungebunden sind, wird trotzdem
nix angezeigt ;)
@Denis
Als Anlage eine allgemeine Umsetzung von dem was Klaus dir erklärt hat.
Mit dem Formularen kannst du die Zwischentabelle (n:m) von beiden Seiten
aus befüllen. Du musst nur die Benamsung*) und die Daten an deine DB
anpassen. Für die Beispieldaten habe ich die Beziehung von Artikeln zu
Lieferanten herangezogen.
gruss ekkehard
*) Bis auf die UFo- und Kombicontrols haben alle Steuerelemente KEINE
ordentliche Benennung; - bei Übernahme, in welcher Form auch immer,
unbedingt ändern!
Hallo Zusammen,
vielen herzlichen Dank für die Unterstützung.
Tatsächlich ist die Lösung wie Ihr sie beschrieben habt sehr einfach umzusetzen, sofern man die Primär- und Fremdschlüssel richtig gesetzt hat. Hab es jetzt so aufgebaut wie MzKlMu beschrieben hat und es funktioniert einwandfrei.
Zitat von: MzKlMu am Mai 06, 2020, 11:41:45
Was steht im Feld Bezeichnung ?
Die "Bezeichnung" ist der Name der Maßnahme (z.B. Reparatur, Inspektion, etc.). Es gibt insg. 5 definierte Bezeichnungen.
Die "Maßnahme" ist die detaillierte Beschreibung der Aktivität (z.B. Prüfe den roten Schlauch auf Versprödungen). Davon gibt es unendlich viele und müssen von Fall zu Fall neu definiert werden. Wie ich die jetzt in das neue Konstrukt rein bekomme weiß ich noch nicht genau, aber lasst mich raten: ich brauche eine neue Tabelle, richtig? Diesen neuen Primärschlüssel bau ich dann als neue Spalte in meine Zuordnungstabelle als Fremdschlüssel mit ein, so wie die anderen beiden Fremdschlüssel auch, richtig?
Die aktuelle Beziehung hab ich beigefügt. Den Umbau mach ich dann anschließend, wenn Ihr der Meinung seid, das ich jetzt aufm richtigen Weg bin.
Besten Dank vorab und Gruß
Hallo,
so ist es richtig.
Nur noch eine Frage, was ist der Unterschied zwischen Maßnahme und Bezeichnung ?
Ganz platt gesagt ist die Bezeichnung ein Wort (kurzer Text) und die Maßnahme mehrere Sätze (langer Text) mit Leerstellen, Zahlen und Buchstaben.
Über die Bezeichnung werden dann später diverse Aktivitätsreporte definiert, welcher unterschiedlich aufgebaut sind (z.B. der Inspektionsreport beinhaltet keine Artikel/Ersatzteile für die Reparatur, der Reparaturreport aber sehr wohl, bei einer Wartung kommen dann noch Prüfanweisungen mit Soll- und gemessenen Istwerten dazu, usw.).
Die Maßnahme ist der technische Leitfaden für den Techniker vor Ort der es dann umsetzen muss, damit er detailliert weiß, was konkret zu tun ist.
Danke. Ich habe es gemäß Beziehung im Anhang umgesetzt. Jetzt klappt es ganz gut. Aktuelle Beziehungen siehe Anhang.
Jetzt komme ich wieder zurück zu meiner eingehenden Frage. Wie bekomme ich ein Textfeld im jetzt neu generierten Hauptformular mit dem Ufo verbunden.
Hintergrund: Ich gebe die Baureihe über ein Textfeld (Steuerelement) vor. Den Wert hole ich mir per DomWert aus einer anderen Tabelle. Das Ufo soll jetzt auf den angezeigten DomWert exakt so filtern, wie er es in meinem aktuell bestehenden Konstrukt auch tut. Krieg ich das mit eurer Hilfe hin?
Hallo,
Dein Vorhaben ist doch überflüssig, Du brauchst kein Textfeld mehr. Hafo und Ufo sind über die Schlüsselfelder verbunden und das Ufo zeigt die passenden Datensätze zur Baureihe an.
Was Du im Hafo brauchst ist ein Feld zum Suchen einer Baureihe und dazu verwendet man am Besten ein Kombifeld das auf die gewünschte Baureihe positioniert.
Wo kommt denn jetzt plötzlich die Aktivität her ?
Was steht da drin ?
Was ist der Unterschied zwischen Maßnahme und Aktivität ?
Hallo,
@Klaus
ZitatWo kommt denn jetzt plötzlich die Aktivität her ?
Vermutlich eine (falsch eingebaute) Eigenschaft der Massnahme.
@Denis
Wenn das so ist, also dass zu einer Massnahme mehrere Aktivitäten gehören
können, brauchst du eine weitere n:m-Tabelle zwischen "tblMassnahmen" und
"tblAktivitaeten". Deren PK wird dann zum einzigen FK (ausser der Baureihe
natürlich) in "tblZuordnung". Über diesen bekommst du auch immer die
Massnahme und die Aktivität.
gruss ekkehard
ZitatWo kommt denn jetzt plötzlich die Aktivität her ?
Die habe ich eingebaut, nachdem Klaus mich bestätigt hat:
Zitat von: MzKlMu am Mai 07, 2020, 17:47:13
Hallo, so ist es richtig.
Glaubt mir, ich brauche das Textfeld wirklich. Alles was wir hier besprechen ist nur ein winzig kleiner Teil eines anderen Formulars. Kurz zusammengefasst:
1. Techniker gibt im Formular eine Seriennummer ein
2. Das Formular befüllt dann automatisch alle relevanten unveränderbaren Felder mit Hilfe etlicher anderer Tabellen welche Ihr nicht kennt... die spielen hier auch keine Rolle, die sind nicht mein Problem.
3. Techniker führt alle Tests gemäß Vorgabe durch und trägt die Ergebnisse im Formular ein (ausschließlich Ja, Nein, und Zahlenwerte)
4.
Jetzt kommt der Teil, an dem wir gerade arbeiten: Anhand der Seriennummer im Anfang sollen hier die konkreten Maßnahmen und detaillierten Aktivitäten zur Baureihe stehen, welche sich aus der Seriennummer ergeben (aus einer anderen Tabelle...das funktioniert aber alles schon einwandfrei). Ich will nicht in einem Kombinationsfeld erst suchen müssen, sondern über z.B. DOMWERT im Textfeld eine exakte Vorgabe erfassen, damit man menschliche Fehler vor Ort ausschließen kann. Es wäre wirklich fatal wenn der Techniker versehentlich einen falschen Wert aus dem Kombinationsfeld zieht und dann falsche Maßnahmen ergreift.
->Deswegen
unveränderliche Vorgabe per Textfeld.
Aber laßt uns die Seriennummer hier bitte nicht mit ins Boot nehmen. Das schaffe ich dann schon, sofern ich das eigentliche Problem hier gelöst bekomme.
Außerdem will ich es auch für mein eigenes Verständnis umgesetzt bekommen, ich bin hartnäckig und will das können. Letztendlich werde ich die ganze DB ohnehin neu basteln. Ich lerne hier viele wichtige Grundlagen, Danke dafür!
Hallo,
sorry, aber ich habe doch nichts mit der Aktivät bestätigt.
Ob das jetzt auch mit der Aktivität richtig ist muss man doch jetzt auch erst mal prüfen.
Und dass Du das Feld brauchst wird ja nicht bestritten, die Frage ist nur wo und wie.
Daher musst Du mal beschreiben was die Aktivität bedeutet.
Von meinen diesbezüglichen Fragen hast Du keine einzige beantortet.
ZitatWo kommt denn jetzt plötzlich die Aktivität her ?
Was steht da drin ?
Was ist der Unterschied zwischen Maßnahme und Aktivität ?
Nachtrag, habe ich vorhin vergessen :
Das Textfeld ist definitiv überflüssig und nur eine zusätzliche Fehlerquelle.
Ich meinte vorhin das Feld Aktivität.
Hallo Denis,
Zu 4.
Wo ist da das Problem und wozu dann das Textfeld?
Wenn die Massnahmen für eine Baureihe feststehen, stehen die auch
in "tblZuordnung". Dann brauchst du doch nur das UFo in dem die Werte
eingegeben werden so einzurichten, dass die zugeordneten Massnahmen
angezeigt werden und keine neuen DS angelegt werden können.
gruss ekkehard
Hallo Klaus,
tut mir leid, ich war mir sicher, dass ich es in meinen vorherigen Erklärungen ausreichend beschrieben habe:
Zitat von: Denis am Mai 07, 2020, 17:27:19
Die "Bezeichnung" ist der Name der Maßnahme (z.B. Reparatur, Inspektion, etc.). Es gibt insg. 5 definierte Bezeichnungen.
Die "Maßnahme" ist die detaillierte Beschreibung der Aktivität (z.B. Prüfe den roten Schlauch auf Versprödungen). Davon gibt es unendlich viele und müssen von Fall zu Fall neu definiert werden. Wie ich die jetzt in das neue Konstrukt rein bekomme weiß ich noch nicht genau, aber lasst mich raten: ich brauche eine neue Tabelle, richtig?
Wie auch immer, ich erklär jetzt die drei Fragen gerne detaillierter, damit wir eine Lösung erarbeiten können:
- Wo kommt denn jetzt plötzlich die Aktivität her? Die habe ich als Tabelle neu eingebaut. Siehe oben mein Zitat, ich hab gefragt ob mein geplantes Vorhaben richtig ist und nach Deiner Antwort hab ich das dann auch so umgesetzt. Also eine neue Tabelle angelegt, PS und FS berücksichtigt und mit den Beziehungen dann entsprechend verknüpft.
Was steht da drin? z.B. prüfe den roten Schlauch auf Versprödungen (siehe oben). Da stehen ganz konkrete Maßnahmen drin, was im Detail zu tun ist. Quasi die Anleitung oder ein How to do für den Durchführer.
Was ist der Unterschied zwischen Maßnahme und Aktivität? Die "Maßnahme" ist die detaillierte Beschreibung der Aktivität (siehe oben). Die Maßnahme ist ein Wort. Die Aktivität ist ein Satz oder mehrere Sätze. Ich unterteile über die Maßnahme die Form des späteren Berichtes bzw. auch des Formulars. Beispiel: In einem Fall wird Material benötigt, im anderen Fall nicht , d.h. der Bericht sieht nachher ganz anders aus, ist kürzer und berücksichtigt keine Artikelnummern. Im Gegensatz dazu ist die Aktivität immer eine längere Beschreibung und wird in allen Berichten und Formularen die gleiche Form haben aber meistens einen anderen Inhalt, weil es keine Reparaturen gibt, die identisch sind, sondern immer erst individuell erarbeitet werden müssen. Die Aktivität wird vom Vorarbeiter beschrieben und der Monteur nimmt die Anleitung mit und führt aus.
1. Beispiel:
- Maßnahme: Inspektion
- Aktivität: Prüfe den Schlauch auch Versprödung
2. Beispiel:
- Maßnahme: Reparatur
- Aktivität: Löse Schraube 12 und 13 und ersetze Ventil "alt" gegen Ventil "neu". Schraube 13 wird bei Ventil "neu" nicht mehr benötigt.
Am Ende des Projektes kann dann zwischen verschiedenen Berichten und Formularen gewählt werden (Reparatur, Inspektion, Wartung, Sicherheitstechnische Kontrolle, etc.). Das ganze wird ein Tool für den Techniker im Außendienst.
Ist Dir der Zusammenhang jetzt etwas klarer?
Hallo,
wenn ich die Texte zur Aktivität lese, so sind das doch Freitexte, also Einträge die zu jeder Maßnahme individuell eingetragen werden.
Oder kann dieser Text:
ZitatLöse Schraube 12 und 13 und ersetze Ventil "alt" gegen Ventil "neu". Schraube 13 wird bei Ventil "neu" nicht mehr benötigt.
exakt so noch mal vorkommen ?
Wenn nein, ist die Tabelle für die Aktivität überflüssig und in das Feld für die Aktivität wird zu einem Freitextfeld ohne Beziehung.
Wenn ja, so ist das so falsch.
Bitte die Aktivität genauer erklären.
Hallo Denis,
ZitatWenn nein, ist die Tabelle für die Aktivität überflüssig und in das Feld für die Aktivität wird zu einem Freitextfeld ohne Beziehung.
Klaus meint das jetzige Feld mit dem FK in der "tblZuordnung". Um eine
Massnahme, die einer Baureihe zugeordnet ist, näher zu beschreiben
(ohne feste Vorgaben) machst du daraus ein einfaches Textfeld.
gruss ekkehard
Hallo Zusammen,
schwierig, da vermischt, ich habe 3 verschiedene Situationen:
1.) Die Aktivität ist für eine bestimmte Baureihe (5 unterschiedliche Anlagentypen, z.B. Bagger, Kran, Planierraupe) mit einem Start- und Enddatum vorgesehen. Zu einer Baureihe gehören bis zu ~ 100 Anlagen (mit verschiedenen Artikelnummern), deswegen kann es durchaus ein Jahr dauern, bis diese Aktivität an allen Anlagen der Baureihe erledigt ist. Natürlich muss diese Aktivität in einer Tabelle für viele Formulare und Berichte hinterlegt sein.
2.) Später kommt dasselbe für eine ganz bestimmte Artikelnummer (z.B. nur kleine Bagger) dazu, ebenfalls mit einem Start - und Enddatum. Auch hier kann es durchaus ein Jahr dauern, bis die Aktivität für diese Artikelnummer an allen Anlagen erledigt ist. Natürlich muss auch diese Aktivität in einer Tabelle für viele Formulare und Berichte hinterlegt sein.
2. Außerdem muss ich das ganze dann noch ausweiten auf ganz bestimmte Anlagen, also wirklich seriennummernspezifisch (z.B. nur dieser eine ganz bestimmte Bagger). Nur in diesem Fall liegst Du richtig, dann ist diese eine Aktivität an dieser einen Anlage erledigt und kommt auch nirgends woanders mehr vor. Es macht Sinn, in diesem Fall diese Aktivität auch in einer Tabelle für das eine Formular und den einen Bericht zu hinterlegen, dann muss ich nicht alles neues erfinden, sondern gehe den gleichen Weg wie bei den anderen Formularen und Berichten auch.
Aufgrund einer bestehenden Nachweispflicht muss ich natürlich jede der Aktivitäten irgendwie archivieren (z.B. in dieser Datenbank) um im Falle einer Prüfung (Audit zum Qualitätsmanagement ) nachweisen zu können, was vorgegeben war und was dann von wem und wann tatsächlich gemacht wurde.
Bagger usw. sind wirklich nur Beispiele. Es geht in meinem Projekt nicht um Fahrzeuge o.ä.
Ist es euch jetzt etwas klarer?
Hallo,
nein, das ist keineswegs klarer.
Meine Frage von oben ist nicht beantwortet.
Oder kann dieser Text:
ZitatLöse Schraube 12 und 13 und ersetze Ventil "alt" gegen Ventil "neu". Schraube 13 wird bei Ventil "neu" nicht mehr benötigt.
exakt so noch mal vorkommen ?
Ist die Aktivität nun ein Freitext oder nicht.
ZitatBagger usw. sind wirklich nur Beispiele. Es geht in meinem Projekt nicht um Fahrzeuge o.ä.
Von solchen fiktiven Beispiel halte ich gar nix. Schildere die realen Gegebenheiten.
Meist lassen sich diese fiktiven Beispiel in der Realität dann nicht anwenden. Da spreche ich aus Erfahrung.
Was verstehst Du unter Freitextfeld? Meinst Du das Steuerelement "Textfeld"? Dann nein, das möchte ich möglichst nicht verwenden für die Aktivität.
In meiner Tabelle ist die Aktivität definiert als "Langer Text". Wenn ich ein Formular daraus mache, dann taucht es als Nur-Text-Feld im Formular auf und damit bin ich zufrieden.
BITTE lass uns beim Bagger bleiben. Ich will nicht unsere komplexen Produktreihen erklären, bei denen mit ziemlicher Sicherheit fast keiner was anfangen kann. Wir handeln extrem erklärungsbedürftige Nischenprodukte. Die realen Gegebenheiten sind mit dem Baggerbeispiel zu 100% vergleichbar.
Zitat von: MzKlMu am Mai 15, 2020, 09:05:58
Oder kann dieser Text:
ZitatLöse Schraube 12 und 13 und ersetze Ventil "alt" gegen Ventil "neu". Schraube 13 wird bei Ventil "neu" nicht mehr benötigt.
exakt so noch mal vorkommen ?
Ist die Aktivität nun ein Freitext oder nicht.
In der Tabelle wird dieser Text nur einmal vorkommen aber wird in mehreren Formularen und Berichten auftauchen.
Hallo,
ein Freitext ist ein Text der sich so nicht wiederholt.
Lies einfach meine Frage nochmal.
Versuch doch mal einfach mit ja oder nein zu antworten.
Ja ist ein Freitext.
Hallo,
dann ist eine extra Tabelle für die Aktivitäten überflüssig.
Das Langtextfeld kommt direkt in die Tabelle "tblZuordnung".
Alles klar, hab das so arrangiert und es funktioniert einwandfrei.
Jetzt ist mein eigentliches Problem aber noch immer nicht erledigt.
Zitat von: Beaker s.a. am Mai 11, 2020, 18:13:40
Zu 4.
Wo ist da das Problem und wozu dann das Textfeld?
Wenn die Massnahmen für eine Baureihe feststehen, stehen die auch
in "tblZuordnung". Dann brauchst du doch nur das UFo in dem die Werte
eingegeben werden so einzurichten, dass die zugeordneten Massnahmen
angezeigt werden und keine neuen DS angelegt werden können.
gruss ekkehard
Kannst Du mir erklären, wie das geht? Momentan muss ich noch im Datensatz wühlen, bis ich die richtige Baureihe gefunden habe. Ich will, dass es den richtigen Datensatz gleich anzeigt.
Hallo Denis,
Zum Finden einer Baureihe nimmst du am Besten ein ungebundenes Kombi
im HFo "Baureihen",
- DS-Herkunft:
SELECT BaureiheID, FeldInDemDuSuchenWillst, WeitereFelderFallsGewuenscht
FROM tblBaureihen
ORDER BY FeldInDemDuSuchenWillst
Spaltenzahl: mind. 2
Spaltenbreiten: 0cm; weitere wie gewünscht
gebundene Spalte: 1
Das Ereignis Nach Aktualisierung stellst du auf "Ereignisprozedur" und fügst
folgenden Code in das Formularmodul ein
Private Sub NameDeinesKombis_AfterUpdate()
Me.Recordset.FindFirst "BaureiheID = " & Me.NameDeinesKombis
End Sub
Willst du nach Teilstrings im "FeldInDemDuSuchenWillst" suchen, geht es
natürlich besser mit einem normalen Textfeld. Der Code lautet dann
Private Sub NameDeinesTextfeldes_AfterUpdate()
Me.Recordset.FindFirst "FeldInDemDuSuchenWillst LIKE *" & Me.NameDeinesTextfeldes & "*"
End Sub
gruss ekkehard
Vielen Dank, den ersten Teil hab ich hingekriegt. Funktioniert super!
Mein Code für die Datensatzherkuft sieht jetzt so aus:
SELECT [tblBaureihe].[BaureiheID], [tblBaureihe].[Baureihe]
FROM tblBaureihe
ORDER BY [BaureiheID]
Den zweiten Teil krieg ich überhaupt nicht zum laufen. Kommt immer der Debugger. Muss ich das Kombi vorher löschen und nur mit Textfeld arbeiten?
Hallo,
zeige bitte den Code bei dem der Debugger kommt. Wie sonst soll man einen Fehler erkennen ?
Hallo Denis,
ZitatDen zweiten Teil krieg ich überhaupt nicht zum laufen. Kommt immer der Debugger. Muss ich das Kombi vorher löschen und nur mit Textfeld arbeiten?
Normal nicht, die funktionieren ja völlig unabhängig voneinander.
Ansonsten folge Klaus' Rat und zeige den Code.
gruss ekkehard
Hallo Zusammen,
Screenshot meiner Tabelle mit Laufzeitfehler 3077 - fehlender Operator im Ausdruck. Weiß nur nicht was ihm fehlt...
Hallo,
du sollst nicht die Fehlermeldung screenshotten (was für ein Wort ??? ) sondern den Code mit C&P posten.
Hallo Denis,
ZitatWeiß nur nicht was ihm fehlt...
Aber ich :)
Da ist leider ein Fehler im gezeigten Code >:(, - da fehlen die ' vor
dem ersten * und nach dem zweiten *
Me.Recordset.FindFirst "FeldInDemDuSuchenWillst LIKE '*" & Me.NameDeinesTextfeldes & "*'""FeldInDemDuSuchenWillst" musst du natürlich durch den richtigen
Namen deines Textfeldes ersetzen.
gruss ekkehard
Hallo Beaker,
also mit der Korrektur bekomme ich keinen Debugger, aber es funktioniert immer noch nicht richtig. Mit jedem Eintrag ins Textfeld springt mir das ganze einfach nur in den nächsten Datensatz (wegen Enter). Liegt es evtl daran, dass ich es eben NICHT manuell eingeben darf, sondern so wie ich es auch später gerne lösen möchte, nämlich mit einem DOMWERT autom. reinholen soll?
Meine Codes sehen jetzt so aus:
Private Sub Kombinationsfeld13_AfterUpdate()
Me.Recordset.FindFirst "BaureiheID = " & Me.Kombinationsfeld13
End Sub
-> der funktioniert. Sobald der untere dazu kommt aber nicht mehr
Private Sub Text17_AfterUpdate()
Me.Recordset.FindFirst "BaureiheID LIKE '*" & Me.Text17 & "*'"
End Sub
-> der funktioniert gar nicht.
Muss der Code für das Kombi drin bleiben oder muss ich den dann löschen? Ob mit oder ohne, beides geht momentan nicht.
Hallo,
Zitat
Me.Recordset.FindFirst "BaureiheID LIKE '*" & Me.Text17 & "*'"
da würde ich auch nicht mehr funktionieren... 8)
Lies mal den Code selber so , als wärst Du die CPU , und tue das, was da steht...
Als Auflösung:
Me.Recordset.FindFirst "Baureihe_Bezeichnung LIKE '*" & Me.Text17 & "*'"
falls es "Baureihe_Bezeichnung" als Feld mit Datentyp TEXT im Recordset (Datenherkunft) des Forms gibt.
(und ich habe jetzt nicht den gesamten Thread durchgelesen).
Vielen Dank DF6GL,
hatte ne geistige Auszeit, was auch dringend nötig war.
Deine Lösung war der Tipp der mein Problem abgeschlossen hat:
Zitat von: DF6GL am Mai 29, 2020, 17:09:05Als Auflösung:
Me.Recordset.FindFirst "Baureihe_Bezeichnung LIKE '*" & Me.Text17 & "*'"
Auch die restlichen Tipps von euch allen haben mich schließlich hierher geführt.
Endlich funktioniert meine Hauptformular exakt so wie ich es mir vorgestellt habe.
Herzlichen Dank an alle die mich mit viel Geduld unterstützt haben, insbesondere auch MzKlMu und Beaker.
Meine anderen Stolpersteine werde ich neu adressieren, damit hier nix vermischt wird.
Der Beitrag kann jetzt geschlossen werden! Danke nochmal!
Neuigkeiten: Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!
P.S.: Hab jetzt die ganze Page abgesucht...aber den Knopf leider nicht gefunden