Newsgroup: it.comp.appl.access
Titolo: Versioni access, 32 e 64 bit, distribuzione e runtime

Scenario.
File access costruito con la versione office 2000, lavorato e convertito in office XP, ora con la versione 2010 sempre come mdb.
Quando lo compilo in mde da access 2010 in fase di distribuzione non funziona. Errore vari, tipo 'Formato di database non riconosciuto' oppure riferimento mancante o non valido al file excel.exe versione 1.7 e/o riferimento mancante o non valido al file msword. exe versione 8.5.
Stessa cosa se creo un nuovo file *.accdb, importo tutto, e poi lo compilo in *.accde.
Se invece compilo lo stesso file in *.mde da access XP e lo distribuisco funziona tutto correttamente. L'unica differenza è che prima di compilarlo devo modificare i riferimenti mancanti a excel e word.
Per tanti motivi, non ultimo per non avere due versioni obsolete contemporaneamente installate, vorrei evitare tutta la procedura.
Cosa mi sono perso?
Dov'è l'errore?
 
Altra informazione.
Qualora fosse necessario convertire il database in formato a 64 bit quali accorgimenti devo prendere?

Ci sono molte cose in quello che dici che in realtà andrebbero approfondite... perché da quanto accenni hai sviluppato con concetti tecnici affetti da Versioning.
La prima cosa che mi viene da chiederti è perché hai dei riferimenti di Excel e Word nel tuo progetto...?
La risposta dovrebbe essere che non servono i riferimenti se si sviluppa mantenendo come concettonl'indipendemza dalle versioni...
Mde ed Accde usano 2 motori Jet differenti...
Ecc...
 
Non voglio banalizzare la risposta ma per quanto mi pare di comprendere potresti non aver ragionato proprio in modo corretto... da qui serve fermarsi per capire meglio anche in base alle tue risposte su quanto ti ho esposto.
 
@Alex

Ci sono i riferimenti a excel e word perché devo esportare dei dati in quei formati.
Fino a qui probabilmente non serve nessun riferimento. Però, dopo l'esportazione, deve fare qualche elaborazione nel file prodotto, inserendo formule e/o formattando i dati, e a quel punto ho necessità dei riferimenti per poterci lavorare. 
 
Se però ci sono altri sistemi mi serve uno spunto perché non saprei da dove iniziare.

No non servono i riferumenti, servono per come TU hai ritenuto di sviluppare... ed è proprio questo il problema, vale a dire una conoscenza della tecnica sicuramente da approfondire e migliorare.
 
Se tu avessi sviluppato con tecnica LATEBINDING avresti eliminato il problema dei riferimenti senza dubbio... 
 
Nel contesto quindi ho il dubbio che tu possa aver commesso altri errori tecnici per non consapevolezza... ma questo richiederebbe l'analisi del tuo progetto.
 
@Alex

Sicuramente di errori ne ho fatti e ne farò tanti altrimenti non avrei avuto problemi. 
Pensavo, evidentemente erroneamente, che fosse la strada corretta.
Cercherò di approfondire il tuo suggerimento.
Intanto grazie mille

Aggiornamento.
Ho seguito il consiglio di Alex e il problema dei riferimenti è stato risolto.
Ho anche approfittato per fare un po' di pulizia.
 
Però continuo ad avere problemi con i runtime.
L'errore n. 2544 "Impossibile trovare l'oggetto" ce l'ho solo con runtime.
La riga incriminata dovrebbe essere: DoCmd.SelectObject acTable, , True
Se non letto male succede quando non ci sono tabelle visibili nel database.
Domani verifico.
 
Però se creo un *.accde da office 2010 e uso il runtime 2007 mi ritorna l'errore "formato database sconosciuto".
E qui mi sono perso.
 
Qualche idea?
 

Ulteriore aggiornamento:
pc con windows 10, access runtime 2010 32 bit.
Sul pc è installato anche office 2013 a 64 bit.
 
con il runtime funziona "solo" il file in formato *.accdb
però il file *.accde continua a non funzionare.
L'errore è:
"impossibile aprire il database perché il relativo progetto vba non può essere letto"
 
 
in altro pc con configurazione simile (office 2019 a 64 bit anziché 2013) invece funziona tutto bene.
 
idee?


In termini generali, per esser certi di non avere problemi, devi distribuire l'Accde con la versione Runtime corrispondente alla versione di Access con cui l'hai creato.
 
Saluti
 

Grazie per il consiglio.
 
"Lavoro" in questa situazione:
Sistema operativo Windows 10 pro 64 bit
Access pro 2010 SP2 a 32 bit
Vorrei distribuire con il runtime 2010 a 32 bit
 
Seguendo la tecnica suggerita da Alex ho risolto buona parte dei problemi.
Vorrei dire tutti ma visto che in alcuni casi non funziona correttamente vuol dire che manca (almeno) un pezzo.
 
Posso dire che nei 2/3 pc senza nessuna versione di access semplicemente installando il runtime tutto funziona.
 
La cosa si complica se c'è una versione di access superiore a 64 bit (con un pc con una versione a 32 bit pare funzionare).
 
Il piano B è distribuire la versione non compilata che pare funzionare in tutti gli scenari.

Hai:
1) Activex...?
2) Siciarazioni API...?
 
@Alex

 La cosa si complica se c'è una versione di access superiore a 64 bit (con un pc con una versione a 32 bit pare funzionare).
 
 
Ovvero:  "impossibile aprire il database perché il relativo progetto vba non può essere letto"
 
Secondo me la tua applicazione viene eseguita (o meglio, tenta d'eseguire) con Access 64 invece che con il Runtime 2010 da te installato.
 
Come hai creato la stringa d'avvio della tua applicazione Runtime?
 
Saluti
 
 
 
 


API si, Activex no.
Avevo il controllo calendario in una versione precedente.


Scusa ma non so cosa intendi con "stringa d'avvio".
 
Non faccio un pacchetto d'installazione. Installo a mano il runtime e faccio doppio click sul file *.accde (e, sempre a mano, imposto il runtime come programma predefinito per quel tipo di file).


Sulle postazioni che hanno un Office diverso da quello usato su 
postazione sviluppo, non potresti installare solo il runtime Access 
della stessa versione Access pc sviluppo, ed avviare il programma usando 
il run-time piuttosto che l'Access di Office installato?

 il run-time piuttosto che l'Access di Office installato?
 
cerco di non toccare "altre installazioni" se possibile.
Tuttavia, nel caso specifico, nel computer incriminato avevo disinstallato la versione di access a 64 bit ma il problema era rimasto.


 
 
Il problema potrebbe nascere da qui.
 
Esegui la tua applicazione creando un collegamento d'avvio del tipo:
 
"Percorso MSACCESS.EXE" /Runtime "Percorso tuo File Accde"
 
 
Saluti
 


domani farò una prova, oggi non riesco, ma non ho capito la differenza e/o il senso.
 
di fatto fa già in questo modo perché ho impostato l'esecuzione automatica con access 2010 versione runtime (c'è solo quella nel pc) e quando faccio doppio click parte proprio quella (ne sono certo).
 
puoi darmi qualche informazione in più?

 puoi darmi qualche informazione in più?
 
 
Da sempre la convivenza tra Runtime e Full Access è problematica; la cosa migliore è forzare l'esecuzione dell'applicazione Runtime con la versione corretta di MSAccess.exe (che poi è quello che fa il package/installer).
 
Ai tempi in cui circolava solo Office a 32 bit si risolveva sempre, ora la faccenda s'è complicata: Office a 32 bit e 64 non dovrebbero coesistere sullo stesso PC.
 
Comunque, se ho ben capito tu hai disinstallato la versione 64 bit di Full Access; ma poi hai lanciato una utility di pulizia del registro di windows?
 
Saluti
 

 
Dai un'occhiata anche al seguente link:
 
https://answers.microsoft.com/it-it/msoffice/forum/all/errore-pacchetto-con-access-runtime-impossibile/b5149f64-6f12-4f7c-ad50-54da041c2c86
 
 
(in sostanza, accertati che Runtime Access 2010 sia SP2)

Ciao,
Office 32bit e office 64bit o parte di essi non possono coesistere in nessun modo anche se di versioni differenti.
Quindi, ad esempio, Access rt 32bit non può essere installato su una macchina in cui sia presente office 64bit (qualsiasi versione essi siano).
 
Ciao,
Mat.


ho una macchina che ha office 2019 a 64 bit e access runtime 2010 a 32 bit e non ho nessun problema
in ogni caso concordo che meno "mischioni" si fanno e meglio è

 Saluti
 
A questo link: 
https://support.microsoft.com/it-it/office/disinstallare-office-da-un-pc-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?redirectsourcepath=%252fen-us%252farticle%252fhow-to-uninstall-or-remove-microsoft-office-2010-suites-90635a1d-aec8-4653-b358-67e1b766fc4d&ui=it-it&rs=it-it&ad=it
 
 
ho scelto "Opzione 2 - Disinstallare completamente Office con lo strumento di supporto per la disinstallazione"
 
dovrebbe anche aver pulito il registro ma ormai non posso più verificare perché l'installazione è stata ripristinata


oggi provo con la stringa esplicita d'avvio e verifico la versione e poi ti do riscontro.
 
nel frattempo grazie mille per le idee

Prove effettuate con successo.
Installando il SP2 il db *.accde ha cominciato a funzionare correttamente anche in presenza di versioni di access successive e/o precedenti (anche a 64 bit).
Senza SP2 non bastava la stringa di avvio. 

Approfitto per ringraziare tutti per i consigli e la pazienza.
 
Approfitto per chiedere supporto per una eventuale conversazione a 64 bit dell'applicazione.
Strumenti da utilizzare, errori classici da evitare e cose del genere.