Ablegen in die Datenbank würde ich nur, wenn genug Platz da ist. Versuche doch mal, das ganze als Hyperlinkverweis auf die Dateien zu speichern - setzt aber voraus, dass die Hyperlinkadressen für alle Benutzer deiner Datenbank erreichbar sind.
Ablegen in die Datenbank würde ich nur, wenn genug Platz da
ist. Versuche doch mal, das ganze als Hyperlinkverweis auf die
Dateien zu speichern - setzt aber voraus, dass die
Hyperlinkadressen für alle Benutzer deiner Datenbank
erreichbar sind.
Platz ist genug verfügbar. Das Problem könnte nur sein, dass der SQL-Server bei 4GB streikt, da es nur ein Express ist. Aktuell wird die Datei via Link „eingebunden“. Das grosse Problem ist aktuell nur, dass sich die Dateistruktur geändert hat und jetzt natürlich kein einziger Link mehr funktioniert hat. Ich hab das zwar jetzt so hingebogen, dass es wieder funktioniert, aber ich hätte gerne eine Lösung die vom Filer unabhängig ist.
Hast du mal überlegt, die Dateien in einer parallelen SQL-Datenbank abzulegen - so dass die eigentlich Arbeit mit den Daten nicht behindert wird. Du kannst z. B. in Prozeduren jede Datenbank des gleichen SQL-Servers ansprechen und dort die Informationen auslesen.
Meines Erachtens kann die MSDE Datenbanken bis 4 GB bearbeiten - aber eben mehrere, ergo würde ich die Datenbank auf mehrere verteilen.
So in etwa müsste die Prozedure in der aktuellen Datenbank aussehen. In der externen Datenbank (im Beispiel externeDatenbank) gibt es die Tabelle Dateiarchiv mit den Felder Dateinummer (int) und Datei (image).
create procedure externeDatei @Dateinummer
as
Select a.Datei from externeDatenbank.dbo.Dateiarchiv.Datei where Dateinummer = @Dateinummer
Hast du mal überlegt, die Dateien in einer parallelen
SQL-Datenbank abzulegen - so dass die eigentlich Arbeit mit
den Daten nicht behindert wird. Du kannst z. B. in Prozeduren
jede Datenbank des gleichen SQL-Servers ansprechen und dort
die Informationen auslesen.
Meines Erachtens kann die MSDE Datenbanken bis 4 GB bearbeiten
aber eben mehrere, ergo würde ich die Datenbank auf mehrere
verteilen.
Ich verwende SQL-Server, warum MSDE?
So in etwa müsste die Prozedure in der aktuellen Datenbank
aussehen. In der externen Datenbank (im Beispiel
externeDatenbank) gibt es die Tabelle Dateiarchiv mit den
Felder Dateinummer (int) und Datei (image).
create procedure externeDatei @Dateinummer
as
Select a.Datei from externeDatenbank.dbo.Dateiarchiv.Datei
where Dateinummer = @Dateinummer
return
Gruß EPa
Über ein Verteilen der DBen hab ich schon nachgedacht, aber vor das notwendig wird mach ich glaub ich lieber das Upgrade auf SQL-Server-Standard.
Aber wie bekomme ich via Access die Dateien da rein?
Die MSDE ist der abgespeckte Microsoft-SQL-Server.
In Access arbeitest du mit Projekten (Endung adp). Hier wird über Datei - Verbindung die Verbindung zum SQL-Server und zur Datenbank hergestellt. Automatisch werden in dein Projekt alle Tabellen + Abfragen (Sichten, Prozeduren, Funktionen) angezeigt. Diese Dinge werden aber auf dem SQL-Server gespeichert.
Formulare, Berichte, Makros, Module verbleiben in der Access-Datenbank.
Die MSDE ist der abgespeckte Microsoft-SQL-Server.
MSDE ist die alte abgespeckte Version vom SQL-Server. Seit geraumer Zeit gibt es den SQL-Server Express, daher meine Frage.
In Access arbeitest du mit Projekten (Endung adp). Hier wird
über Datei - Verbindung die Verbindung zum SQL-Server und zur
Datenbank hergestellt. Automatisch werden in dein Projekt alle
Tabellen + Abfragen (Sichten, Prozeduren, Funktionen)
angezeigt. Diese Dinge werden aber auf dem SQL-Server
gespeichert.
Formulare, Berichte, Makros, Module verbleiben in der
Access-Datenbank.
Gruß EPa
Das ist mir alles soweit klar. Wie kann ich mittels eines Access Formulars Dateien in der Datenbank ablegen?
Ich habe ein Formularfeld VollständigerDateiname, Varchar und ein Feld Datei, Image.
Im Formular gibt es einen Befehlsschaltfläche mit folgendem Code (verkürzte Form, OpenFile ist eine Funktion die über API den Windowsdialog zur Dateiauswahl aufruft und den Dateinamen zurückgibt.:
me.VollständigerDateiname = OpenFile("*.*|*.*", „c:“)
If me.VollständigerDateiname „“ Then
Me.Datei = me.VollständigerDateiname
Me.Datei.SourceDoc = me.VollständigerDateiname
Me.me.VollständigerDateiname .Action = acOLECreateEmbed
End If