Newsgroup: it.comp.appl.access
Titolo: Fine esecuzione di un batch

Salute a tutti,
vorrei sapere come stabilire quando un batch file lanciato da access termina
la sua esecuzione per continuare il processo.
Si tratta di un prg che lancia un ftp e deve lavorare sui file trasferiti,
quindi è necessario capire quando sono disponibili.
Qualche suggerimento?
Grazie
SN

 quindi è necessario capire quando sono disponibili.
cerca sul Sito Comune la funzione RunAppAndWait.
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://volftp.mondadori.com/italiani/galletta/
per scaricare un gioco di DAMA ITALIANA
*************************************************

la sua esecuzione per continuare il processo.
Riporto dal sito comune:
Avviare un file eseguibile ed attenderne la fine. (95-97) 
Fornitore: Antogal 
'dichiarazioni
Private Declare Function OpenProcess Lib "kernel32" _
      (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
      ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" _
      (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32"_
      ByVal hObject As Long) As Long
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFF
Public Sub RunAppAndWait(FileName As String, WindowsStyle As Integer)
   'Autore: AntoGal 
   'avvia un'applicazione e sospende il thread chiamante finchè
   'il processo non termina
   'Accetta:
   ' FileName = nome del file eseguibile
   ' WindowsStyle = modalità di visualizzazione finestra
   ' (costante di Access, vedi la funzione Shell)
   Dim hProg As Long
   hProg = Shell(FileName, WindowsStyle)
   If hProg Then WaitOnProgram (hProg) 'chiama solo se tutto ok
End Sub
Private Sub WaitOnProgram(idProg As Long)
   'codice valido solo per Win32
   Dim hProc As Long, iret As Long
   hProc = OpenProcess(SYNCHRONIZE, False, idProg)
   If hProc <> vbNull Then
      iret = WaitForSingleObject(hProc, INFINITE)
      CloseHandle hProc
   End If
End Sub
'la routine si usa per esempio così:
RunAppAndWait "notepad.exe", vbNormalFocus
Nota: Se si richiama un file BAT, e si desidera che la finestra DOS
venga chiusa automaticamente, inserire il comando CLS come ultima riga
nel BAT.
--
Lorenzo Coronati
--
<<Nessuno sa che questa affermazione e' vera>>
(John D. Barrow)
--

Scusate se mi intrometto , tutto bello ma non ci ho capito niente . Su che
tipo di file vengono scritte le righe a cui si riferisce Lorenzo (Antogal)
?? Sul .bat cosa ci si scriverebbe ??? forse chiedo troppo ma la verità è
che in effetti sto cercando di capire se è possibile lanciare una macro o
batch o VB (che
lancia più "queries" che eseguono le elaborazioni su un altro
DB sulla stessa macchina )  . La situazione più semplice sarebbe una query
sul
DB-A che però aggiorna dei campi sulla tabella del DB-B  in base a dei
criteri sulla stessa
macchina . .Come faccio a riferirmi ad un DB esterno al quale sto lavorando
??
Ci tengo a dire che sto ponendo la domanda a più riprese per avere il
maggior numero di informazioni , vi ringrazio , siete tutti molto competenti
.
Ciao

 macchina. Come faccio a riferirmi ad un DB esterno al quale sto lavorando?
L'attesa della fine di un processo non credo sia la soluzione migliore per
il tuo caso. Prova invece a guardare sull'help OpenCurrentDatabase.
Giusto un esempio semplice semplice:
Dim appAccess As Access.Application
'restituisce riferimento all'oggetto Application di Microsoft Access 97
Set appAccess = CreateObject("Access.Application.8")
'apre database in Microsoft Access
appAccess.OpenCurrentDatabase "C:\tope\pamand.mdb" ' ;-)
'esegue funzioni, chiama macro ecc...
[................]
'chiude il DB
appAccess.CloseCurrentDatabase
'libera la ram
Set appAccess = Nothing
Se questo esempietto non ti è chiaro, comincia a studiarti un po'  di VBA e
automazione, altrimenti la vedo difficile... come avrai capito non si
risolve tutto con un paio di copia e incolla nel punto giusto.


DB sulla stessa macchina )  
E allora i bat non c'entrano una fava.
Devi lavorare col vba.


nel BAT.
secondo te a cosa si riferiva ?? meglio che io abbandoni la discussione eh ?
la riprenderò quando sarò un po' più bravo .... spero
Ciao

 Dim appAccess As Access.Application
In effetti non pensavo fosse facile , ad access mi avvicino ora ma il mio
passato-presente è fatto di CED , sono un programmatore Cobol per mainframe
(sigh!) che è alle prese con i "nuovi" sistemi di sviluppo e creazione di
applicazioni , il P. computer lo conosco "bene" come hardware e S.O. e sono
al corrente degli sviluppi della tecnologia ( mi tengo informato per quanto
posso) , ma nello strato dell'office automation sono un po' "tasso". Non che
sia proprio a digiuno ma molto ma molto ma molto inferiore al livello del
Newsgroup che ora frequento con piacere .
Mi accorgo che la gestione e lo sviluppo in access è complessa (se si scava
a fondo) e facile (se si ha bisogno di poco) per cui estremamente duttile .
Sto imparando grazie a voi ...
Scusate le lungaggini e ... vado a cercare    OpenCurrentDatabase
Ciao

 Comandi ftp, credo, chiedilo a lui.
LOL


 Scusate le lungaggini e ... vado a cercare    OpenCurrentDatabase
Subito dopo cerca:
OpenQuery e RunSql, ti serviranno per eseguire delle query che hai nel
secondo DB, e delle istruzioni SQL costruite al momento.


 la riprenderò quando sarò un po' più bravo .... spero
Come ti ha già detto Lorenzo, non c'entra nulla con il tuo problema.
Thor ha bisogno di eseguire un file batch (i BAT del DOS, non procedure
batch remote), ed ha bisogno di attendere la fine del programma prima di
proseguire con le istruzioni successive.
Nel tuo caso, devi utilizzare un po' di office automation per poter
"pilotare" un MDB da un altro.


secondo te a cosa si riferiva ?? 
Temo di non capire: cos'e' esattamente di quella frase che
non ti e' chiaro?
Se dovessi dirla a parole mie, temo che sarebbero quasi
identiche...


Esiste un po' di letteratura sull'argomento automazione per Office 9x ??
Sopportatemi eh ?
Ciao e grazie di nuovo !!!

 Sopportatemi eh ?
Quota un po' del messaggio precedente, è utile per capire a chi stai
rispondendo e per riprendere il filo del discorso.
Per rispondere alla tua domanda, il sito Microsoft è pieno di esempi su come
richiamare Word da Access, Excel da Access, Access da Access, L'assistente
dal cestino ecc. :-)
Qualcosa trovi anche al nostro Sito Comune.
Basta cercare...



Cosa significa LOL?

 Cosa significa LOL?
Un po' meno di ROTFL...
