Neuigkeiten:

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

Mobiles Hauptmenü

Makro SetzenWert auf Bild gespeichert als URL

Begonnen von Lemmy84, April 02, 2019, 15:19:06

⏪ vorheriges - nächstes ⏩

Lemmy84

Ein freundliches Hallo in die Runde.
Ich habe eine Frage zum Makro "SetzenWert". In einem Video (https://www.youtube.com/watch?v=AeKGiwcctGQ) bin ich auf den Befehl "SetzenWert" gestoßen und finde diesen sehr praktisch um Bilder aus einem Ordner den bestimmten Datensatz zuzuordnen und anzuzeigen.
Leider funktioniert dieses nicht mit Bildern aus dem Netz die mit einer URL-Adresse hinterlegt sind.
Wie könnte ich dieses Problem am elegantesten lösen bzw. anfassen?

Bevor die Frage kommt, "Warum das ganze?". Ich habe Bilder im SharePoint (mit URL-Adresse) gespeichert und würde diese gerne den Bestimmten Datensatz zuordnen und anzeigen lassen. Z.B.>> Bild im SharePoint mit dem Name "BMW" als .jpg gespeichert, soll dem Datensatz "BMW" in meiner Formularansicht zugeordnet werden. Natürlich gibt es mehrere Datensätze und Bilder.

Der Lösungsvorschlag im Video mit der Eingabe des Ausdrucks und der Pfadangabe wäre wirklich vorteilhaft gewesen.
Danke

PhilS

Zitat von: Lemmy84 am April 02, 2019, 15:19:06
Leider funktioniert dieses nicht mit Bildern aus dem Netz die mit einer URL-Adresse hinterlegt sind.
Wie könnte ich dieses Problem am elegantesten lösen bzw. anfassen?
Das Bildsteuerelement kann nur mit lokalen Dateipfaden umgehen.

In neueren Access-Versionen kannst du stattdessen das Webbrowser-Steuerelement verwenden, um die Bilder anzuzeigen.

Dort setzt du dann den Steuerelementinhalt (ControlSource). Dieser bezieht sich allerdings erstmal auf ein Feld der Datenherkunft. Wenn du keine URL des Bildes in den Daten gespeichert hast, muss der Ausdruck etwa das Folgende ergeben, damit er zur Laufzeit richtig ausgelöst wird.

"=""http://deinserver/deinBild.jpg"""



Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Lemmy84

Danke für die Hilfe
Bis jetzt funktioniert es so langsam wie ich es möchte.
Kann die Größenanpassung des Webbrowser-Steuerelement noch angepasst werden?
So das das Steuerelement immer die eingestellte Größe und das darin angezeigte Bild voll ausgefüllt ohne Bildlaufleisten angezeigt wird.

PhilS

Zitat von: Lemmy84 am April 03, 2019, 11:31:32
Kann die Größenanpassung des Webbrowser-Steuerelement noch angepasst werden?
So das das Steuerelement immer die eingestellte Größe und das darin angezeigte Bild voll ausgefüllt ohne Bildlaufleisten angezeigt wird.
Theoretisch sollte das funktionieren, wenn man das Zoom-Level für das Browser-Control auf eine passende Stufe setzt.
    Dim zoom As Variant
    zoom = 50
    deinWebbrwoserControl.Object.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom

Praktisch führt der obige Code, zumindest bei mit gerade, nur zu einer Fehlermeldung: Method 'ExecWB' of object 'IWebBrowser2' failed

Eine Alternative, die mir einfällt, wäre es nicht direkt das Bild dem Browser-Control zuzuweisen, sondern einen kleinen HTML-Text, der das Bild nur in einem IMG-Tag enthält. In diesem kann man dann explizit die gewünschten Maße des Bildes angeben.
deinWebbrwoserControl.Object.Document.Body.innerHTML = "<html><body>" & _ 
       "<img src=""http://deinServer/deinBild.jpg"" width=""100"" height=""100"">" & _ 
       "</body></html>"

Ob dir das alles jetzt weiterhilft weiß ich allerdings nicht, denn beide Ansätze basieren auf VBA-Code. Ob das analog mit einem Makro möglich ist, weiß ich nicht.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Lemmy84

Nach einiger Suche im Netz, bin ich auf etwas gestoßen.
Private Sub oWebBr_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  Me!oWebBr.Object.Document.Body.Scroll = "no"
  Me!oWebBr.Object.Document.Body.LeftMargin = 0
  Me!oWebBr.Object.Document.Body.TopMargin = 0
  Me!oWebBr.Object.Document.Body.Style.Zoom = "50%"
End Sub

Hier werden nacheinander die Scrollbars abgeschaltet und die Ränder auf 0 gesetzt. Als allerletztes wird der Zoom auf einen geeigneten Wert eingestellt.
Da es unterschiedliche Größen von Bilder gibt, werden die Prozente (50%) immer auf das jeweilige Bild bezogen. Somit ist doch irgendwie jedes Bild im WebbrowserSteuerelement unterschiedlich groß. Kann dieses noch irgendwie so angepasst werden, das jedes Bild die maximale Möglichkeit des Steuerelements ausnutzt ohne die Scrollbars zu nutzen oder zurechtgestutzt wird?
Ähnlich der "Größenanpassung" beim Steuerelement >> BILD.