Neuigkeiten:

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

Mobiles Hauptmenü

Bezug auf Tabellenzeile

Begonnen von Liverpool, Oktober 09, 2014, 17:43:19

⏪ vorheriges - nächstes ⏩

Liverpool

Hallo,

Ich habe eine Db erstellt.
Ich suche dort durch eine txtBox und eine Schaltfläche werte in einem Unterformular.
Es können auch mehrere suchergebnisse auftreten, nun möchte ich durch einen Doppelklick in ein Tabellenfeld der Tabelle, die sich im Unterformular befindet, ein neues Formular öffnen. Dies habe ich nun auch geschafft:
DoCmd.OpenForm "Pic", , , "[Vorrichtung]=" & "'" & Me.[Vorrichtung] & "'"

Ich habe dort mehrere Vorrichtungen. Wenn ich jetzt Vorrichtung 1 mit einem Doppelklick anklicke soll das Formular Pic geöffnet werden und automatisch das Bild 1, welches zur Vorrichtung 1 gehört geöffnet werden. Wenn ich jetzt aber Vorrichtung 2 mit einem Doppelklick in das Tabellenfeld anklicke soll sich wieder das Formular Pic öffnen nun aber das Bild 2.

Frage: Ist dies so umsetzbar? Wenn ja wie?
Da ich erst seid kurzem mit Access und VBA arbeite habe ich noch nicht so viel Erfahrung.

Danke im vorraus.

database

Hallo, willkommen im Forum!

Ja, das ist umsetzbar - vorausgesetzt dein Datenmodell entspricht den Rageln einer relationalen Datenbank.
Soll bedeuten, dass der Pfad zum Bild (was ich empfehlen würde) entweder in der gleichen Tabelle gespeichert ist, wie die Daten der Vorrichtung - oder, wenn zu einer Vorrichtung mehrere Bilder gespeichert werden sollen - in einer Zwischentabelle mit dem Bildpfad und dem Fremdschlüssel zur Tabelle der Vorrichtungsdaten.

Die einfachere Variante - Bildpfad in der gleichen Tabelle - ist auch leichter umzusetzen, da du am Formular 'Pic' nur ein Bildsteuerelement einbauen und diesem beim Öffnen des Formulars den Pfad zur Bilddatei liefern musst.

Anknüpfend an deinen Aufruf - der allerdings nicht ganz sauber ist, da er nicht über einen numerischen Primärschlüssel erfolgt, könnte das in Etwa so aussehen:

DoCmd.OpenForm "Pic", , , "[Vorrichtung]=" & "'" & Me.[Vorrichtung] & "'",,, DLookup("Bildspalte","tblVorrichtungen","[Vorrichtung]='" & Me.[Vorrichtung] & "'"

Dem Ereignis 'Beim Öffnen' des Formulars Pic gibst du dann folgende Zeile mit:

Me.DeinBildsteuerelement.Picture = Me.OpenArgs




Liverpool

Vielen Dank für die schnelle Antwort!
Ich werde es morgen einmal versuchen umzusetzen.

Liverpool

Wenn ich jetzt das Formular Pic durch das doppelklicken in die Zeile der Vorrichtung öffne, kommt der Fehler das er das 'Me' nicht gefunden hat.

DoCmd.OpenForm "Pic", , , "[Vorrichtung]=" & "'" & Me.[Vorrichtung] & "'",,, DLookup("Bild","A","[Vorrichtung]='" & Me.[Vorrichtung] & "'") habe ich in den VBA-Code des Unterformulars geschrieben.

Me.picVorrichtung.Picture = Me.OpenArgshabe ich unter "Beim Öffnen" in das Formular Pic gespeichert

C:\Bilder\1.jpg habe ich in die gleiche zeile wie die Vorrichtung unter der Spalte "Bild"gespeichert

MaggieMay

Hallo,

wenn der Zugriffspfad zum Bild in demselben Datensatz steht, mit dem du das Formular öffnest, so brauchst du den Pfad nicht beim Aufruf zu übergeben, sondern kannst im Load-Ereignis des aufgerufenen Formulars darauf zugreifen:Me.picVorrichtung.Picture = Me.[i]Bildpfad [/i]
Zitathabe ich unter "Beim Öffnen" in das Formular Pic gespeichert
Das ist VBA-Code und der gehört in eine Ereignisprozedur.
Freundliche Grüße
MaggieMay

Liverpool

Hallo,

Ich möchte das Formular "Pic" aber gerne so gestalten das es mir zu einer anderen Vorrichtung wieder einen anderen Bildpfad öffnet, obwohl es das gleiche Formular ist. Meine Tabelle im Unterformular habe ich extern aus Exel importiert.

MaggieMay

Wenn der Bildpfad sich in dem Datensatz befindet, mit dem das Formular geöffnet wird, so sollte auch bei erneutem Öffnen das aktuelle Bild angezeigt werden. Hast du andere Erfahrungen gemacht? Bist du überhaupt schon bis zur Bildanzeige gekommen?
Freundliche Grüße
MaggieMay