Collegamenti ipertestuali dinamici per la gestione File

di il
7 risposte

Collegamenti ipertestuali dinamici per la gestione File

Salve, ho rotto le scatole un po' a tutti con questa storia, ma adesso ci sono...
Situazione dei miei DB: Uso Access come Front end quindi ho un DB Mysql su un pc e Altri Front End Access su altre macchine in altri uffici collegati tramite VPN.
Ho necessità di condividere dei File attraverso i vari DB.
Ho scartato sia i campi Ole che gli allegati di access per motivi di pesantezza e di incompatibilità con mysql(dei secondi).
La soluzione è Bellissima..
Ho creato una tabella in cui ho un campo testo dove immettere il percorso del fie
ora se dal front end 1 copio un percorso file che mira alla cartella condivisa, questo non andrà bene per il Front end 2 e 3 che si trovano in tutt'altro luogo.
Ho usato una formula in una query del tipo: NOMEFILE:Right([CAMPOPERCORSO];Len([CAMPOPERCORSO])-InStrRev([CAMPOPERCORSO];"\")) per ricavare il nomefile.estensione
Ma devo fare di più.
In ogni Fron end devo aggiungere al nome file una parte fissa con il percorso relativo al Fron end specifico.
In modo che risulti "PERCORSO_FRONT_END_IN_USO"+Right([CAMPOPERCORSO];Len([CAMPOPERCORSO])-InStrRev([CAMPOPERCORSO];"\")).
In questo modo tutti possono salvare un percorso che risulterà relativo non fosse per il nome File che invece è fisso, in seguito la formula sottrae la parte antecedente del percorso (relativo) e le aggiunge quella specifico de Front End che sta usando.
La difficoltà è solo che in questo caso il percorso risulta essere un campo calcolato che anche se formattato come collegamento ipertestuale non parte.
Che ne dite?

7 Risposte

  • Re: Collegamenti ipertestuali dinamici per la gestione File

    tommy55 ha scritto:


    In modo che risulti "PERCORSO_FRONT_END_IN_USO"+Right([CAMPOPERCORSO];Len([CAMPOPERCORSO])-InStrRev([CAMPOPERCORSO];"\")).
    In questo modo tutti possono salvare un percorso che risulterà relativo non fosse per il nome File che invece è fisso, in seguito la formula sottrae la parte antecedente del percorso (relativo) e le aggiunge quella specifico de Front End che sta usando.
    ma vuoi dire che memorizzi localmente sul client un file che poi potrà essere "scaricato" anche da altri client ad altri capi di una vpn?
    io terrei tutto centralmente, sia per una questione di "comodità" (non ti serve sapere il percorso del front-end in uso) sia per una questione di sicurezza dei dati (controlli di accesso e backup centralizzati)

    però magari non ho capito niente della tua architettura
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    Hai ragione a rispondere così,
    sono stato preso dalla foga e ho omesso di dire che:
    i File non li salvo nei db, mysql e nemmeno su i db Acccess Fron end.
    non potrei, poichè la vpn non ha una velocità così performante e i campi file sono troppo pesanti, siano essi allegati, o Ole, o Blob. Come fare allora.
    Metto una cartella condivisa in vpn accessibile da tutti i pc e salvo i file al suo interno. Ogni Pc vede la cartella con percorsi diversi e qui il problema. Se da pc 1 carico un file nella cartella condivisa, ne salvo il percorso all'interno della mia tabella ODBC in un campo Longtext. Il pc 2 leggendo la tabella non può accedere al file poichè l'inidizzo era relativo al pc1, da qui la soluzione. Faccio in modo che una query front end legga la tabella ODBC e sotragga la parte antecedente del percorso nome del file e lo sostituisca con quello del fron end 2. In pratica ogni fron end leggerà tutti i percorsi file, siano essi generati dal pc giusto o da gli altri, e modificherà l'indirizzo in modo da raggiungere il file.
    L'unica cosa è che l'indirizzo così generato, è in realtà un campo calcolato, che se cliccato non si attiva nemmeno se lo formato come collegamento ipertestuale, mentre se lo copio manualmente in una tabella funziona.
    Dimmi che mi hai capito ti prego.
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    tommy55 ha scritto:


    Metto una cartella condivisa in vpn accessibile da tutti i pc e salvo i file al suo interno. Ogni Pc vede la cartella con percorsi diversi e qui il problema.
    Perché?
    Non puoi semplificarti la vita creando un'area di deposito file centrale rispetto alla vpn, in modo che tutti i client la vedano come \\nome_o_ip_server\nome_share\ (presumendo di essere in ambiente Windows, dato l'utilizzo di Accesso come front-end).

    tommy55 ha scritto:


    Faccio in modo che una query front end legga la tabella ODBC e sotragga la parte antecedente del percorso nome del file e lo sostituisca con quello del fron end 2. In pratica ogni fron end leggerà tutti i percorsi file, siano essi generati dal pc giusto o da gli altri, e modificherà l'indirizzo in modo da raggiungere il file.
    L'unica cosa è che l'indirizzo così generato, è in realtà un campo calcolato, che se cliccato non si attiva nemmeno se lo formato come collegamento ipertestuale, mentre se lo copio manualmente in una tabella funziona.
    Secondo me ti stai (di nuovo) complicando la vita inutilmente.
    Se effettivamente il percorso è diverso per ogni front-end/client, allora crea una tabella di appoggio nella quale salvare la parte variabile di percorso relativa a ogni front-end (nell'ipotesi che questa parte variabile per front-end sia però costante per tutti i file).

    Quindi avrai una tabella descrittiva dei file, epurata dagli elementi variabili:
    
    CREATE TABLE `file_elenco` (
    	`id` INT(10) UNSIGNED NOT NULL,
    	`nome` VARCHAR(255) NOT NULL COMMENT 'solo il nome del file senza il percorso',
    	`tipo` INT(11) NULL DEFAULT NULL,
    	`descrizione` TEXT NULL,
    	`creato_da` INT(10) UNSIGNED NOT NULL,
    	`modificato_da` INT(10) UNSIGNED NOT NULL,
    	`data_ora_creazione` DATE NOT NULL,
    	`data_ora_modifica` DATE NOT NULL,
    	PRIMARY KEY (`id`),
    	UNIQUE INDEX `nome` (`nome`)
    );
    
    e una tabella di configurazione:
    
    CREATE TABLE `file_percorsi_utente` (
    	`id_utente` INT(10) UNSIGNED NOT NULL,
    	`percorso_file` VARCHAR(255) NOT NULL,
    	PRIMARY KEY (`id_utente`)
    );
    
    Quando un front-end deve leggere un file, estrae dalla tabella di configurazione il proprio percorso e lo aggiunge al nome del file: hai il percorso complessivo del file con il vantaggio che se un client/front-end dovesse cambiare il proprio percorso (variazione della topologia di rete?), cambi solo il valore del parametro della tabella di configurazione senza dover modificare tutti i record dei file.

    Consumi quei 100 byte in più per una tabella, che recuperi abbondantemente evitando di replicare le informazioni del percorso per ogni file (che di fatto non ti servono visto che le dovresti ricalcolare ogni volta) e con il vantaggio di una maggiore chiarezza (secondo me).
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    Perché?
    Non puoi semplificarti la vita creando un'area di deposito file centrale rispetto alla vpn, in modo che tutti i client la vedano come \\nome_o_ip_server\nome_share\ (presumendo di essere in ambiente Windows, dato l'utilizzo di Accesso come front-end).
    Perchè le mie capacità sono limitate, e la vpn è fatta con team viewer o hamachi, non è una cosa professionale, è fittizia non c'è melle risorse di rete del pc server. Ma fa comunque il suo lavoro, e con le tabelle odbc è sufficente, non fosse per la gestione File. Per cui in risorse di rete ho un indirizzo IP generato dal Team viewer che mi fa accedere alle cartelle condivise del pc (server)
    Per quanto riguarda le tabelle d'appoggio, era un discorso semplicistico per farti capire la situazione front end, in realtà sono arrivato subito dopo alla conclusione che nella tabella ODBC in mysql và registrato solo il nome del file.estensione .I percorsi alla cartella dei frontend risiedono in un'altra tabella, e tramite query diventano indirizzo completo. Ma purtroppo non ho ancora capito come mai in un campo calcolato formattato come link non mi parte il collegamento, ho il sospetto che la mia formula che partiva da un collegamento ipertestuale memorizzi alla fine del file un # in più che si aggiunge a quello della formattazione.
    Se avessi più basi e tempo avrei messo tutti i file in un database mysql in tabelle con campo ole,avrei creato una vista parametrica in mysql che avesse selezionato i record ole riferiti alla Form access in modo da richiamare solo il file ole in questione e non tutti. Ma è una cosa troppo difficile.
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    tommy55 ha scritto:


    la vpn è fatta con team viewer o hamachi
    ok, adesso ho capito

    tommy55 ha scritto:


    Ma purtroppo non ho ancora capito come mai in un campo calcolato formattato come link non mi parte il collegamento, ho il sospetto che la mia formula che partiva da un collegamento ipertestuale memorizzi alla fine del file un # in più che si aggiunge a quello della formattazione.
    qui entriamo in territorio Access, dal quale mi tengo ben lontano

    tommy55 ha scritto:


    Se avessi più basi e tempo avrei messo tutti i file in un database mysql in tabelle con campo ole,avrei creato una vista parametrica in mysql che avesse selezionato i record ole riferiti alla Form access in modo da richiamare solo il file ole in questione e non tutti. Ma è una cosa troppo difficile.
    guarda che conservare nel database l'intero contenuto di un file è raramente una buona strategia; perché, di norma, i db non son pensati per fare quello
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    Guarda che conservare nel database l'intero contenuto di un file è raramente una buona strategia; perché, di norma, i db non son pensati per fare quello

    Bene, allora significa che battevo la testa sul punto giusto. Userò i percorsi file, niente grossi db,
    Per quanto riguarda access, penso che sia una questione di possibilità, malgrado i suoi limiti rispetto agli altri prodotti, da quando lo uso, in azienda non si perde nulla, e siamo molto ma molto più efficenti, poi implementerò sempre di più le viste di mysql in back end in modo da sfruttare la mostruosa velocità di calcolo di mysql.
  • Re: Collegamenti ipertestuali dinamici per la gestione File

    Allora sono arrivato ad avere una query che unisce il campo Testo: [NOME_FILE] alla stringa del collegamento locale in questa maniera ( il campo NOME_FILE comprende anche l'estensione del file)
    Percorso:"C:\Documents and Settings\CARTELLA_CONDIVISA\Documenti\"+[NOME_FILE]
    Il mio problema è che access non lo riconosce come link, nel senso che se provo a fare una maschera il campo calcolato della query chiamato Percorso: non me lo vede come collegamento ipertestuale nemmeno se modifico le proprietà del campo nella maschera.
    Non è possibile avere nelle maschere dei campi calcolati come Collegamenti ipertestuali?
    X favore sono al 99 %
Devi accedere o registrarti per scrivere nel forum
7 risposte