Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage ob Datei in Anlagefeld hinterlegt

Begonnen von Konservenkalle, Juli 28, 2020, 19:56:36

⏪ vorheriges - nächstes ⏩

Konservenkalle

Hallo Zusammen,

hat jemand eine Idee, wie in einer Abfrage überprüft kann, ob eine Datei im Anlagefeld hinterlegt ist?
Hintergrund ist, ich möchte in einer Abfrage ein Feld hinzufügen welches "Abgeschlossen" ausgibt, wenn ein Dokument in die Anlage hochgeladen wurde.

Vielen Dank im Voraus für eure Hilfe!

LG Konservenkalle

maddhin

Hallo Konservenkalle,

ich kann Dir leider nicht konkret weiterhelfen, aber etwas Googlen hilft vielleicht. Oder Du guckst mal, wie Access solche Dateien in der Tabelle speichert, dann kannst Du im Grunde konkret abfragen, ob die Datei da ist.

Wieso ich hier aber antworte ist Folgendes: ggf. macht es für Dich eher Sinn, über Access pro Firma (o.ä.) einen Ordner auf der Festplatte anzulegen und dort die Datei zu speichern. Und dann eben zu prüfen, ob eine entsprechende Datei vorhanden ist.

Eine Access-Datei hat - soweit ich weiß - ein Limit von 2GB. D.h. irgendwann ist das erreicht und Du kannst nicht weiterarbeiten.

Zudem habe ich mehrfach gelesen, dass man generell keine Anhänge in Access speichern sollte, weil schwer zugänglich, etc.

Hier etwas Code für einen Button, der einen Order auf der HDD erstellt und den Link in einem Textfeld speichert/ausgibt. Der Ordername ist der Firmenname (auf 25 Zeichen gekürzt und ohne Firmenbezeichnung):

Private Sub cmdCreateFolder_Click()
Dim fso As FileSystemObject
Dim strCorpFolderName As String
Dim FolderPath As String
Dim strCorpFolder As String
Dim strFolder As String
Dim strCorpName As String


'create a subfolder to store all company data
strCorpFolder = "Companies"
CreateFolder (strCorpFolder)
'create full path including the company data folder
FolderPath = CurrentProject.Path & "\" & strCorpFolder & "\"

'define the company folder name
strCorpName = Me.Corp_Name
'Remove Co, ltd, gmbh etc from folder name
'MsgBox ("Original name: " & strCorpName)
strCorpName = Replace(strCorpName, "Co., Ltd.", "")
'MsgBox ("Name after Replace: " & strCorpName)
strCorpName = Replace(strCorpName, "Co., Ltd", "")
'MsgBox ("Name after Replace 2: " & strCorpName)
strCorpName = Replace(strCorpName, "Co.", "")
'MsgBox ("Name after Replace 3: " & strCorpName)
strCorpName = Replace(strCorpName, "Co.,", "")
strCorpName = Replace(strCorpName, "Co. Ltd.", "")
strCorpName = Replace(strCorpName, "Co. Ltd", "")
strCorpName = Replace(strCorpName, "Co.,Ltd.", "")
strCorpName = Replace(strCorpName, "Gmbh", "")
strCorpName = Replace(strCorpName, "Gmbh & CoKG", "")
'Shorten Company name to 25 characters
strCorpFolderName = Left(strCorpName, 25)

'set full path and create folder
strFolder = FolderPath & strCorpFolderName
'MsgBox (strFolder)
CreateFolder (strFolder)

'set the Link Folder to the newly created folder
Me.Corp_Link_Folder = "#" & strFolder & "#"
End Sub


Sub CreateFolder(sFolder As String)
'Check if a folder exists, and if it doesn't, create folder with VBA MkDir
    If Len(Dir(sFolder, vbDirectory)) = 0 Then
        MkDir sFolder
        MsgBox (sFolder & " folder created")
    End If
End Sub

PS: für die Profis: diese REPLACE-Sache sollte man sicherlich anders und einfacher machen. Das wird irgendwann mal überarbeitet, wenn ich VBA mal richtig kann LOL

DF6GL

Hallo,


diese Abfrage ermittelt die Anzahl von Anlagen, die pro Datensatz im Anlagefeld abgelegt sind.


tab_Anlagen: Tabellenname
AnlID:  Primärschlüsselfeld
Anl_Anlagen:  Anlage-Feld

SELECT AnlID, Count(Anl_Anlagen) AS AnlagenAnzahl FROM tab_Anlagen GROUP AnlID

Konservenkalle

Hallo Zusammen,

ich hatte mich bereits mit der Alternative befasst, eine eigene Anlagenverwaltung, also über Hyperlinks zu starten. Da gibt Google zum Glück einige Lösungsvorschläge her. :) Dort wäre es dann auch möglich, über eine Berechnung zu prüfen, ob etwas vorhanden ist. @maddhin Deinen Code werde ich mir definitiv mal ansehen. Scheint - zwar nicht für dieses Projekt, aber für weitere andere - sehr nützlich zu sein!

Die Lösung von @DF6GL ist jedoch genau das, wonach ich gesucht habe. Zumindest würde es mein Problem einfach lösen.

Habt vielen Dank Zusammen!