Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: derilzemer am Januar 14, 2017, 13:35:09

Titel: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 14, 2017, 13:35:09
Hallo zusammen,
beim öffnen meines Erfassungsformular, werden auch diverse UFO geöffnet (siehe Bild 1). Mir geht es um das im Bild rot eingerahmte UFO, frmErfassungUfoBilder. Darin ist ja auch wie man sieht ein Listenfeld eingebaut. Die Daten dafür werden via Select zugeführt SELECT tblBilderZuSpiel.BildmotivID_F, tblBildmotive.Bildmotiv FROM tblBildmotive INNER JOIN tblBilderZuSpiel ON tblBildmotive.BildMotivID = tblBilderZuSpiel.BildmotivID_F WHERE (((tblBilderZuSpiel.SpielID_F)=[Formulare]![frmErfassung]![txtSpielID])) ORDER BY tblBildmotive.Bildmotiv;
Was mich ein wenig stört, dass wenn ich einen Datensatz aufrufe, nicht immer der gleiche Bildtyp (Feld Bildmotiv in tblBildMotive) angezeigt wird wie gewünscht, siehe Bild 2+3. Gewünscht wäre da entweder Deckblatt (DB) oder Schachtel-DB, siehe Bild 4 oder Bild 1. Es kann/wird immer nur das eine oder anderer vorkommen, das hängt eben vom Typ des Spieles ab. Muss dies mit ein wenig VBA Code erzwungen werden oder geht das mit Boardmitteln von Access? Wer kann mir da helfen das zu lösen?

Danke und mfG
Andreas
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: Beaker s.a. am Januar 14, 2017, 14:02:41
Hallo,
Nicht ganz verstanden  :(, deshalb zwei Gegenfragen.
1. Was beschreibt denn der/den Bildtyp?
2. Wie/wo wird das Bild dem Picture-Control denn zugeordnet?
gruss ekkehard
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: crystal am Januar 14, 2017, 14:19:10
Hallo,

vielleicht würde ein Findfirst helfen.
me.Recordset.FindFirst "[Bildtyp] LIKE '*DB*'"

lg
crystal
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 14, 2017, 14:28:34
Hi Ekkehard,
Zitat von: Beaker s.a. am Januar 14, 2017, 14:02:41
1. Was beschreibt denn der/den Bildtyp?
2. Wie/wo wird das Bild dem Picture-Control denn zugeordnet?

Zu Frage 1:
Die Bildtypen umschreiben lediglich was es ist, ein Deckblatt, eine Rückseite, eine ID Karte oder eine Schachtel etc. Dazu habe ich an einem Spiel mal 4 Bilder angehängt, damit man sieht was damit gemeint ist. Es definiert also kein Format wie png, gif oder jpg. Dazu bleibt aber noch zu erwähnen, dass ich ausschließlich png nutze.

Zu Frage 2:
Wie in den Bilder zu sehen ist, kann ich über das gelbe Feld mit Doppelklick ein Bild auswählen.
Private Sub BildDateiName_DblClick(Cancel As Integer)
    Dim dlgOpen As FileDialog
    Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker)
    With dlgOpen
      'Set title of the dialog box
        .Title = "Wähle eine Datei aus"
      'Pathvar
        .InitialFileName = Me.Parent.BilderPfad
      'Add a filter that includes PNG, GIF and JPEG images and make it the first item in the list.
        .Filters.Add "Images", "*.png; *.gif; *.jpg; *.jpeg", 1
      ' Allow the user to make multiple selections in the dialog box.
        .AllowMultiSelect = False
      ' Show the dialog box. If the .Show method returns True, the user picked at least one file.
        If .Show Then _
        Me.BildDateiName = Dir(.SelectedItems(1))
    End With
End Sub


@Crystal
Den Findfirst über die UFO Eigenschaften als Ereignis beim Laden?

Gruß Andreas

Hoffe es ist jetzt etwas klarer.
Gruß Andreas
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: crystal am Januar 14, 2017, 14:38:39
Hallo,

den Findfirst würde ich da unterbringen, wo du auch den Select für das Ufo zuweist.
Dann müsste es aber etwas anders lauten,
me.ufo.recordset.findfirst(...)
oder so ähnlich.

Sorry - kann das jetzt nicht testen, vielleicht kann Ekkehard die korrekte Formulierung beisteuern.

lg
crystal
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 14, 2017, 14:41:39
Hi,
Zitat von: crystal am Januar 14, 2017, 14:19:10
vielleicht würde ein Findfirst helfen.
me.Recordset.FindFirst "[Bildtyp] LIKE '*DB*'"
Ich habe jetzt gerade mal im VBA Teil nachgesehen, da gibt es sogar schon etwas mit Findfirst :(.
Private Sub lstBmWahl_AfterUpdate()
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[BildmotivID_F] = " & Str(Nz(Me![lstBmWahl], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Aber das scheint wohl nur die Zuordnung zu regeln was die Bildtypen angeht. Aber das was du vorgeschlagen hast, kann man das anwenden mit entweder oder?
me.Recordset.FindFirst "[BildmotivID_F] LIKE ''1" OR "5"
Ich weiss dass dies mit Like und or so nicht geht, aber das meine ich eben mit entweder oder. 1 und 5 Sind die ID's der Deckblatt (DB) und Schachtel-DB.

Gruß Andreas
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: crystal am Januar 14, 2017, 14:55:18
Hi Andreas,

Ich würde dann eher formulieren
[BildmotivID_F] =1 or [BildmotivID_F] =5

Frage ist nur, an welcher Stelle. Ich gehe davon aus, dass nach deiner Zuweisung "Select..." an das Ufo dort auf dessen Recordset zugegriffen werden kann, deshalb mein Luftcode "me.ufo.recordset...".

Aber bitte probier das oder warte auf eine Antwort von einem Profi...

lg
crystal
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: Beaker s.a. am Januar 14, 2017, 16:13:48
Hallo Andreas,
O.K., verstanden. Allerdings verwirrt mich hier
Zitatder gleiche Bildtyp (Feld Bildmotiv in tblBildMotive)
die Benamsung, und ich verstehe das Problem deshalb weiterhin nicht.
Will fragen, was wird wo falsch angezeigt?
Führt vielleicht dieses http://www.donkarl.com?FAQ4.12 (http://www.donkarl.com?FAQ4.12) zum Ziel.
gruss ekkehard
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 14, 2017, 17:34:42
Hi Ekkehard,
nimm an ich wechsel in den Datensatz Spiel-ID 567, dann stellst sich das bei mir dar wie es im Bild 1 zu sehen ist. Es wird das Deckblatt des Quartett dargestellt, eben so wie ich das gerne hätte, damit man auch gleich visuell mitbekommt um welches Spiel es sich handelt. 
Dann gibt es eben aber Datensätze wie z.B. Spiel-ID 1338 , da ist es eben nicht so. Da wird nicht wie gewünscht das Deckblatt, sondern die Rückseite dargestellt, siehe Bild 2. Das ist nicht das was ich will.
Ich will, dass sich immer beim öffnen eines Datensatzes das Deckblatt (DB) oder Schachtel-DB angezeigt wird und nicht wie im 2. Bild z.B. die Rückseite. Also egal wie viele Bilder in der Liste definiert sind, er soll beim laden des Datensatzes immer Deckblatt (DB) oder Schachtel-DB anzeigen wie im Bild 1.

Gruß Andreas 
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: Beaker s.a. am Januar 14, 2017, 21:40:54
Hallo Andreas,
ZitatIch will, dass sich immer beim öffnen eines Datensatzes das Deckblatt (DB) oder Schachtel-DB angezeigt wird und nicht wie im 2. Bild z.B. die Rückseite. Also egal wie viele Bilder in der Liste definiert sind, er soll beim laden des Datensatzes immer Deckblatt (DB) oder Schachtel-DB anzeigen wie im Bild 1.
Dann musst du in der DS-Herkunft des UFo für eine entsprechende Sortierung
sorgen, - das UFo zeigt beim Öffen ja immer den ersten DS an.
gruss ekkehard
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 14, 2017, 22:58:17
Hi,
wenn dem so wäre, dann müsste ja immer Box/Schachtel ausgewählt sein, da die Sortierung Aufsteigend ist bei den Bildmotiven. Deiner Aussage kann ich somit nicht ganz zustimmen bzw. folgen.

Gruß Andreas
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: Beaker s.a. am Januar 15, 2017, 02:01:57
Hallo Andreas,
Sorry, mein Fehler, kenne aber diesen Teil deiner DB ja nicht (DS-Herkunft des UFo,
verknüpfte Felder). Die gezeigte Abfrage ist ja nur die DS-Herkunft der Liste.
Die DS-Herkunft des UFo müsste dann nach den Bildträgern (DB, RS usw.) sortiert
sein.
Vielleicht kannst du eine reduzierte DB hier einstellen.
gruss ekkehard

P.S. Hat das mit der Variantenzuordnung eigentlich inzwischen geklappt?
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: derilzemer am Januar 15, 2017, 12:31:43
Hi,
kein Problem. Die Abfrage für die Ufo sieht natürlich anders aus. Im Zuge dessen habe ich mal eine Light-DB erstellt mit den Datensätzen aus den Beispielen (hatte ich noch nie gemacht, ging aber vom Aufwand her), da ist dann das Problem weg! Da wird immer entweder vom Bildmotiv gleich das Deckblatt (DB) oder Schachtel-DB angezeigt. Bedeutet das, dass ein Formular oder die DB selbst eine Macke hat??
Das mit der Variantenzuordnung konnte nicht nach meinem Gutdünken gelöst werden, geht nicht. Ich habe es jetzt über eine dirty Lösung realisiert, nicht schick aber funktional und entspricht dem Konstrukt wie ich es gerne gehabt hätte :(.

Gruß Andreas
Titel: Re: Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen
Beitrag von: Beaker s.a. am Januar 15, 2017, 18:21:01
Hallo Andreas,
ZitatBedeutet das, dass ein Formular oder die DB selbst eine Macke hat??
Schwer bis unmöglich das per Ferndiagnose zu beurteilen. Wenn du sehr viel daran
(nicht damit) arbeitest kann das schon sein. Regelmässiges Reparieren/Komprimieren
kann da helfen.
Ansonsten kannst du dich ja hier mal "durchwühlen":
http://www.donkarl.com?FAQ1.23 (http://www.donkarl.com?FAQ1.23)
http://www.donkarl.com?FAQ1.27 (http://www.donkarl.com?FAQ1.27)

gruss ekkehard