PDA

Vollständige Version anzeigen : Mehrere Bilder in einem Formular anzeigen


Saftpresse
19.01.2008, 14:48
Hallo allerseits,

ich möchte in einem Formular zu einem Datensatz eins oder mehrere Bilder bzw. Thumbnails darstellen (je nachdem wie viele Bilder dieser halt enthält).
Es sollen pro Zeile immer drei oder vier Bilder nebeneinander dargestellt werden und dann je nach Gesamtanzahl der Bilder wie viele Zeilen halt nötig sind. Falls soviele Bilder anzuzeigen sind, dass diese nicht mehr auf den Bildschirm passen, sollte man per Scrollbalken navigieren können.

Meine Bilde werden als Binärdaten direkt in der Datenbank, wozu ich die Funktionen aus dem Modul von Sascha Trowitzsch verwende:
http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=337

Alles was ich bisher in diversen Foren und beim Googeln gefunden habe taugt nicht wirklich etwas. Das, was es eigentlich trifft ist:
http://www.ms-office-forum.net/forum/showthread.php?t=168871
Das scrollen in dem Beispiel läuft allerdings bei mir ziemlich langsam aus welchem Grund auch immer. Außerdem suche ich eine kostenlose Variante, bzw. eine Idee wie ich mir das selber zusammenbasteln kann. Mir fehlt halt der Ansatzpunkt.

Also wenn Ihr Ideen habt oder Lösungen habt, wäre ich sehr dankbar.

Schönen Gruß und Dank
Martin

hcscherzer
19.01.2008, 15:13
Moin Martin,
sowas dynamisches ist in Access nicht so einfach zu lösen. Einfacher wäre es in einer .net Applikation, dort lassen sich zur Laufzeit beliebig viele Steuerelemente erzeugen.
In Access kannst Du das zwar auch, aber nur im Entwurfsmodus des Formulars. Die Alternative ist: die maximale Anzahl von Controls erstellen und alle unsichtbar. Zur Laufzeit dann zählen, wie viele Du für den jeweiligen Datensatz brauchst und diese dann jeweils sichtbar schalten.
Könnte aber - bei Binärdaten und den Controls zur Anzeige - immer ein träges Laufzeitverhalten haben.
Ich empfehle die Beschäftigung mit der Erstellung eines .net FrontEnds zur Access-DB als BackEnd.

Saftpresse
19.01.2008, 15:25
Danke erstmal für Deine Antwort. Puh schonwieder was Neues. Mit .Net habe ich mich noch gar nicht auseinandergesetzt (Mit Acces übrigens auch erst seit ein paar Wochen). Wenns nicht anders gehen sollte mache ich auch das, etwas anderes wäre mir jedoch lieber.

Ist es vielleicht denkbar, dass man das Ganze auch über mehrere in ein MSForms Frame eingebette MSForms Images realisieren kann? Wie gesagt ich bin kein Profi möchte mich aber, wenn ich mich erstmal einarbeite nicht mit etwas auseinandersetzen, was eine Notnagellösung ist. Dein Vorschlag klingt schonmal nicht nach Notnagel. Ich versuche nur rauszufinden, ob ich mir da auch was Vernünftiges zusammenbasteln kann mit den MItteln, von denen ich bisher zumindest schonmal eine Vorstellung habe.

Gruß Martin

hcscherzer
19.01.2008, 15:32
Ist es vielleicht denkbar, dass man das Ganze auch über mehrere in ein MSForms Frame eingebette MSForms Images realisieren kann?Keine Ahnung ...

Saftpresse
20.01.2008, 10:38
Ich habe mir mittlerweile mal .Net und sharpdevelopment installiert und ein bissl im Internet gesucht wie man z.B. eine Datenverbindung zu einer Access Datenbank herstellt, was auch funktioniert hat. Wenn ich .Net programmieren könnten, könnte ich jetzt auf meine Tabellen und Abfragen zugreifen.
Bevor ich da jetzt weitermache würde ich gerne noch ein paar Fragen stellen:

1. Ich nehme an meine Module, die ich z.B. benutzt habe zum Importieren von CSV Dateien, kann ich vergessen?

2. Ich war sehr froh die Lösung für das binäre Abspeichern von Bildern in Access Datenbanken gefunden zu haben (siehe Link oben.) Ich nehme an dafür brauche ich Ersatz, oder nicht?

3. Ich muss auch Diagramme später erstellen, was ich vormals über die PivotChart Ansicht eines Formulars gelöst hatte. Ist das auch in .Net möglich, oder gibt es sowas wie vorgefertigte Klassen in .Net, die mir das ermöglichen?

4. Ich blicke durch den ganzen .Net Dschungel nicht richtig durch. Mir fehlen teilweise die Stichwörter zum Googlen. Was ich zum Zugriff auf Daten bisher benutzt hatte war ja DAO. Unter .Net ist das Pendant ADO?

Ich bin über jede HIlfe dankbar (andererseits hoffe ich ja auch immernoch darauf, dass mir jemand eine Lösung für mein ursprünglich gepostes Problem verrät).

Dank und Gruß
Martin

hcscherzer
20.01.2008, 13:32
Moin Martin,
alles was sich im Access Backend abspielt kann doch so bleiben wie bisher.
Das .net Frontend setzt Du für die Visualisierung der Grafiken ein.
Unter .Net ist das Pendant ADO?Es ist ADO.NET (flexibler als ADO was die Verbindungen zur DB angeht).
Hier ist eine Seite (http://www.connectionstrings.com/?carrier=access), auf der ein paar Tipps zu finden sind, wie Du Dich per .Net auf die Access DB verbinden kannst.
Was Diagramme in .Net angeht hab ich keine Efahrungen. Ich exportiere Daten zu Excel, wenn ich mir Diagramme anschauen möchte (warum das Rad jedes Mal neu erfinden).

Saftpresse
20.01.2008, 18:52
Hall Hans,

Deine Antwort klingt ja schonmal gut. Das lässt hoffen ...

trotzdem verstehe ich leider nicht wie Du das meinst:

"alles was sich im Access Backend abspielt kann doch so bleiben wie bisher.
Das .net Frontend setzt Du für die Visualisierung der Grafiken ein."

Also bisher habe ich ja vor meine Datenbank komplett in Access zu erstellen. Also sprich die Forms zum Eingeben der Daten etc. Die Prozeduren, die ich zusätzlich dafür brauchte hatte ich in VBA erstellt. Das denke ich funktioniert auch alles (soweit ich das bisher überlicken kann - fertig ist es schließlich noch nicht), bis auf die Sache mit den Bildern!

Du hattes vorgeschlagen, das in VB.Net zu programmieren. Soweit so gut. Ich hatte mir darunter vorgestellt, dass ich die gesamte Benutzeroberfläche (Frontend) in .Net Prorammiere und sozusagen nur die Datenbank selbst in Access erstelle um sie als Datenquelle für meine Applikation zu benutzen.

Wenn ich jetzt aber schon Module in VBA geschrieben habe, dachte ich kann ich nicht von .Net darauf zugreifen. Z.B. das Modul, was ich erwähnt hatte zum binären einspeichern und Auslesen der Bilder in die Datenbank. Wenn ich in .Net eine Applikation schreibe, die mir die Bilder meinen Wünschen entsprechend ausgibt, MUSS ich doch auf die Funktionen dieses Moduls (in VBA programmiert) zugreifen. --> Geht das?

Oder läuft die Sache andersrum: Ich schreibe meine .Net Applikation für das Anzeigen der Bilder und rufe sie aus Access auf?

In beiden Fällen habe ich leider keine Ahnung wie ich mir das vorstellen soll.
Bisher habe ich mich an meine Datenbank zum Testen mal in shardpdev über den Datenbankexplorer angebunden (Microsoft Jet 4.0OLE DB Provider). Das scheint auch funktioniert zu haben. Es werden mir meine Tabellen, Views und gespeicherte Prozeduren angezeigt. Die gespeicherten Prozeduren sind allerdings vom Namen her meine Forms, die ich schon angelegt hatte. Die Forms kann ich mir leider auch nicht anzeigen lassen. Die Module, die ich auch noch in der Datenbank habe zeigt er mir gar nicht an.

Ich weiß, das das alles totale Anfängerfragen sind, aber das ist auch einfach alles toootal neu für mich. Wenn ich erstmal eine Vorstellung davon habe wie das laufen kann, finde ich mich schon zurecht. Vielleicht kannst Du oder jemand anderes mich auf den richtigen Weg bringen? Ich wäre sehr dankbar.

Schöne Grüße
Martin