Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Beim öffnen eines Formular mit UFO bestimmten Bildmotiv-Typ anzeigen lassen

Begonnen von derilzemer, Januar 14, 2017, 13:35:09

⏪ vorheriges - nächstes ⏩

derilzemer

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
Grüße und Dank im voraus
Andreas

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

crystal

Hallo,

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

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

derilzemer

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
Grüße und Dank im voraus
Andreas

crystal

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
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

derilzemer

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
Grüße und Dank im voraus
Andreas

crystal

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
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

Beaker s.a.

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 zum Ziel.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

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 
Grüße und Dank im voraus
Andreas

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

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
Grüße und Dank im voraus
Andreas

Beaker s.a.

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?
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

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
Grüße und Dank im voraus
Andreas

Beaker s.a.

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.27

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)