Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Bild aus Hyperlink anzeigen

Begonnen von datekk, November 28, 2016, 09:25:00

⏪ vorheriges - nächstes ⏩

crystal

Hallo,
jetzt klappt's. Sorry - ich hatte die Codeschnipsel aus einer Applikation kopiert, aber nicht vollständig.

Ich habe eine Tabelle1 angelegt, die nur eine Id und ein Textfeld "url" enthält.
In dieses Feld habe ich dann die Werte
http://www.access-o-mania.de/forum/images/aomlogo.jpg
und im 2. DS
http://www.access-im-unternehmen.de/fileadmin/images/accessbasics.gif
eingetragen.

Dann habe ich Formular1 angelegt mit
zwei Textfeldern
Id und url und
einem Webbrowser-Element mit Namen WB1.
In WB1.Steuerelement-Inhalt habe ich eingetragen "fgfg", also irgendeinen Quatsch.

Im Code steht


Option Compare Database
Option Explicit
Public WithEvents WB2 As WebBrowser
'
Private Sub Form_Current()
    WB2.Navigate url
End Sub
Private Sub Form_Load()
    Set WB2 = WB1.Object
End Sub
Private Sub url_AfterUpdate()
    WB2.Navigate url
End Sub


Im ursprünglichen Code hatte ich noch

Public WithEvents HDoc As HTMLDocument

Private Sub WB2_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If WB2.ReadyState = READYSTATE_COMPLETE Then
        Set HDoc = WB2.Document
    End If
End Sub


weil ich später mit HDoc gearbeitet habe (HDoc enthält den Quelltext).

Etwas seltsam ist:

1. wenn im WB1 als Inhalt nix steht, kommt die Fehlermeldung "Ungültige Adresse..." (wohlgemerkt im Browser-Fenster).
2. wenn in WB1 als Inhalt "fgfg" steht, klappt es.

(WB2 und HDoc habe ich public deklariert, weil ich in verschiedenen Subs darauf zugreife. WithEvents ist nötig, um den ReadyState abfangen zu können. Ist bei dir vermutlich entbehrlich.)

Interessant ist noch, dass die Navigation in WB2 erfolgt, aber in WB1 angezeigt wird.

Egal, Hauptsache es klappt und hilft dir weiter.

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

datekk

#16
Das ist seltsam.. Sobald im Steuerelementinhalt tatsächlich irgendwas steht, funktioniert es. Danke Crystal.

Leider ist jedoch das Webbrowser Steuerelement nicht so geeignet um nur Bilder anzuzeigen. Es fehlen wie bei einem Bild Steuerelement Funktionen wie "dehnen" oder "zoomen". Weiterhin will ich mich mit dieser Lösung noch nicht so ganz abfinden.

Es muss doch unter Access möglich sein, Bilder aus einer URL anzuzeigen - und zwar als Bilder in einem Bild-Steuerelement....
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

benutze die folgende Funktion (Public in einem Standardmodul), um ein Bild an einer URL in eine Datei herunterzuladen.  Die Datei kann dem Steuerelementinhalt des Bild-Steuerelementes anschließend zugewiesen werden.

Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function fktDlPic2File(URL As String, Filename As String)
    fktDlPic2File = URLDownloadToFile(0, URL, Filename, 0, 0)
End Function
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

crystal

Hallo,
nach meiner Kenntnis ist es durchaus möglich, mit HTML-Anweisungen ein Bild in dessen Größe anzupassen und z.B. in einem genau bemessenen Rahmen darzustellen. Das ist dann aber HTML-Programmierung und die URL des Bildes müsste dazu in entsprechende HTM-Statements geschachtelt werden.

Der Ansatz, das Bild einfach herunterzuladen und dann in einem Bild-Steuerelement darzustellen, ist zunächst natürlich einfacher. Aber man muss dann auch noch etwas "Verwaltung" betreiben, um das (bereits gespeichrte) Bild beim nächsten Aufruf des Datensatzes wieder zu finden und darzustellen - oder man müsste es jedesmal als temporäre Datei speichern und anzeigen.

Das muss alles abgewogen werden...

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

datekk

Ich werde es nach Franz seinem Code von der URL runterladen und die Datei dann in eine FileStream Spalte Streamen und es so in der Datenbank speichern. Also lieben Dank an Euch beide.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

crystal

Hi datekk,
es ist mir (inzwischen) durchaus klar, dass du eher dazu neigst, Bilder in die Datenbank zu speichern.
Ich persönlich tendiere eher dazu, sie im Filesystem abzulegen und in der Datenbank nur einen Verweis (also Pfad und Namen) zu speichern.
Aber jeder ist seines eigenen Glückes Schmied...

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

datekk

Hi Crystal,

das würde ich auch so machen, allerdings wird die DB von Mitarbeitern an verschiedenen Standorten genutzt und läuft im Backend nicht mit Access Tabellen sondern mit SQL. SQL bietet sog. FileTables. Diese agieren wie ein extra Verzeichnis, bzw. werden die Dateien tatsächlich in ein extra Verzeichnis, halt auf dem SQL Server abgelegt. Die Filetable speichert Filename, Art, Größe, Speicherort und vergibt noch eine ID pro File. Diese ID lässt sich dann mit einem Datensatz verbinden. Es ist also irgendwie das beste aus allem :)

Bei dem Bildprojekt geht es um kleine Logos von Firmen. Diese Logos sollen im Fenster der Firma mit angezeigt werden. Es sind also keine riesengroßen Datenmengen.

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

crystal

Hi datekk,
lieben Dank für diese Zusatzinfo!
Gruß
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...

datekk

Ich muss das Thema nochmal aufgreifen.

Wenn ich ein Formular erstelle und dort ein Bild Steuerelement zufüge, erscheint ein Explorer-Fenster in dem ich meine Bilddatei zum anzeigen auswählen soll.

Gebe ich dort aber eine URL ein.. z.B. https://www.access-o-mania.de/forum/images/aomlogo.jpg so wird das Bild auch im Steuerelement angezeigt. In den Eigenschaften steht bei Bild dann aber statt aomlogo.jpg aomlogo[1].jpg

Ich bin alle auffindbaren Eigenschaften dieses Steuerelements durchgegangen, nirgends finde ich die anderen Teile der URL...

Wie kann es sein, dass ich beim Einfügen des Steuerelements eine URL angeben kann, später aber nicht mehr. Oder muss man das irgendwie als Array irgendwo übergeben oder als Collection?

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Josef P.

Hallo!

Stehen die von dir gesuchten Bilder in der Tabelle MSysResources?
... dann hast du das Steuerelement vermutlich die Bildtyp-Eigenschaft auf "Freigegeben" eingestellt.

mfg
Josef

datekk

Kannst Du etwas näher erklären, was das mit der Problemstellung zu tun hat und ggf. aufzeigen, wie man Bilder aus URL-Quellen anzeigen kann?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps