Neuigkeiten:

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

Mobiles Hauptmenü

Tabellen migration zu Azure -> zentrale Dateiablage möglich?

Begonnen von datekk, Mai 10, 2016, 10:02:30

⏪ vorheriges - nächstes ⏩

datekk

Hallo,

ich habe meine Datenbank Tabellen in eine SQL Datenbank bei MS Azure migriert. Soweit alles gut, aber mir ist aufgefallen, dass diese Datenbank die Datenfelder für die Dateianlage nicht unterstützt. D.h. in den Tabellen wird der Datentyp "Anlage" nicht mehr unterstützt.

Ich muss die Dateien wohl irgenwie anders zentral abspeichern, an einem Ort, der über das Internet zu erreichen ist, aber so, dass auch nur die Access Anwendung drauf zugreifen kann. Ich habe mir unter Azure auch eine Cloud erstellt, aber damit komme ich im Moment noch gar nicht zurecht.

Hat jemand von Euch einen Tipp wie man von Access aus am besten auf im Internet gespeicherte Dateien zugreifen kann?

Im wesentlichen handelt es sich um Signaturen/Unterschriften von Mitarbeitern sowie PDF Dateien und kleinere Bilder. Ich habe gesehen es gibt die Möglichkeit, Datendienste einzubinden.. ich finde aber so gut wie nix darüber bei Google. Wäre auch der Zugriff via FTP möglich? Wichtig wäre, dass die Daten nicht von außen abrufbar sind. In Access sollte ein Zugriffsschlüssel nicht unbedingt einsehbar sein - er sollte aber dort hinterlegt sein, damit die Datenbank Nutzer die Datenbank nutzen können ohne ständig ein Passwort eingeben zu müssen.


LG
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

PhilS

Zitat von: datekk am Mai 10, 2016, 10:02:30ich habe meine Datenbank Tabellen in eine SQL Datenbank bei MS Azure migriert. Soweit alles gut, aber mir ist aufgefallen, dass diese Datenbank die Datenfelder für die Dateianlage nicht unterstützt. D.h. in den Tabellen wird der Datentyp "Anlage" nicht mehr unterstützt.
Der SQL Server unterstützt den Anlage/Attachment-Datentyp grundsätzlich nicht. Das hat nichts mit Azure zu tun. Du kannst die Dateien stattdessen in einem varbinary(max) speichern.

Wenn du viele und/oder sehr große Dateien hast, wäre der BlobStorage auf Azure evtl. die sinnvollere Alternative (vor allem preislich).
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

datekk

Hallo PhilS,

danke für Deine Antwort. Kannst Du mir sagen, wie ich den BlobStorage von Access aus ansprechen kann? Also so, dass ich z.B. eine Datei dort ablege, den Pfad zur Datei in einem Tabellenfeld spreichern kann und die Datei mittels dieses Pfades z.B. als Hintergrundgrafik für einen Bericht nutzen kann?

Was ist varbinary(max) und wie nutzt man das in Access?

Habe schon erfolge mit FTP. Das lässt sich wie ein normaler Pfad ansprechen.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

PhilS

#3
Zitat von: datekk am Mai 10, 2016, 20:37:53Kannst Du mir sagen, wie ich den BlobStorage von Access aus ansprechen kann? Also so, dass ich z.B. eine Datei dort ablege, den Pfad zur Datei in einem Tabellenfeld spreichern kann und die Datei mittels dieses Pfades z.B. als Hintergrundgrafik für einen Bericht nutzen kann?
Mangels eigener Erfahrung nicht genau.

Du kannst die Dateien im BlobStorage mit einer REST-API ansprechen. Das würde dann etwas auf das gleiche wie ein Dateipfad hinauslaufen. Allerdings weiß ich nicht, wie dort die Benutzerauthentifizierung umgesetzt wird.

Es gib auch eine Azure Storage Client Library for .NET, ich weiß aber nicht ob diese über COM-Interop auch aus Access verwendbar ist.

Der Artikel Get started with Azure Blob storage using .NET ist ein guter Einstiegspunkt in das Thema.

Grundsätzlich solltest du bedenken, dass du die Dateien aus dem BlobStorage über das Internet herunterlädst. Dateien, die sich üblicherweise nicht ändern, wie z.B. Hintergrundgrafiken würden ich daher eher lokal speichern, um die Latenz zu vermeiden.

ZitatWas ist varbinary(max) und wie nutzt man das in Access?
Varbinary ist ein SQL-Server-Datentyp für Binärdateien. Diesen würde man üblicherweise verwenden, um Dateien in einer SQL-Server-DB zu speichern. Analog zu dem OleObject-Datentyp in Access. Der Attachment-Datentyp ist ja nur ein Konstrukt, um diesen Datentyp herum, das die Handhabung durch den Benutzer vereinfacht.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

datekk

#4
Ok, ich bin kein Stück weiter - aber nicht wirklich voran gekommen. Folgende konkrete Fragen habe ich:

1. Wie kann ich ein in einer OLE definierten Tabellenspalte abgelegtes Bild (.jpg oder .gif !) in einem Formular oder Bericht einem Bild-Steuerelement zuweisen und anzeigen?

2. Wie kann ich einer OLE Spalte eine Datei zuweisen über ein Formular und über VBA?

3. Wie kann ich ein in einer OLE Spalte hinterlegtes Bild (.jpg !) als Hintergrund für ein Bericht nehmen (me.picture)?

4. Welche Möglichkeiten einer EINFACHEN Einbindung eines zentralen Speichers gibt es? Ich habe FTP probiert, geht nur über große Umwege / nicht als Netzlaufwerk mit Laufwerksbuchstaben einbindbar (bzw. nur über Umwege). Ich brauche DRINGEND einen zentralen Speicherort - der ZWINGEND im Internet liegen muss- , den ich ganz normal ohne Umwege mit Access ansprechen kann - der aber auch die notwendige Sicherheit mitbringt. Hierbei ist mir wichtig, dass der Nutzer meiner Datenbank keine Passwörter dafür eingeben muss und diese auch nicht auslesen kann.


LG
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

möglicherweise wird nicht alles mit Access(+ Jet) umzusetzen sein:
http://www.donkarl.com/?FAQ8.6

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

Hallo Franz. Besten Dank. Punkt 4 konnte ich wahrscheinlich lösen - über den Azure Blob Storage, welcher sich tatsächlich sehr einfach als Netzlaufwerk verbinden lässt. Das Portal bietet hierfür direkt den NetUse Befehl. Gibt es eigentlich eine Möglichkeit, den CMD Befehl NetUse direkt in Access ausführen zu lassen oder geht das nur über eine zu erstellende Skript Datei?

Kann mir noch jemand die Fragen 1-3 beantworten?

LG

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

So, kurzer Zwischenstand. Meine Datenbank ist "on Air" ;)

Ich habe auf die Binary (OLE) Felder komplett verzichtet und arbeite mit Verlinkungen. Für die Linkdaten habe ich Textfelder angelegt. Leider sind meine Gifs dadurch nicht mehr Transparent, aber damit muss ich wohl leben.

LG
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps