Newsgroup: it.comp.appl.access
Titolo: Aggiungere documenti in access

Ho un applicazione creata in access 2003, ho inserito una maschera dove
dovrebbe essere inseriti dei documenti in pdf. QUesto compito lo
delegherò a delle persone che non dovrebbero avere accesso alla
struttura maschera, ma che dovrebbe avere la possibilità di inserire
questi file in modo facile (come quelli che si usano per uploadare file
sui siti internet).
Qualcuno sa cosa suggerirmi? (la scelta di passare in php, la terrò in
considerazione più avanti nel tempo)
ciao mau

mau ha scritto:

Se si tratta di un db archiviatore Baraldi ne ha creato uno ottimo che
puoi scaricare dal suo sito 
www.alessandrobaraldi.it
 (ARCHIDOC)

non riesco a scaricare ARCHIDOC; sono rinco oppure c'è un problema nel
sito?

 sito?
prova a cercarlo su  
WWW.SITOCOMUNE.COM

 sito?
No c'era un problema ora è OK...!
Purtroppo ARUBA(o qualcuno che ha bypassato le sicurezze) mi ha
devastato il sito...!
@Alex

Io più che di un archiviatore, avrei bisogno di un sistema, che mi
permetta di inserire in modo automatico dei documenti in un
applicazione di access, e di poterli togliere quando non più necessari

 applicazione di access, e di poterli togliere quando non più necessari
Di automatico non c'è nulla, serve generarlo l'automatismo.
Quel Demo però ha diverse potenzialità, tra le quali quello che dici,
ovviamente
dovrai customizzarlo...!
@Alex

non è che riesci a convertirlo per access 2000?

 non è che riesci a convertirlo per access 2000?
Devo provare, non ricordo se ho usato alcune cose non presenti in
A2000...!
Verifico e ti faccio sapere.
@Alex

ok, grazie

 ok, grazie
Pare funzionare, dammi la tua mail che te lo invio..!
@Alex

erre...@yahoo.it

La prima cosa che puoi fare per migliorare il db è la seguente:
al pulsante registra documento sostituisci il codice con il seguente:
   Dim NomeFile As Variant
   Dim lngFlags As Long
   Dim gfni As accOfficeGetFileNameInfo
   Dim OutText As String
   Dim result
   On Error GoTo HandleErrors
   lngFlags = lngFlags Or bacGfniAllowMultiSelect
   lngFlags = lngFlags Or bacGfniInitializeView
   With gfni
      .lngView = 1
      .lngFlags = lngFlags
      .strFile = ""
      .strDlgTitle = "Seleziona Documento da allegare"
      .strOpenTitle = "Allega"
      .strInitialDir = "C:\"
      .hwndOwner = Application.hWndAccessApp
   End With
   If OfficeGetFileName(gfni, -1) = 0 Then
      result = (Trim(gfni.strFile))
      result = Split(CStr(result), Chr(9))
      If IsArray(result) Then
          For Each NomeFile In result
                Call SaveNewRecC(SpostaFile(CStr(NomeFile)))
                Me.ElencoDOC.Form.Requery
          Next
      End If
   End If
con il codice originale puoi registrare un documento alla volta, mentre
con questo puoi selezionare più file.

 @Alex 

Fabio Valsangiacomo ha scritto:

No a te non lo do...!
;-)
Facciamo che lo metto nel sito e vi allego il Link per il Download,
così lo può scaricare chi vuole.
@Alex

BR1 ha scritto:

Si direi doverosa osservazione, se ci sono altre modifiche le inserisco
senza problemi
e rifaccio il Setup.
Questa appena posso la implemento.
Ciao
@Alex

Alessandro Baraldi ha scritto:

-Ho inserito una gestione utenti (solita maschera di log-in
nomeutente/password), ed ho aggiunto in anagraficala voce tutti, quindi
posso registrare i documenti come dominio pubblico mettendo anagrafica
tutti, oppure se metto come anagrafica il mio nome, chi effettua il
log-in come tuonome non vede i miei documenti.
-i documenti si registrano con la path completa (es. NON
c:\pippo\pluto.pdf MA \\ufficio1\disco c\pippo\pluto.pdf)
-il programma lo utilizzo anche per condividere materiale protetto da
password, e non volendo divulgare la password ho modificato la funzione
nel seguente modo:
Public Function ShellAndWaitForTermination( _
        sShell As String, _
        Optional ByVal eWindowStyle As VBA.VbAppWinStyle =
vbNormalFocus, _
        Optional ByRef sError As String, _
        Optional ByVal lTimeOut As Long = 2000000000 _
    ) As Boolean
Dim hProcess As Long
Dim lR As Long
Dim lTimeStart As Long
Dim bSuccess As Boolean
On Error GoTo ShellAndWaitForTerminationError
    ' This is v2 which is somewhat more reliable:
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False,
Shell(sShell, eWindowStyle))
'######################## INIZIO CODICE MODIFICATO
#####################
        If InStr(1, Indirizzo, "Milano Finanza", vbTextCompare) > 0
Then
            Call Sleep(1000)
            SendKeys "password{ENTER}", True
        End If
'######################## FINE CODICE MODIFICATO #####################
    If (hProcess = 0) Then
        sError = "This program could not determine whether the process
started.  Please watch the program and check it completes."
        ' Only fail if there is an error - this can happen when the
program completes too quickly.
    Else
        bSuccess = True
        lTimeStart = timeGetTime()
        Do
            ' Get the status of the process
            GetExitCodeProcess hProcess, lR
            ' Sleep during wait to ensure the other process gets
            ' processor slice:
            DoEvents: Sleep 100
            If (timeGetTime() - lTimeStart > lTimeOut) Then
                ' Too long!
                sError = "The process has timed out."
                lR = 0
                bSuccess = False
            End If
        Loop While lR = STILL_ACTIVE
    End If
    ShellAndWaitForTermination = bSuccess
    Exit Function
ShellAndWaitForTerminationError:
    sError = Err.Description
    Exit Function
End Function
Chiaramente tale funzione è migliorabile puntando ad un campo password
nel db. (if isnull me.password = false then ..... sendkeys .........
se non ricordo male tu hai previsto la registrazione o la copia del
documento, io ne ho previsto anche lo spostamento:
Private Function SpostaFile(strOLDPath As String) As String
   Dim strpath As String
   Dim newPatH As String
   Dim RetVal
   DoCmd.Hourglass True
   'newPatH = RetPathFe & PathFolder & ParseFileName(strOLDPath)
   'retval = CopyFileWindowsWay(strOLDPath, newPatH)
   SetFileAttributes strOLDPath, FILE_ATTRIBUTE_ARCHIVE 'newPatH,
FILE_ATTRIBUTE_ARCHIVE
   ''Name strOLDPath As newPatH
   If fIsFileDIR(strOLDPath) And Me.boxFileAllegato = 1 Then
   newPatH = RetPathFe & PathFolder & ParseFileName(strOLDPath)
   RetVal = CopyFileWindowsWay(strOLDPath, newPatH)
   SetFileAttributes newPatH, FILE_ATTRIBUTE_ARCHIVE
   Kill strOLDPath
   Else
   newPatH = strOLDPath
   End If
   DoCmd.Hourglass False
   SpostaFile = newPatH
End Function
-per carenza di tempo non ho potuto modificare la funzione di
eliminazione documento che è estremamente lenta, in quanto puoi
cancellare un doc alla volta
sarebbe bello poter utilizzare i selettori record per eliminare i
documenti.
-riguardo alla selezione di più file ricordo di aver letto da qualche
parte che per non incorrere in errori di sistema in caso di selezione
di troppi file bisogna settare la grandezza di una variabile (si
accettano volentieri delucidazioni in merito)

Alessandro Baraldi ha scritto:

P.S.:
odio i tuoi setup è così bello con un clic dal sito aprire l'mdb :-)

 odio i tuoi setup è così bello con un clic dal sito aprire l'mdb :-)
Purtroppo per alcuni demo non è possibile in quanto prevedono una
struttura
dietro, ed i Setup servono quasi esclusivamente per questo.
Porta pazienza....
;-)
@Alex

Potete scaricarlo quì:
http://www.alessandrobaraldi.it/ARCHIDOC.Zip
Non lo lascio per molto......
@Alex

 ;-)
Mhm quasi ci credevo e mi domandavo già perchè ! sagoma ;-)
Grazie di cuore
Fabio


 > @Alex
Ovviamente è da sostituire a quello che viene installato con il
SETUP...
C:\Programmi\ARCHIDOC\
@Alex