Neuigkeiten:

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

Mobiles Hauptmenü

Bilder Laden beim Anzeigen

Begonnen von Shayol, Januar 30, 2016, 08:57:04

⏪ vorheriges - nächstes ⏩

Shayol

Hallo zusammen,
ich habe etwas gefunden , was ich gerne nach machen wollte
https://www.youtube.com/watch?v=AeKGiwcctGQ
Bei Marcotools , genauer gesagt beim Ausdruck = DB_Pfad() ,kommt die Funktion(DB_Pfad()) nicht zur Auswahl. Habe Access 2010 sowie 2013 auf dem Rechner , aber erscheinen tut es nicht. Mein Elemet & Ausdruck würden so aussehen.


Element=[imgBild].[Bild]
Ausdruck= DB_Pfad() & "Bilder\" & [ID_Bauteil] & ".jpg"


Wie würde der Code den aussehen in VBA ? Die ganzen Bilder würde ich immer mit der jeweiligen Bauteil_ID abspeichern und in den Ordner-> Bilder ablegen.
Private Sub Form_Current()

End Sub


DF6GL

Hallo,

soweit ich mich erinnere, habe ich  den passenden Code (KEIN Makro!) schon in der Beispiel-DB eingebaut...
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

Shayol

Nicht so ganz , was ich gesucht habe.

Aber kannst du mir sagen , wieso die Funktion  nicht zur Auswahl steht ?

DB_Pfad() ?!

DF6GL

Hallo,


vermutlich ist das eine user definierte Public-Funktion, die den aktuellen DB-Pfad zurück liefert. Die muss von Hand in einem Standard-Modul erzeugt werden:

Public Function DB_Pfad() As String
DB_Pfad= Currentproject.Path & "\"
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

Shayol

Private Sub Form_Current()
Me!imgBild.Picture = CurrentProject.Path & "\Bilder\" & [ID_Bauteil] & ".jpg"
End Sub


So klappt es schonmal :) Aber bekomme noch eine Fehlermeldung, wenn für das endsprechende Bauteil, Kein Bild vorhanden ist.

DF6GL

Hallo,

Du musst halt vorher mit z. B. Dir() prüfen, ob das Bild existiert:


Private Sub Form_Current()
Dim FName as String
FName=CurrentProject.Path & "\Bilder\" &[color=red] Me![[/color]ID_Bauteil] & ".jpg"

If Dir(FName)  "" Then
Me!imgBild.Visible =""   'manchmal auch : Me!imgBild.Visible ="(keines)"
Me!imgBild.Visible =false
Else
Me!imgBild.Visible =true
Me!imgBild.Picture = FName
End If
End Sub

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

Shayol

Private Sub Form_Current()
Dim FName as String
FName=CurrentProject.Path & "\Bilder\" & Me![ID_Bauteil] & ".jpg"

If Dir(FName) [color=red]=[/color] "" Then
Me!imgBild.Visible = CurrentProject.Path & "\Bilder\"leer.jpg"
Me!imgBild.Visible =false
Else
Me!imgBild.Visible =true
Me!imgBild.Picture = FName
End If
End Sub


Glaube du hast oben das = vergessen . Ich farge nur nach, ob es so richtig ist. Kann ich das auch somachen , wenn kein Bild im Ordner enthalten ist, das er dafür ein festgelegtes Bild verwendet ? Hoffe der Pfad ist dann so richtig.

MaggieMay

Hallo,

so sollte es richtig sein:
Me!imgBild.Picture = CurrentProject.Path & "\Bilder\leer.jpg"
Freundliche Grüße
MaggieMay

Shayol

Erstmal danke DF6GL & MaggieMay, das ihr um diese Uhrzeit mir noch hilft. Aufjedenfall bekomme ich keine Fehlermeldung mehr.
Aber ein neues Problem ist erschienen, wenn ich ein Bauteil aussuche , was kein Bild im Ordner hat. Dann erscheind nicht das Bild leer.jpg.  Es liegt aber im Ordner drinnen.

Die Größe des Rechtecks , müsste egal sein oder ?

Private Sub Form_Current()
Dim FName As String
FName = CurrentProject.Path & "\Bilder\" & Me![ID_Bauteil] & ".jpg"

If Dir(FName) = "" Then
Me!imgBild.Visible = False
Me!imgBild.Picture = CurrentProject.Path & "\Bilder\leer.jpg"
Else
Me!imgBild.Visible = True
Me!imgBild.Picture = FName
End If
End Sub

MaggieMay

Me!imgBild.Visible = False
Naja, wenn du das Bild nicht anzeigst, kannst du es auch nicht sehen...
;-)
Freundliche Grüße
MaggieMay

Shayol

#10
jo , habs gemerkt. :P  Vorlauter freunde , vergessen den Post anzupassen ::) Du warst schneller.

Jetzt aber das letzte was mich bei diesem Thema Interessiert. Das entsprechende Bild wird angezeigt, wenn ich jetzt auf das Bild klicke , soll es sich öffnen im Orginal zustand bzw. So als ob man ein Bild auf dem Deskopt öffnet / Explorer ect.
Habe da was gefunden mit

Private Sub imgBild_Click()
On Error GoTo Fehler
    If Not Nz(Me!imgBild, "") = "" Then
       Application.FollowHyperlink "\Bilder\" & Me![ID_Bauteil] & ".jpg"
     Else
      MsgBox "kein Bildpfad vorhanden"
    End If
    Exit Sub
exit_Fehler:
Exit Sub
Fehler:
    MsgBox "Fehler...Das Bild ist nicht auffindbar. Haben Sie es umbenannt oder verschoben?."
    Resume exit_Fehler
End Sub



Der springt jedesmal zum Fehler. Egal ob ich den Link komplett ausschreibe oder ihn so lasse.

Application.FollowHyperlink "C:\Users\Patrick\Desktop\Lager\arbeit\Bilder\" & Me![ID_Bauteil] & ".jpg"



DF6GL

Hallo,


sorry für das vergessene "=", das eigentlich ein "<>" gewesen ist. 

Zitat
"Bilder" & Me![ID_Bauteil] & ".jpg"

ist ja auch kein gültiger Pfad...


Die File-Extension muss zunächst in Windows registriert und mit einem Anzeige/Bearbeitungsprogramm verknüpft sein.

Sodann sollte das Protokoll explizit erwähnt werden:


Application.FollowHyperlink "File://" & "C:\Users\Patrick\Desktop\Lager\arbeit\Bilder\" & Me![ID_Bauteil] & ".jpg"

Application.FollowHyperlink "File://" & CurrentProject.Path & "\Bilder\" & Me![ID_Bauteil] & ".jpg"


Besser wäre vielleicht die Verwendung von Shellexecute:

http://www.dbwiki.net/wiki/VBA_Tipp:_Anwendung_mit_ShellExecute_starten
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

Shayol

ok , dann werde ich mir das mal genauer an schauen, das Shellexecute.

Habe ebenfalls diese Seite gefunden http://www.office-loesung.de/ftopic35417_0_0_asc.php

Shayol

Extra Modul erstellt mit dem Namen: mdlShellExecute
Option Compare Database
Option Explicit

Public Declare Function ShellExecute Lib "shell32.dll" Alias _
    "ShellExecuteA" (ByVal hWnd As Long, _
                     ByVal lpOperation As String, _
                     ByVal lpFile As String, _
                     ByVal lpParameters As String, _
                     ByVal lpDirectory As String, _
                     ByVal nshowcmd As Long) As Long
   
Public hWnd As Long
Public Const SW_HIDE = 0          ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3      ' Maximiert öffnen
Public Const SW_MINIMIZE = 6      ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4

Public Function DateiOeffnen(Aktion As String, Pfad As String, _
                             Ansicht As Long) As Boolean
    Call ShellExecute(hWnd, Aktion, Pfad, "", "", Ansicht)
End Function



Und das Bild so verbunden.
Private Sub imgBild_Click()
Dim Pfad As String
    Pfad = "Bilder\" & Me![ID_Bauteil] & ".jpg" '< XXX = Endung mdb, jpg, doc usw.
    DateiOeffnen "open", Pfad, SW_MAXIMIZE
End Sub


Wenn ich auf das Bild klicke, öffnet sich das entsprechende Bild nicht. Der Pfad müsste doch ok sein . Ich sehe zumindest nicht, was ich jetzt falsch gemacht haben sollte.


MaggieMay

Hallo,
ZitatDer Pfad müsste doch ok sein
das glaube ich nicht, versuche es besser mal mit dem vollständigen Zugriffspfad, so wie du es in Antwort #4 geschrieben hattest.
Freundliche Grüße
MaggieMay