🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: free.it.visual-basic
Article #859

Dati da excel ad access con DDE e API

#859
From: Sgnapolo
Date: Wed, 01 Jun 2005 11:57
62 lines
3150 bytes
Devo importare su access dei dati da excel e ho utilizzato le DDE per far 
'parlare' tra loro access e excel.
Per quel che riguarda l'importazione tutto OK, ma non so come chiudere il 
file Excel una volta che ho terminato di importare i dati. Ho pensato 
(male?) di utilizzare le API, ma nulla da fare.
La domanda a questo punto �: dove sbaglio? (Esiste un metodo per killare un 
processo? Pu� essere quello sotto?)
Scrivo il listato (� un po' scopiazzato da sitocomune (grazie! sempre utile) 
e un po' di qua di l� su internet)

'setto l'oggetto Database al database corrente
    Set cdb = CurrentDb
'nella variabile app di tipo stringa salvo il percorso dove � memorizzato 
nel mio pc l'EXCEL.EXE
    app = "C:\Programmi\Microsoft Office\OFFICE11\EXCEL.EXE"
'nella variabile file di tipo stringa salvo il percorso del foglio Excel dal 
quale prender� i dati
    file = CurrentProject.Path & "\mio.xls"

'lancia in esecuzione il file Excel
    idprocess= Shell(app, 6)

'apre il canale di comunicazione con il file Excel
    chan = DDEInitiate("Excel", "System")
'RIGHE DI IMPORTAZIONE RIGHE E COLONNE.......

'chiude il canale (oltre ai vari riferimenti alla tabella del DB in cui sono 
finiti i dati)
    DDETerminate chan


'Prelevo l 'ID del processo lanciato
'Creo un Handle per quel processo
 hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, idprocess)

!!!!!----->>> Questa � la parte di cui non sono sicuro della sintassi (cmq 
non funziona)

 Call TerminateProcess(hProcess, STILL_ACTIVE)

 Call CloseHandle(hProcess)
'---->>> il file Excel rimane comunque aperto! Pecch�? Why?

Queste sono le API:
Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long

Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400

Grazie per l'aiuto.(e scusate la lungaggine, ma un esempio � meglio di 1000 
parole)

Rick 
Technical Details
Message-ID: <Tohne.1474228$35.55021808@news4.tin.it>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news-out.tin.it!news-in.tin.it!news4.tin.it.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: f94ee,63eb5c2bc3680dbe,start
X-Google-Attributes: gidf94ee,public
X-Google-Language: ITALIAN,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news-out.tin.it!news-in.tin.it!news4.tin.it.POSTED!not-for-mail
From: "Sgnapolo" <ribes71@hotmail.com>
Newsgroups: free.it.visual-basic
Subject: Dati da excel ad access con DDE e API
Lines: 64
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
Message-ID: <Tohne.1474228$35.55021808@news4.tin.it>
Date: Wed, 01 Jun 2005 11:57:39 GMT
NNTP-Posting-Host: 82.56.4.89
X-Complaints-To: "Please send abuse reports to abuse@tin.it and technical notifications to newsmaster@tin.it"
X-Trace: news4.tin.it 1117627059 82.56.4.89 (Wed, 01 Jun 2005 13:57:39 MET DST)
NNTP-Posting-Date: Wed, 01 Jun 2005 13:57:39 MET DST
Organization: TIN