Forums Neueste Beiträge
 

Verknüpfung externer Dateien mit einer Access Datenbank

01/10/2009 - 13:33 von Michael Hochbaum | Report spam
Liebe Leute,

ich habe folgendes Problem. In einer Access Datenbank gibt es eine Tabelle
mit dazugehörigem Formular, mit Hilfe dessen Patientendaten in die Tabelle
gespeichert wurden. Darüber hinaus wurde von jedem Patient ein Foto
angefertigt. Diese Fotos befinden sich in einem seperaten Ordner. Das
Wiederfinden der Patientendaten über das Formuar geschieht mit Hilfe der
Patientennummer. Wird eine Nummer in das Suchfeld des Formulares eingegeben,
erscheinen sàmtliche zuvor abgespeicherten Stammdaten zu der gesuchten
Person. Zusàtzlich soll nun auch noch das zu dem entsprechenden Patienten
passende Foto aus dem externen Ordner automatisch angezeigt werden.

Momentan sieht es folgendermaßen aus: Mit Hilfe eines Buttons "Bild
einfügen" wird das Foto angefordert. Der VBA Code daziu lautet:

Private Sub getpic_Click()
On Error GoTo Er

Dim fd As FileDialog, FileVar As Variant

Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Bilddateien", "*.gif; *.jpg; *.jpeg; *.bmp", 1
.InitialFileName = aktVerz & "\imgs\" & Me.Prob_ID 'CurrentProject.Path
'Pfad der DB als Vorgabe"
'.InitialView = msoFileDialogViewThumbnail 'Miniaturbilder anzeigen


If .Show Then '= -1 Then
For Each FileVar In .SelectedItems
'Debug.Print FileVar
If Len(FileVar) > 0 Then
Me!BildPfad = FileVar
LoadPic
End If
Next FileVar
End If

'.InitialFileName = Left(FileVar, InStrRev(FileVar, "\")) 'Pfad der
zuletzt geöffneten Datei als Vorgabe
End With

Set fd = Nothing

PostMessage Application.hWndAccessApp, WM_SETFOCUS, 0&, 0& 'Fokus zu Access
zurück holen
Me!getpic.SetFocus

Ex:
On Error Resume Next
Exit Sub

Er:
Set fd = Nothing
MsgBox "getpic: " & Err.Description
Resume Ex
End Sub


Private Sub delete_Click()
If MsgBox("Bild wirklich löschen?", vbYesNo + vbQuestion, "Bild löschen") =
vbYes Then
Me!BildPfad = Null
Me!getpic.SetFocus
LoadPic
Me.Refresh
End If
End Sub


Private Sub Form_AfterUpdate()
LoadPic
End Sub

Leider funktioniert dieser Code nicht wie gewünscht.

Welche Möglichkeit gibt es, das zu den aufgerufenen Patiendaten passende
Bild anzeigen zu lassen. Die Suche der Patientendaten geschieht über die
Patientennummer 1, 2, 3 und so weiter. Die Fotos sind analog dazu eindeutig.

Für Hilfe und Unterstützung bin ich außerordentlich dankbar.
Sollte etwas unklar sein, bitte ich um Rückmeldung. Ich werde dann
versuchen, den Sachverhalt genauer zu erklàren.

Viele Grüße
Michael
 

Lesen sie die antworten

#1 Karl Donaubauer
01/10/2009 - 14:09 | Warnen spam
Michael Hochbaum wrote:
ich habe folgendes Problem. In einer Access Datenbank gibt es eine
Tabelle mit dazugehörigem Formular, mit Hilfe dessen Patientendaten
in die Tabelle gespeichert wurden. Darüber hinaus wurde von jedem
Patient ein Foto angefertigt. Diese Fotos befinden sich in einem
seperaten Ordner. Das Wiederfinden der Patientendaten über das
Formuar geschieht mit Hilfe der Patientennummer. Wird eine Nummer in
das Suchfeld des Formulares eingegeben, erscheinen sàmtliche zuvor
abgespeicherten Stammdaten zu der gesuchten Person. Zusàtzlich soll
nun auch noch das zu dem entsprechenden Patienten passende Foto aus
dem externen Ordner automatisch angezeigt werden.

Momentan sieht es folgendermaßen aus: Mit Hilfe eines Buttons "Bild
einfügen" wird das Foto angefordert. Der VBA Code daziu lautet:
...
.Filters.Add "Bilddateien", "*.gif; *.jpg; *.jpeg; *.bmp", 1
...
.InitialFileName = aktVerz & "\imgs\" & Me.Prob_ID
'CurrentProject.Path 'Pfad der DB als Vorgabe"
...
Welche Möglichkeit gibt es, das zu den aufgerufenen Patiendaten
passende Bild anzeigen zu lassen. Die Suche der Patientendaten
geschieht über die Patientennummer 1, 2, 3 und so weiter. Die Fotos
sind analog dazu eindeutig.
...



Es ist nicht klar, wie der Bildordner zu finden ist ist.
Angenommen, der Ordner imgs befindet sich direkt unterhalb
des Orders mit der aktuellen Datenbank. Dann könntest du
ein Bild-Steuerelement (z.B. "pctPatient") in das Formular
einfügen und im Ereignis "Beim Anzeigen" des Formulares
das passende Bild in das Steuerelement laden:

Me!pctPatient.Picture = _
CurrentProject.Path & "\imgs\" & Me!Prob_ID & ".jpg"

Das wàre also ein Einzeiler.
Bleibt noch die Frage nach dem Bildtyp. Sind das immer die
gleichen oder kann das variieren, wie deine Filtercodezeile
oben das andeutet?

In diesem Fall müsstest du den Ordner vorher mithilfe der
Dir-Funktion (s. <F1>) nach einem Dateinamen durchsuchen,
der die Prob_ID enthàlt. Wàre auch keine Hexerei.

Informationen und Beispiele zu Bildern findest du auch hier:

Bilder speichern
www.donkarl.com?FAQ2.2

Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg

Ähnliche fragen