Newsgroup: it.comp.appl.access
Titolo: Autoaggiornamento via Internet

Sigh come mai nessuno mi risponde ?
Vorrei far si che il mio programmino Access 2k si autoaggiornasse da 
internet.
Ho già gestito il tutto (Controllo versione, e download) ma come posso 
lanciare il file di setup appena scaricato ?
Dovrei di regola
1 chiudere access
2 Lanciare il setup
3 Rilanciare il mio programma aggiornato
Grazie a chiunque mi dia un consiglio
Roberto Spinella Esteban 

 wrote in message
news:4257ac41$0$8073$
5fc...@news.tiscali.it

Presumo sia un EXE il tuo SETUP...?
Immagino tu abbia un cmdButton da gestire, quindi su Click:
Dim RetVal
Docmd.Quit
RetVal = Shell("C:\Update.vbs", 1)
'-------------------------------------------------------------
'// SCRIPT VBS "Update.vbs"
'// Lancia il SETUP, attende la fine quindi lancia ACCESS
'// e il Tuo APPLICATIVO
'-------------------------------------------------------------
Dim WshShell
Dim Return
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run(FULLPATH_SETUP, 1, true)
Return = WshShell.Run(FULL_ACCESSPATH & " " & PATHAPPLICATIVO, 1, False)
Set WshShell=nothing
'-------------------------------------------------------------
Vedi tu di fare qualche testo io non ho potuto provare nulla,
eventualmente leggiti le info di MS quì:
http://msdn.microsoft.com/library/en-us/script56/html/wsMthRun.asp
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:473801c4caf87a8a2d...@mygate.mailgate.org
[CUT]
Sono stato forse un pò sintetico...!
 
'-------------------------------------------------------------
'  Questo Codice va eseguito su Evento CLICK
'-------------------------------------------------------------
 Dim RetVal
 Docmd.Quit
 RetVal = Shell("C:\Update.vbs", 1)
'-------------------------------------------------------------
Questo Codice lo metti in un File di Testo aperto con NotePad
e lo Salvi con un nome ad esempio "Update.vbs"
 
'-------------------------------------------------------------
'// SCRIPT VBS "Update.vbs"
'// Lancia il SETUP, attende la fine quindi lancia ACCESS
'// e il Tuo APPLICATIVO
'-------------------------------------------------------------
 Dim WshShell
 Dim Return
 Set WshShell = WScript.CreateObject("WScript.Shell")
 Return = WshShell.Run(FULLPATH_SETUP, 1, true)
 
 Return = WshShell.Run(FULL_ACCESSPATH & " " & PATHAPPLICATIVO, 1,
False)
 Set WshShell=nothing
'-------------------------------------------------------------
I Riferimenti sono sempre validi


 ha scritto nel messaggio 
news:dfcb9330d3ca11d4da...@mygate.mailgate.org...


 ha scritto nel messaggio 
news:4257ac41$0$8073$5fc...@news.tiscali.it...

Non hai modo di "Aggiornare" cioè sostituire un mdb o mde in uso con le 
maschere mentre questo è aperto.
Mi spiego meglio. Se hai diviso il db potrai aggiornare/sostituire il BE 
anche se il FE è aperto ma non potrai aggiornare il FE se questo è aperto o 
peggio se stai usando una funzione proprio dal FE.
Personalmente aggiorno sempre il BE da internet ma quando si tratta di 
aggiornare l'interfaccia utente (FE) mando una e-mail al cliente che scarica 
l'aggiornamento del FE (con winzip o winrar gli propongo un eseguibile). 
Ovviamente esiste un sito dove il cliente può controllare se vi sono 
aggiornamenti e scaricarli da solo.
(Per un esempio: 
http://www.gestionefrantoio.it/download.htm
)
Un altra soluzione consiste nel creare un db separato che si occupa di 
aggiornare il FE o il BE principali. In questo caso potrai fare tutti gli 
aggiornamenti/sostituzioni che vuoi.
Ciao, Carlo

(...)
Docmd.Quit chiude Access, quindi l'istruzione successiva non verrà mai
eseguita !
La sequenza corretta dovrebbe essere la seguente:
RetVal = Shell("C:\Update.vbs", 1)
Docmd.Quit
Però è necessario che lo script vbs aspetti la chiusura di Access
prima di effettuare la sostituzione del FE, per esempio testando
l'esistenza del file con lo stesso nome del FE ed estensione ldb.

 wrote in message
news:425874c0$0$8069$
5fc...@news.tiscali.it
[CUT]
Non allarmiamoci per cosě poco, facciamo fare tutto a VBS, anche
la chiusura di Access via WMI.
'-------------------------------------------------------------
'  Questo Codice va eseguito su Evento CLICK
'-------------------------------------------------------------
Dim RetVal
RetVal = Shell("C:\Update.vbs", 1)
'-------------------------------------------------------------
'-------------------------------------------------------------
'// SCRIPT VBS "Update.vbs"
'// Lancia il SETUP, attende la fine quindi lancia ACCESS
'// e il Tuo APPLICATIVO
'-------------------------------------------------------------
Dim WshShell
Dim Return
Dim obj
    ' Questa parte chiude ACCESS
    Dim obj As Object
    For Each obj In GetObject("winmgmts:").ExecQuery("SELECT * FROM
Win32_Process WHERE Name='MSACCESS.exe'")
        obj.Terminate
    Next
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Return = WshShell.Run(FULLPATH_SETUP, 1, true)
    Return = WshShell.Run(FULL_ACCESSPATH & " " & PATHAPPLICATIVO,
1,False)
    Set WshShell=nothing
    set obj=nothing
'-------------------------------------------------------------


 ha scritto nel messaggio 
news:5260c9153b19dd8554...@mygate.mailgate.org...

Caro Alex
sembra che vada tutto MANUALMENTE ma ...
ho messo un bottone nel menů principale della mia pplicazione per testare la 
routine e mi viene generato quet'errore
 errore di runtime 5
 Chiamata di routine o argomento non validi
in corrispondenza del codice
RetVal = Shell("C:\GinsUpdate.vbs", 1)
lanciando lo stesso file invece sia da DOS Prompt che da Esegui il tutto 
funziona correttamente
eppure lo stesso codice l'ho usato per lanciare altri programmi esterni 
senza problemi
ed il nome del file č corretto xchč cambiandolo mi dice
 errore di runtime 53
 IMPOSSIBILE TROVARE IL FILE
Boh misteri della programmazione.
Adesso perň sono molto stanco e vado a letto, domattina ci lavoro sopra 
ancora.
Ciao e buonanotte
Roberto 

 > RetVal = Shell("C:\Update.vbs", 1)
Prova eventualmente con ShellExecute:
http://www.mvps.org/access/api/api0018.htm


Carlo Costarella ha scritto:



Non ho mai provato, perchè spedisco sempre via mail i nuovi mdb completi,
ma teoricamente sarebbe possibile che una maschera di avvio sul db, una
volta verificata la disponibilità dell'aggiornamento e scaricato il file,
sostituisse solo alcuni oggetti, importando dal file scaricato le nuove
maschere/report/query/ecc... e compattandosi.
Così si potrebbe fare senza usare un db aggiuntivo, però trovo più
semplice usare uno dei due metodi che hai segnalato.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Non allarmiamoci per così poco, facciamo fare tutto a VBS, anche
