Avatar billede fredslundf Nybegynder
06. november 2013 - 11:05 Der er 2 kommentarer og
1 løsning

Opret database enten som alm, fil eller access fil til kvitteringer

Er der nogen der kan fortælle mig hvad der er nemmest og smartes hvis jeg vil lave en mappe hvor jeg gemmer alle mine kvitteringer.

For at få lidt styr på dem ville jeg gerne tilføje nogen detaljer under egenskaber>detaljer, som jeg kan under billeder.

Det kan man dog ikke i f.eks. Word, pdf som er dem der kommer mange af.

Jeg vil gerne kunne tilføje

1. Sælger
2. Produkt
evt. udløb af garanti

Samtidig vil jeg gerne have databasen til at kunne håndtere både, PDF, JPEG og de formater som man typisk ellers vil gemme sin kvittering i eller hvordan den nu er modtaget pr mail

Er det mig der ikke kan finde ud af det i en alm. fil. eller fortælle mig om man vil kunne hvis jeg køber access?

mvh. Laust

Køre 8.1
og har 365
Avatar billede magic-mouse Novice
06. november 2013 - 14:17 #1
Det kan ikke tage så lang tid at lave en database med en blob der du kan lægge dine kvitteringer.
Avatar billede fredslundf Nybegynder
06. november 2013 - 15:17 #2
Nu var det ikke hvor lang tid det tager jeg spurgte om, men hvordan man laver en sådan database ?
Avatar billede bvirk Guru
10. november 2013 - 13:26 #3
Interessant nok, er det faktisk teknisk muligt, i windows under NTFS filsystemet at gemme selvdefinerede detaljer om enhver filtype. Det kræver måske installation af noget ekstra (dsofile.exe) - og så er det måske blot de undeliggende api eller com facilitet der dermed forefindes.
Der har så den skavank at det er NTFS proprietært - for filer som ikke kan indeholde metadata (som tekstfiler) gemmes oplysninger i 'alternate datastream' (ADS) - én fil i NTFS systemet er nemlig ikke (omend i praksis stort set altid) en navngivet 'samling data' men en navngivet liste af 'data samlinger'.
En database løsning er netop god, for mappeindhold kan dermed pakkes, sendes og kopieres til ikke NTFS baserede medier uden de selvdefinere detaljer forsvinder!
Følgende har jeg lige leget med. Access Databasen, skal i brug ikke startes direkte, men gennem et vb script der kaldes fra en filemanagers kontekstmenu (stifinders højrekliksmenu) - jeg kalder fildetaljerne for 'appendikser'
Appendikserne gemmes i en access database i hver eneste mappe hvor der 'tilføjes til filer' - en, første gang nyoprettet database, til hver mappe.

To tabeler:
-----------
DocApp (id autonumber, aName tekst)
- de selvdefinerede detalje keywords - som f.eks 'sælger','produkt'

FileDocApp (docApp tekst,fileName tekst,val tekst) - sammensat nøgle docApp+fileName - docApp slår sin værdi op i en kombinationsboks
- her gemmes detaljerne

To formularer
------------

'Appendixes' - en datakilde løs modal popup formular med kontrolelementkilderne: skjult tekstbox: 'filename' og en underformular
'UFAppendixes' - vises kun som datasheet - datakilde: 'SELECT [filename], [docapp], [val] FROM Filedocapp;' - kontrolelementet 'docapp', der automatisk optræder som kombinationsboks gives etiketten 'skjul mig', og endnu en kombinationsboks 'appendix' med datakilde docapp gemmer sin værdi heri.

kode moduler
-------------
Form_Appendixes
    Private Sub Form_Close()
            DoCmd.Quit
    End Sub
   
    Private Sub Form_open(Cancel As Integer)
        fSetAccessWindow 0
        fileName = OpenArgs
        Caption = "filen: " & fileName
    End Sub

Form_UFAppendixes
    Private Sub appendix_NotInList(NewData As String, Response As Integer)
        CurrentDb.Execute "insert into docApp (aName) values(""" & NewData & """)"
        appendix = DMax("id", "docApp")
        Response = acDataErrAdded
    End Sub


function fSetAccessWindow er herfra http://www.access-programmers.co.uk/forums/showthread.php?t=218554
 

Installation, testet i access 2000, xpsp3 home
----------------------------------------------


I mappe c:\programmer\noname:
    databasen 'Filappendikser.mdb'
    vbs scriptet 'fappInv.vbs' med indhold:

filApp=pathOnlyS(Wscript.Arguments(0)) & "Filappendikser.mdb"
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.fileExists(filApp)=false then
    fso.CopyFile "C:\Programmer\noname\Filappendikser.mdb",pathOnlyS(Wscript.Arguments(0))
End If
set accapp = CreateObject("access.application")
accapp.opencurrentdatabase(pathOnlyS(Wscript.Arguments(0)) & "Filappendikser.mdb")
accapp.visible = true
accapp.DoCmd.OpenForm "Appendixes", , , , , , bareFileName(Wscript.Arguments(0))

Function bareFileName(pathName)
    bareFileName = Mid(pathName, InStrRev(pathName, "\") + 1):
End Function

function pathOnlyS(pathName)
    pathOnlyS=left(pathname,InStrRev(pathName, "\"))
End Function



Og endelig ændring i registy:
[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\Appendikser]

[HKEY_CLASSES_ROOT\*\shell\Appendikser\command]
@="wscript.exe C:\\Programmer\\noname\\fappInv.vbs %D"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester