Hallo zusammen :)
Ich bräuchte da mal dringend Hilfe bei nem Access Formular ??? ???
Ich erstelle zur Zeit eine Datenbank, die internen Zwecken dienen soll, sprich es soll möglich sein, Informationen für z.B. Angebote oder Ähnliches aus dem Forum zu nutzen. Da wir meistens zusätzlich mit Bildern arbeiten, würde ich gerne auch Bilder mit in das Formular nehmen. --> Soweit kein Problem..das Bild ist drin, aber leider kann ich das Bild nicht rauskopieren und z.B. für Word oder Ähnliches benutzen. :-\
Hat da zufällig jemand ne Idee, wie man das Bild nicht nur angezeigt wird, sondern wie ich es auch verwenden/ rauskopieren kann?
Ich wäre euch sehr sehr sehr dankbar :D :)
Hallo,
ich speicher die Bilder ungern in Acc sondern speicher nur den Pfad und Dateinamen.
Um das Bild dann anzuzeigen kannst Du folgendes als Beispiel machen.
Private Sub Form_Current()
If Not IsNull(PfadDatei1) Then PlatzhalterBild1.Picture = PfadDatei1
End Sub
Hier ist der komplette Pfad und Dateiname im Feld PfadDatei1 gespeichert.
Im Form gibt es das ungebundene Feld PlatzhalterBild1.
Beim Anzeigen wird das Bild in das Feld angezeigt.
Das hat zwei Vorteile:
1. Deine DB wird nicht so groß.
2. Das Bild steht überall (also auch für Word etc.) zu Verfügung.
Gruß
Johann
Vielen lieben Dank für Deine schnelle Antwort.. :)
leider bin ich doch noch ein ziemlicher Amateur in Sachen Acces.. :(
Wenn ich (umzu Visual Basis zu kommen) z.B. beim Klicken wähle kommt:
Private Sub Bild__Click()
(bei Dir steht da aber Private Sub Form --> mach ich da schon was falsch?)
Könnte vllt. erklären, warum bei der der Pfadeingabe eine Fehlermeldung kommt?
Ach und eins noch.. ist es mit deinem Vorschlag denn auch möglich, bei jedem Datensatz ein anderes Bild zu benutzen?
schonmal vielen lieben dank, dass du dich hier mit nem Anfänger rumschlagen musst :-[
Hallo Lisa,
da müssen wir halt etwas weiter vorn beginnen.
Erstmal brauchst du in deine Tabelle ein Textfeld für den Dateinamen (natürlich komplett mit Laufwerk und Pfad).
Dadurch hast Du die Möglichkeit immer unterschiedliche Bilder zu haben.
Im Formular machst Du das ungebundene Feld für das Bild.
Bei den Formulareigenschaften (nicht die Eigenschaften vom Feld) hast du das Ereignis "Beim Anzeigen".
Hier kommt der VBA-Code rein.
Gruß
Johann
So.. ich sehe Licht am Ende :P
nur nochmal zum Verständis (falls falsche Angaben dabei, nicht wundern :P)
Ich habe in der Tabelle ein Feld angelegt. Hab es beispielsweise Dateiname genannt. (nur zum Test)
Weiterhin habe ich in dem Formular ein Textfeld angelegt. (zum Test einfach mal Bild genannt)
In das neue Feld "Dateiname" habe ich nun bei einem Datensatz den Pfad eingegeben.
--> Dann die Formulareigenschaften geöffnet -> Beim Anzeigen --> VBA:
If Not IsNull(Dateinamen) Then Bild = Dateiname
eingegeben...
Da kann leider irgendwas noch nicht hinhauen..ich hoffe, ich liege nicht voll daneben? :) :-[
(immer wieder: danke, danke danke :) )
Das wird was, behaupte ich jetzt einfach mal.
War von mir nicht gut beschrieben. Im Form nimmst du kein Textfeld sondern aus der Toolbox ein Bild.
Der Assi will dann von dir ein Bild haben. Nimm einfach irgendeins. Bei den Eigenschafte löscht du den
bei der Zeile Bild das Bild weg. Als Namen für das Feld nimmst du dann Bild.
Danach sollte es klappen.
Gruß
Johann
Soweit habe ich alles abgeändert. Bekomme aber von VBA immer noch eine Fehlermeldung
If Not IsNull(Dateinamen) Then Bild = Dateiname
(ist gelb hinterlegt ab: Bild = Dateiname)
stimmt da noch iwas nicht dran? eigentlich müsste ich soweit alles nach deiner Anleitung gemacht haben :)
Hallo Lisa,
Bild.Picture = Dateiname
das muss es sein.
Gruß
Johann
Hallo,
es wäre gut, den kompletten Code zu posten...
Weiterhin sollten die Steuerelemente mit expliziten Verweis auf das akt. Form(-Objekt) (Me) versehen werden. Und am Besten noch testen, ob der DateiPfadname auch wirklich existiert:
Sub Form_Current()
If Dir(nz(Me!Dateiname,"~~~~") ) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Else
Me!Bild1.Visible=false
End If
End Sub
Dabei ist
Me!Dateiname das Form-Textfeld, in dem der (komplette) PfadDateiname des Bildes steht
Me!Bild1 der Name des Bild-Steuerelementes
Guten Morgen zusammen :)
Ich bin euch wirklich super dankbar, dass ihr euch damit rumschlagt..
Leider funktioniert es immer noch nicht :(
Vielleicht liegt es auch daran, dass ich das falsche Element benutze um das Bild anzuzeigen.. Ich wähle einfach "Bild" und dann schließe ich das Feld ohne mir ein Bild auszusuchen.
Und verstehe ich das richtig, dass ich das Feld: Me!Dateiname nennen soll? ein "!" ist doch aber in der Tabelle gar nicht zulässig?
Schonmal sorry für die vllt. peinlichen Fragen :P :-[
Aber mein Gefühl bleibt, dass ich vllt. nur noch ein kleines bisschen von dem Ergebis entfernt bin. :)
Hallo,
Dateiname ist ein Tabellenfeld sowie ein Textfeld in einem Formular, das an die Tabelle gebunden ist (Datenherkunft: Tabellenname) . In diesem Form-Textfeld steht der komplette PfadDateiname der Bilddatei. Bild1 ist der Name des Bild-Steuerelementes, das im Formular eingebaut wurde.
Der ganze Code stellt die Ereignisprozedur dar, die bei Auftreten des Form-Ereignisses "Beim Anzeigen" ausgeführt wird.
Me steht für das aktuelle Form, in dem der Code ausgeführt wird. Das "!"-Zeichen ist ein Trennzeichen (mit etwas besonderer Bedeutung) zwischen dem Fomular(-Objekt) und dem Steuerelement(-Objekt).
Die Namen der Steuerelemente findest Du in den Eigenschaften des Steuerelementes unter "Andere/Name".
Hallo :)
leider immer noch keine positiven nachrichten...
Das habe ich soweit alles verstanden.
Also ich habe bei mir auch "Me" stehen oder muss ich dort den Namen meines Formulars benutzen.. heißt mein Formular also z.B. Test muss ich dann
If Dir(nz(Test!Dateiname,"~~~~") ) <> "" Then
Test!Bild1.Visible=true
Test!Bild1.Picture = Test!Dateiname
nehmen oder bleibt es bei
If Dir(nz(Me!Dateiname,"~~~~") ) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Und zur Frage mit dem Bild Element.. da ist es auch richtig einfach das Bild-Element zu wählen und dann zu schließen, so dass das Feld vorhanden ist?
(Ich hoffe ihr könnt mir nochmal helfen, würde mich tierisch freuen, wenn wir es schaffen :P und hoffe ihr seid noch nicht genervt :( :) )
Hallo Lisa,
ich nehme immer diesen Code ohne die Funktion NZ:
If Dir(Me!Dateiname) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Else
Me!Bild1.Visible=false
End If
Das Me steht stellvertretend für den aktuellen Formularnamen.
Willst du mit Nz arbeiten mußt du die ~~~~ ersetzten.
Gruß
Johann
Hallo Jonny :)
jetzt wirds richtig peinlich: was ist denn Nz? :P bzw. wofür steht das?
Also würde ich dann "Me" durch meinen Formularnamen ersetzen? :)
Grüße
Hallo,
Me bleibt stehen , wie es ist. Lediglich die Namen der Steuerelemente mußt Du richtig einsetzen, so, wie Du sie genannt hast, oder der Steuerelement-Assistent....
Wie ch schon gesagt habe: Schau in die Eigenschaften der jeweiligen Steuerelemente unter "Andere"Name", dort steht der Name , den Du auch im Code einsetzen mußt. Bei meinem Code ist also z B. Bild1 zu ersetzen mit dem Namen, den Du in der Name-Eigenschaft lesen kannst.
Dito für Dateiname usw...
NZ() ist eine Funktion, die ein Steuerelement (oder eine Variant-Variable) dahingend testet, ob deren Wert NULL ( also nix, leer, undefiniert) ist. Es könnte ja sein, dass in der Tabelle in "Dateiname" nix drinsteht, denn dann geht der Code "in die Hose", sprich , es tritt ein Laufzeifehler auf, der eben mit NZ() abgefangen wird, weil diese Funktion den angegebenen Wert (bei mir den willkürlichen Wert "~~~~", weil es solch einen Dateinamen vermutlich nicht auf Deiner Festplatte gibt.) bei leerem Textfeld zurückliefert. Damit kann die DIR-Funktion versuchen, diesen Dateinamen zu finden, den es aber nicht geben wird.
Jedenfalls tritt so dann kein Laufzeitfehler mehr auf.
Guten Morgen an die beiden sehr geduldigen Herren :)
Also wenn ich den empfohlenen Code von Jonny nehme, sprich:
If Dir(Me!Dateiname) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Else
Me!Bild1.Visible=false
End If
--> er zeigt mir leider immer noch kein Bild an, meckert aber ab und zu und markiert dann die erste Zeile als Fehler.. :(
Bei dem empfohlenen Code von DF6GL sprich:
Sub Form_Current()
If Dir(nz(Me!Dateiname,"~~~~") ) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Else
Me!Bild1.Visible=false
End If
End Sub
--> es kommt keine Fehlermeldung, aber das Bild wird auch nicht angezeigt :(
Also ehrlich gesagt so viel falsch machen kann ich doch "eigentlich" nicht mehr.. der Namen des Textfeldes stimmt mit dem im code überein, ebenso wie bei dem Bild..
wobei vllt. liegt doch da der Fehler.. also einfach "Bild" auswählen und dann schließe ich es bevor ich etwas auswähle, so dass ich trotzdem das Feld bleibt --> liegt vllt doch da der Fehler?
Vllt. fällt euch ja noch was ein, was amateure gerne mal falsch machen.. :(
Guten Morgen Lisa,
bleiben wir bei den Code von DF6GL weil da der Fehler abgefangen wird.
eventuell ist der Inhalt von Dateiname nicht korrekt das können wir aber testen.
Sub Form_Current()
msgbox(me!Dateiname) ' neue Zeile um den Inhalt von Dateiname anzuzeigen
If Dir(nz(Me!Dateiname,"~~~~") ) <> "" Then
Me!Bild1.Visible=true
Me!Bild1.Picture = Me!Dateiname
Else
Me!Bild1.Visible=false
End If
End Sub
kopier bitte die Zeile mit msgbox in den Code.
Jetzt bekommst du jedesmal beim Anzeigen den Inhalt von Dateiname.
Hoffen wir das hier der Fehler liegt, wenn nicht sind wir aber trotzdem weiter weil wir dann hier den Fehler
ausschliessen können
Gruß
Johann
Hallo,
"also einfach "Bild" auswählen und dann schließe ich es bevor ich etwas auswähle, so dass ich trotzdem das Feld bleibt"
Was heißt denn das?
Was meinst Du mit "Bild auswählen" und "..schliesse ich.."
Du hast nicht etwa ein OLE-Steuerlement benutzt anstatt dem Bild-Steuerelement?
Es muss das BILD-Steuerelement sein und im Feld "Dateiname" (im Form oder in der Tabelle) MUSS der PfadDateiName der Bild-Datei drinstehen, bzw. eingegeben worden sein. Dies wiederum kann über einen Filedialog (Windows-Datei-Auswahl) erfolgt sein oder halt einfach manuell durch Eintippen des Namens.
Also..
Ich habe jetzt den Code von Jonny benutzt. Es erscheint dann die Meldung, in der mir der Pfad angezeigt wird.
Spricht das für einen Fehler? :o
"also einfach "Bild" auswählen und dann schließe ich es bevor ich etwas auswähle, so dass ich trotzdem das Feld bleibt"
das war etwas unklar formuliert :)
Also ich habe ein Bild-Steuerelement benutzt. Ich wählte es und dann erscheint das Fenster in dem ich ein Bild auswählen soll. Ich hatte das Feld anschließend geschlossen, ohne ein Bild auszuwählen. Damit blieb das Feld da nur eben ohne Bild. Ich habe aber auch schon versucht ein Bild zu wählen und dachte, dass es dann überschrieben wird.
Vllt. mache ich also da schon etwas falsch?
Hallo,
lad die DB mal hier hoch (zuerst anmelden, die DB komprimieren/reparieren und zippen)
Zitatdann erscheint das Fenster in dem ich ein Bild auswählen soll
so ein Fenster erscheint bei einem Bild-Steuerelement nicht....
Hallo Lisa,
wenn du das immer wieder machst bekommst du auch immer wieder einen neuen Namen
für das Steuerelement.
Bitte das Element so lassen wie es ist.
Über die Eigenschaften Register andere erste Zeile Name kannst du den Namen feststellen
(wie DF6GL es dir schon erklärt hat).
Diesen Namen mußt du als Name für das Bild in VBA nehmen.
Gruß
Johann
Ja, ok, das ist die Erklärung, warum nach einer Bild-Datei gefragt wird ;)
Wenn dann aber keine Initial- Datei ausgewählt (abgebrochen) wird, wird bei A2003 kein Bild-Steuerelement erzeugt, nur bei >= A2007
Hallo :)
Also @ Jonny: bei dem Namen hab ich immer aufgepasst, dass ich ihn entweder bei VBA aktualisiere oder in meinem steuerelementinhalt..daran kann es leider nicht liegen..
zur Antwort von DF6GL:
arbeite zur zeit mit access2010..
aber wenn ich dann irgendein bild auswähle dann müsste er es ja vllt überschreiben.
Oh mensch :(
Ich werde dann mal versuchen ein Teil der DB hochzuladen..muss nur leider die Datan rausnehmen..mal schauen ob ich das schaffe :)
euch schonma nen schönen Abend :)
HAllo,
Zitat
bei dem Namen hab ich immer aufgepasst, dass ich ihn entweder bei VBA aktualisiere oder in meinem steuerelementinhalt.
Irgendwas läuft da im allgemeinen Verständnis der Sachlage falsch....
Zitatwenn ich dann irgendein bild auswähle dann müsste er es ja vllt überschreiben.
Du sollst ja nichts "überschreiben", Du sollst nur einmal(!) in der Form-Entwurfsansicht ein Bild-Steuerelement (wie jedes andere Steuerelement auch) an eine geeignete Stelle im Detailbereich platzieren, dem Ding einen passenden Namen ( in seinen Eigenschaften) geben, den Code bezgl. der Namen anpassen und fertig...
Guten Morgen zusammen..
das mit dem Zippen funktioniert leider von diesem rechner nicht..
Aber..ich hab mal schnell ein testformular gemacht und davon screenshots..
vllt hilft das ja auch schon :)
wenn ihr lust habt könnt ihr ja mal reinschauen..
ihr seht da dann das textfeld mit namen, das bild mit namen und die vba ansicht.. das letzte bild zeigt dann das ergebnis mit der msgbox..nur ohne bild :(
Vielen lieben Dank fürs reinschauen :)
--> Moment Anhagng folgt
Soo...also manchmal stimmt das Vorurteil Frauen und Technik leider doch :P
ich hab die screenshots jetzt in power point eingefügt...dort müsstet ihr wenns geht bei den ersten beiden Präsis/Folien die Screenshots nochmal vergößern sonst passt es nicht..ich hoffe es macht euch nicht zu viel mühe :(
[Anhang gelöscht durch Administrator]
Hallo Lisa,
scheinbar ist der Dateiname falsch.
Hier steht lediglich ein Pfad der auf den Desktop zeigt aber nicht welche Bilddatei genommen werden soll.
Bitte vervollständige den Eintrag.
Gruß
Johann
Guten Morgen zusammen.. :)
Erstmal ein dickes Sorry, dass ich nicht geantwortet habe, aber ich war auswärts..
Anbei nochmal mit richtigem Pfad..
Ich hoffe dass ich es doch noch irgendwie hinbekomme..
[Anhang gelöscht durch Administrator]
Hallo Lisa,
jetzt ist aber doch nichts mehr falsch, es sei denn die Datei gibt es nicht auf den Desktop.
Gruß
Johann
Also die Datei ist auf dem Desktop vorhanden..
aber wie du siehst, leider wird das Bild nicht angezeigt...:(
Das mit dem Bildelement war soweit auch richtig?
Das ist ja echt wirklich seltsam ..
Hallo,
es wäre einfach besser, die Db in Händen zu halten...
"das mit dem Zippen funktioniert leider von diesem rechner nicht.."
Warum?
ansonsten lad halt Winzip (oder Winrar) als Demoversion herunter und installier dieses.
Hallo..
Ich lade die DB heute Abend von meinem Rechner hoch..
dann gibts keine Probleme.. :)
vllt. finden wir dann den Fehler..
Hallo Lisa,
dann finden wir nicht vieleicht sondern sicher den Fehler. Wäre doch gelacht wenn das nicht klappt.
Bin schon gespannt auf Morgen.
Gruß
Johann
Guten Abend zusammen!..
:)
Also es gibt gute Nachrichten.. (auch wenn nur teilweise..)
Ich habe die Datenbank nun gerade von meinem Rechner geöffnet..und siehe da... es funktioniert sofort..
das ist wohl ein Grund zur Freude..^^ ;D
Ich denke es wird also irgendwie an den Einstellungen im Büro liegen..ich schau morgen mal ob ich das lösen kann..
Auch wenn ich noch nicht ganz überzeugt bin, schöpfe ich hoffnung..
und daher schonmal ganz ganz ganz vielen Dank dass ihr mir so viel geholfen habt..ohne euch hätte ich das ja nunmal nicht geschafft..:)
Also..Vielen Dank für die geduldigen Herren..
Und drückt mir die Daumen dass ich die letzte Hürde noch nehmen kann :)
Hallo zusammen..
Also es gibt gute Nachrichten:
Warum auch immer, aber als ich das ganze heute Morgen testen wollte, ging es!! Alle gewünschten Bilder werden mir angezeigt! Dafür ganz ganz vielen Dank an Euch!
Das einzige Problem ist nur, dass ich dachte, dass man die Bilder (direkt als Bild, nicht der Pfad) auch verwenden könnte. sie z.B. aus dem Formular zu kopieren um sie dann in Word zu benutzen.
Da gibt es keine Hoffnung, dass das gehen würde oder?
Hallo Lisa,
hab ich doch gesagt das es geht. :D
Bei Word kannst du das Bild doch über Einfügen - Grapik schnell in dein Dokument bekommen.
Beispiel für Word 2007.
Gruß
Johann
Jaa ich bin auch froh, dass wir es doch noch geschafft haben :)
Ausnahmsweise kenne ich die Funktion bei Word.. :P hast natürlich Recht, es geht natürlich sehr schnell...nur direkt aus Access wäre dann alles direkt beieinander gewesen..:) Aber naja..