Errori programma utilizzando Access Runtime 2007

Anonimo
2010-08-09T07:38:45+00:00

Salve a tutti,

sto testando il mio progetto su un pc windows Xp professional con Access Runtime 2007 per valutare errori (...che ci sono) con la versione Runtime. Vado ad esporli:

  • su una txtbox non associata (che ha come origine controllo = Date() ) - si trova in una form non associata che uso come pannello comandi (su Runtime tale textbox visualizza**#nome?** e non la data attuale come nella versione con access 2007)
  • quando dal pannello comandi tramite un pulsante provo ad aprire una form che uso come protocollo interno, non apre la form e mi restituisce questo messaggio:Funzione non disponibile nelle espressioni. nell'espressione (((year([data_prot])) = year (date())) -il problema non si manifesta sul pc con access 2007
  • Nella Versione Runtime, inoltre, noto che il comando accmdzoombox non funziona, su altri forum ho letto che devo predisporre da me le form (è vera questa cosa?)
  • Inoltre aprendo la sezione Strumenti-Riferimenti nel progetto originale .accdb noto che non è presente la libreria Microsoft DAO 3.6 e quando provo a selezionarla e premere Ok mi dice:nome già utilizzato per modulo progetto o libreria degli oggetti esistente... e non l'aggiunge alla lista dei riferimenti. (Come mai???)

Vi sarei molto grato se riusciste ad aiutarmi, non riesco a venirni a capo.

Vi ringrazio e vi saluto

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-11-03T09:40:03+00:00

Ciao Franco,

le costanti di Word sono contenute nella libreria di Word, quindi se abbiamo tolto la libreria  per le ragioni già discusse, le cosanti non esistono più.

Al posto di modificare le costanti direttamente con i valori numerici, potresti creare un modulo Bas in cui inserire le tue costanti.

es..


Public Const My_wdReplaceAll = 2


poi vai a sostituire wdReplaceAll con My_wdReplaceAll nel tuo codice.

In questo modo il nome della costante ti ricorda il suo significato, cosa difficile da capire se usi solo i valori numerici.

ps. non so se c'è altro che devi modificare, solo il compilatore può dirlo :-)

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-08-16T19:00:13+00:00

Ciao Avatar77,

il problema che riscontri è riconducibile al riferimento di una o più librerie che non esistono nella macchina con Windows Xp.

Puoi elencare le librerie presenti nei riferimenti e di esse quelle di cui hai effettivamente bisogno ?

Per vedere i riferimenti premi ALT+F11 per paprire l'editoe VBA , poi premi Strumenti-->Riferimenti.

Per quanto riguarda la libreria DAO 3.6 non puoi aggiungerla perchè Access2007 aggiunge di default la nuova libreria "Microsoft Office 12.0 Access Database Engine Object Library", quindi rifiuta DAO 3.6 perchè sarebbe un doppione.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-10-31T20:37:20+00:00

    NON AVEVO CAPITO LE TUE INDICAZIONI!!!

    (il maiuscolo "urlato" è rivolto contro di me, testone che sono! Infatti, senza i due riferimenti a Outlook e Word, la compilazione non dava problemi!

    Adesso mi è chiaro ... quasi tutto:

    • devo eliminare i riferimenti alle librerie Outlook e Word

    ma

    • quale/i riferimento/i manca/no???

    E' possibile che il messaggio di errore sia la conseguenza di una libreria non trovata in fase di esecuzione? Sul mio pc non ho il messaggio.


    NB: ho appena provato a togliere i riferimenti.

    Problema: la compilazione mi segnala errore per

                        .Execute Replace:=wdReplaceAll

    che è dopo "With Documento_Word.Content.Find"

    Devo sostituire "wdReplaceAll" con il valore numerico?

    Analogamente per gli altri eventuali errori?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-10-31T19:17:57+00:00

    Ciao,

    se rileggi quanto ho scritto, vedrai che non ho suggerito di aggiungere riferimenti.

    I 4 riferimenti che ho elencato sono quelli che Access 2010 mette di default quando si crea un nuovo database e sono riferimenti che sicuramente esistino in un computer in cui è installato il Runtime di Access2010.

    Per quanto riguarda il messaggio di errore fuorviante sulle istruzioni  Datediff() , Date()  o CStr() , è noto che se manca uno o più riferimenti, le istruzioni VBA non funzionano, vedi: Le funzioni di Visual Basic, Applications Edition (VBA) si interrompono in un database con riferimenti mancanti quindi la causa è la mancanza di un riferimento

    I riferimenti  Microsoft Outlook 12.0 Object Library  e  Microsoft Word 12.0 Object Library li puoi eliminare, infatti l'uso dell'associazione tardiva serve proprio per eliminare i riferimenti e quindi per non essere vincolati ad una determinata versione di Word o Outlook, come già specificato nell'articolo che ho suggerito il 4 ottobre 2010: Utilizzo di associazione anticipata e associazione tardiva in automazione quindi per non essere vincolati non bisogna inserire le librerie di Word e Outlook nei riferimenti.

    Infine il suggerimento rimane sempre il medesimo, utilizza possibilmente solo riferimenti la cui esistenza sia sicura anche nei computers che devono eseguire il database che distribuisci (vedi i 4 che ho suggerito).

    Quando fai delle modifiche, esegui sempre la compilazione dall'editor VBA per assicurati che non ci siano errori.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-10-31T17:51:55+00:00

    Carissimo Giorgio, ancora una volta hai risposto al mio appello.

    Al fine di capire, non per dubitare di quanto dici, ti faccio però osservare che la soluzione del mio problema di ottobre 2010 è stata di eliminare i riferimenti a librerie inutili, non di aggiungere riferimenti.

    D'altra parte, Datediff() , Date()  e CStr() sono istruzioni di Visual Basic, il cui riferimento credo sia assolutamente ineliminabile...

    Quindi mi sembra verosimile che il messaggio d'errore sia fuorviante, sia per il problema di quest'anno sia per quello di ottobre 2010.

    Sbaglio? C'è qualcosa che non ho capito?

    Per quanto riguarda i riferimenti, non posso eliminare

       Microsoft Outlook 12.0 Object Library

       Microsoft Word 12.0 Object Library

    perchè uso Outlook (invio email) e Word (pre-compilazione moduli Word allegati e personalizzazione testo email).

    Ho però effettuato le modifiche per sfruttare l'"associazione tardiva in automazione" (come da tuo suggerimento); infatti ho modificato

    da

       Dim Applicazione_outlook As Outlook.Application

       Dim Applicazione_Word As Word.Application

       Dim Documento_Word As Word.Document

       Dim Range_intero_documento As Range

         ... (ecc)

    a

       Dim Applicazione_outlook As Object

       Dim Applicazione_Word As Object

       Dim Documento_Word As Object

       Dim Range_intero_documento As Object

       ... (ecc)

    Comunque, dopo la mia richiesta d'aiuto del 27 ottobre, mi sono accorto, scorrendo le linee di codice, di non aver aver modificato tutto il codice; mi era sfuggita l'istruzione:

        Dim Regole As Outlook.Rules

    che ho modificato in

        Dim Regole As Object

    Non ho ancora avuto risposta da mio "utente" dopo quest'ultima modifica; preparerò il mio "vecchio" notebook in modo da simulare l'ambiente in cui lavora lui (Windows 7 Starter e Office 2007).

    E' ok quello che ho fatto?

    Hai altro da suggerirmi?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento