Hallo,
ich muss noch einmal das Thema Felder un/sichtbar aufnehmen. DF6GL und Optiplex hatten mir schon einmal zu diesen Thema geantwortet. Mit der Antwort von DF6GL bin ich nicht so richtig klar gekommen.
Nun habe Ich es selber versucht mit Select Case bei Änderung, und habe alles eingeklimpert und muss jetzt beim Starten feststellen das, das was Ich will nicht gemacht wird. Habe mal einen Auszug aus meiner DB angehangen, vielleicht kann mir einer ein Tipp geben warum meine Anforderung nicht erfüllt wird. ???
LG
[Anhang gelöscht durch Administrator]
Hallo Uwe01
Möchtes du in Abhängigkeit der Feldes "Type" Felder ein / ausblenden, wäre eine Möglichkeit es so zu machen.
Dim stLinkIndex as String
stLinkIndex =Me.Type
If stLinkIndex = Zugmaschine then
'Deine Felder ausblenden
ElseIf stLinkIndex = Motorwagen then
'Deine Felder ausblenden
End if
Gruß Stefan
Hallo Stefan,
danke dir für deine Antwort, aber ich kann mit "stLinkIndex" nicht wirklich etwas anfangen. Ich finde auch nichts in ein Buch darüber. Nun weiß Ich auch nicht wie es da den auch im VBA weiter geht. Hast du da vielleicht mal ein Beispiel.
LG
Hallo,
wenn Du Dir mal anschaust, was in "Typ" drinsteht und was Du in case vergleichst, wirst Du sehen, dass Du z.B. die "Zugmaschiene" mit einer Zahl vergleichst.
Ist es gewollt, dass in Typ "Zugmaschiene" gespeichert wird und nicht die id vom dazupassenden Datensatz?
Entweder Du passt das an oder musst die case-Abfrage umformulieren.
Harald
PS:
Das Ausblenden des Stop-Schilds führte bei mir zum Programm-Abbruch. Nur mit dem taskmanager kam ich raus.
"Kennzeichen" ist als Feld in der Abfrage nicht vorhanden
Hallo,
ich empfehle , Folgendes dringend zu ändern:
-- in den Namen der Tabellenfelder KEINE SONDER-/LEERZEICHEN zu verwenden ("-","/"," ")
-- im Code die Referenz auf das akt. Formular mit "Me" zu bezeichnen
-- im Code auch diegenigen Namen(sbezeichnungen) zu verwenden, die es auch tatsächlich gibt.
-- sicherheitshalber auf Umlaute zu verzichten
-- wie schon angesprochen, mit den ID-Werten zu operieren (Typ in der Tabelle "Fahrzeuge/Wechselbrückenverwaltung" als Fremdschlüsselfeld (Zahl, Long) ausführen. (Auch hier, wie oben gesagt, auf Sonderzeichen verzichten!). Erfordert Anpassung der Einstellungen des Auswahl-Kombifeldes für "Typ"
-- im Beziehungsfenster eine Beziehung zwischen den beiden Tabellen herstellen, wenn möglich (und das sollte hier der Fall sein) mit ref. Integrität
-- keine veralteten DoCmd.DoMenuItem - Befehle mehr verwenden, auch wenn die der Assistent immer noch generiert.
-- Prüfen der einzelnen Felder auf Atomisierung (Ausdröselung und Auslagerung von zusammengesetzten Bezeichnungen in extra Tabellen (analog zu "Typ")
-- letztendlich sich überlegen, ob solche Timer-Ereignisse für das "Blinken" der Stop-Schaltfläche wirklich nötig sind....
Hey,
Sorry hätte vielleicht das blinken des Stoppschildes rausnehmen sollen (habe eine neue DB eingestellt), das Feld Kennzeichen habe ich raus genommen da es ein Auszug aus einer bestehenden DB ist. Mir geht es ja eigentlich nur um das ein/ausblenden Problem.
Es ist richtig das das ich Case mit einer Zahl vergleiche, denn bei der Zahl handelt es sich um die ID des Typs. Also steht die 1 für Zugmaschine. Bin ich doch der Meinung dass ich es mit der Zahl vergleichen kann, oder bist du der Meinung ich solle es Fahrzeugtyp vergleichen.
Bin für jeden Vorschlag oder Idee dankbar.
LG Uwe01
Hallo Uwe01
stLinkIndex ist eine Variabel die den Inhalt deines Feld "Type" beinhaltet, nun wird über die If Funktion verglichen bei welcher IF Bedingung der Inhalt der Variabel mit der Zugmaschine gleich ist. Wenn das geschieht wird mit dem then Befehl deine Felder im Nachgang ein/aus geblendet.
@bahasu der von dir beschriebene Weg, ist sicher der richtige Weg mit der ID zu Arbeiten nur dann muss @uwe01 in dem Kombifeld mit Colum() arbeiten.
@Df6gl seine Empfehlung sollte natürlich beachtet werden.
Gruß Stefan
Hallo,
das Kombifeld ist falsch ausgeführt, es liefert KEINE Long Integer zurück daher funktioniert auch der Vergleich durch Case nicht!!
Du musst in die Datenherkunft die ID der Herkunftstabelle an die erste Stelle der Abfrage aufnehmen und die Spaltenanzahl auf 2 stellen.
Spaltenbreiten dann auf 0 und 3 cm einstellen, damit die gebundene Spalte (Long Integer) ausgeblendet wird und der Text angezeigt bleibt.
@Stapi
"....dann muss @uwe01 in dem Kombifeld mit Colum() arbeiten...."
im oben beschriebenen Fall nicht - auf die Weise wird die ID zurückgegeben, wenn das Kombifeld abgefragt wird, da die ID die gebundene Spalte darstellt.
Die Feldnamen / -bezeichnungen stimmen im Code nicht mit den Feldnamen/ - bezeichnungen im Formular überein.
Wenn du den Vorschlag von DF6GL bezüglich der Benamsung nicht nachkommst musst du ALLE Feldnamen mit Sonderzeichen etc. in eckige Klammern setzen! z.B. Me![Int-Nr].Visible=True
Das Ereignis 'Typ_Change' ist für deine Aufgabe nicht geeignet, nimm besser das Formularereignis 'Beim Anzeigen' (Form_Current)
So werden die Felder auch beim Durchblättern der Datensätze ein-/ausgeblendet.
HTH
Hallo Database ,
Danke dir für die Hinweise habe das Kombifeld mit ID versehen. Seitdem erhalte Ich eine Fehlermeldung die da lautet: ,,Sie haben ein Wert eingegeben der für dieses Feld nicht zulässig ist" woran liegt den das jetzt schon wieder.
Habe auch Ereignis geändert, jetzt im Formularereignis ,,beim Anzeigen". Nun wenn ich im Combofeld etwas ändere bleibt das Formular unverändert, ändere Ich etwas in der Schnellsuche und gehe auf 600 Nummern dann wird ,,Tüv" ausgeblendet.
Dieses sollte aber beim Kombifeld Typ der fall sein.
Wie kann Ich jetzt das Formularereignis ,,beim Anzeigen" auf mein Kombifeld verweisen, damit bei Änderungen Felder ein/ausgeblendet werden.
Habe noch mal die überarbeitet DB mit angehangen
@ Df6gl deine Empfehlung werde ich versuchen zu beachtet .
@ auch vielen Dank an Stapi und bahasu für eure Antworten.
LG Uwe01
[Anhang gelöscht durch Administrator]
Hallo,
anbei und nur bezgl. des Fehlers und der Textfeld-Steuerung
[Anhang gelöscht durch Administrator]
Danke dir,
wenn ich das jetzt richtig deute dann machst du beim Anzeigen des Formulars ein Verweiß auf das Kombifeld Typ.
Und dann im Kombifeld nach Aktualisieren das Ereignis.
Klingt Logisch.
LG Uwe01
Hallo,
im Afterupdate-Ereignis des Kombis werden je nach ausgewähltem ID-Wert irgendwelche Textfelder sichtbar/unsichtbar gesteuert.
Damit das auch beim Anzeigen von anderen Datensätzen funktioniert, wird die Afterupdate-Prozedur auch im Form-Current-Ereignis aufgerufen.
Das Tabellenfeld Typ wurde von TEXT nach LONG umgestellt, weil es ja den ID-Wert aus dem Kombifeld aufnehmen muss.