Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
VB6: un eseguible che utilizza Excel, si blocca al cambio di versione ...
mercoledì 26 gennaio 2005 - 14.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
mer 26 gen 2005 - 14:01
Ciao a tutti,
sto scrivendo diverse applicazioni di import di dati da XLS ad un portfolio di Asset Management (tale Argis di Computer Associates). Il problema che sto affrontando è il seguente: una applicazione VB compilata su una macchina con ad esempio excel 2000, non funziona su un computer con Excel 2002 o 2003. Questo vale anche al contrario, ovvero il programma funziona SOLO con excel della stessa versione utilizzata nel progetto. Se inoltre apro il progetto, dove nelle reference avevo collegat excel 2003, su un computer con excel 2000, nelle reference mi trovo un bel "missing: microsoft excel 11.0 object library".
Domanda: esiste una reference più "elastica" trasversale alle versioni di office? che workaround si usa in questi casi?
ciao!!
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
mer 26 gen 2005 - 14:08
Vi aggiungo un progettino semplice semplice che apre un file XLS, scrive 4 cose e si chiude...
nei reference ho utilizzato EXCEL 9.0 visto che io ho office 2000.
il file si chiama "Excel e stampa.ZIP"
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 26 gen 2005 - 22:27
Ciao mitico,
si distribuiscono le DLL :)
Un uccellino mi ha suggerito di provare a fare così:
Dim exApp as Object
Set exApp=CreateObject("Excel.Application")
In questo modo non sei più vincolato ad una o all'altra versione.
Essendo però un oggetto generico (Object) non avrai l'intellisense.
Non ho potuto provare questa soluzione perchè non ho più VB6.0 :)
Fammi sapere se va.
ciao
david
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
gio 27 gen 2005 - 08:49
ahio!!
praticamente mi stai dicendo di fare come si faceva in ASP... createobject...
bhe.. provo... caso mai per avere l'intellisense e facilitarmi la vita, prima dichiaro nella reference la versione di XLS che ho sul mio sistema, e poi convertiro' la chiamata in "createobject"... potrebbe funzionare..
grazie per ora... ti faccio sapere
ricorda le stelline
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
gio 27 gen 2005 - 08:59
ahio!
in effetti sei un grande.. ma questo già lo sapevo da molti anni.... funziona. unica cosa il workbook non deve più essere definito
Dim excelWork As New Excel.Workbook
ma semplicemente
Dim excelWork As Object
mentre l'application è corretta cosi' come me l'hai scritta
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
ATTENZIONE: da versione a versione di XLS, alcuni comandi cambiano, anche se di poco... stiamo attenti a utilizzare comandi "comuni"!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 31 gen 2005 - 23:35
Ciao mitico,
si il CreateObject non faceva parte di ASP ma dell'architettura COM quindi lo potevi usare sia in VB6 che in ASP.
>da versione a versione di XLS, alcuni comandi cambiano, anche se di poco... stiamo attenti a utilizzare comandi "comuni"!!
Infatti questo è il problema in cui puoi incorrere.
Evidentemente con il CreateObject prende il nome di classe va a leggere nel registro e istanzia la versione disponibile di Excel e quindi seleziona la versione corretta. Naturalmente come tu hai detto devi usare oggetti generici (Object).
ciao
david
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
mar 1 feb 2005 - 08:53
allora mi merito qualche stellina...
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 1 feb 2005 - 22:30
Un bel cartone in testa e ne prendi 10 di stelline :)
ROTFL
Va bene ? :)
ciao
david
quettih
Profilo
| Newbie
25
messaggi | Data Invio:
mer 2 feb 2005 - 11:18
tu devi averne presi di cartoni!!!! guarda quante stelline....
:-))
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 4 feb 2005 - 23:18
mor sec !
ciao
david
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !