Acc2007: Anlage mit LoadFromFile

12/09/2007 - 01:00 von Günter Gerold | Report spam
Hallo,

mit LoadFromFile möchte ich Bilder in eine Datenbank einfügen.
Diese werden vorher mit Irfanview verkleinert.

Jetzt habe ich das Problem, daß der Dateiname immer gleich ist. Deshalb
motzt Access mit Fehler 3820.
Wie kann ich das umschiffen ?

Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
pfad = fncPfadHolen("")
ExecCmd WshShell.ExpandEnvironmentStrings("%programfiles%") &
"\irfanview\i_view32.exe" & " " & pfad & " /resize=(300,0) /aspectratio
/convert=c:\test.jpg"
rs.MoveFirst
Do Until rs.EOF
If rs!Artikelnummer = Me!Artikelnummer Then
rs.Edit
Set rspictures = rs.Fields("dateien").Value
rspictures.AddNew
rspictures.Fields("FileData").LoadFromFile "c:\test.jpg"
rspictures.Update
rs.Update
Me.Requery
Exit Do
End If
rs.MoveNext
Loop
rs.Close

Günter Gerold
 

Lesen sie die antworten

#1 Henry Habermacher
12/09/2007 - 04:15 | Warnen spam
Hallo Günter

Günter Gerold wrote:
Jetzt habe ich das Problem, daß der Dateiname immer gleich ist. Deshalb
motzt Access mit Fehler 3820.
Wie kann ich das umschiffen ?



Das einfachste ist, wenn du auf den nicht normalisierten Datentypen
Attachment verzichtest. Oder wenn Du diesen einsetzt, dann in einer
normalisierten Struktur, also z.B.

DeineTabelle (PK: DeineID, Autowert)
|
1:n
|
DeineTabelleBilder (PK: DeineID, BildID)
|
n:1
|
Bilder (PK: BildID, Autowert)


Damit Du die sonst angenehme Funktionalitàt des Attachment Datentypen
(Vorschau, kein Aufblasen der Datenbank) verwenden kannst, kannst Du in der
Tabelle Bilder schon den Attachment Datentypen einsetzen, aber eben jeweils
nur 1 Bild je Record einfügen lassen.

Scheinbar wurde hier bei der Konstruktion des Datentypen gleich zwei mal
gesündigt (Verletzung der Normalformen und ungünstiger Schlüssel über den
Dateinamen des Bildes statt einer eindeutigen, künstlichen ID)

Gruss
Henry





Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen