Passaggio da 32 a 64 bit

Anonimo
2014-10-22T15:40:49+00:00

Ciao a tutti!

Ho installato un software a 32 bit su una macchina che ha Access 2010 a 64. Ovviamente non funzionava. Quindi ho disinstallato il programma, ho preso i due database accdb (FE e BE) e li ho copiati sulla macchina per ricompilare il tutto a 64.

Per il BE non ci sono problemi, me lo apre tranquillamente, mentre per l'FE mi dice:

"Errore durante la compilazione della funzione. Errore di sintassi nel modulo di Visual Basic. Controllare il codice quindi ricompilarlo"

Naturalmente nella versione accdb a 32 bit il file è compilato.

Windows 8 Pro

Grazie!  : )

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
2014-10-24T08:11:34+00:00

Ciao Francesco,

questo problema potrebbe essere causato da una funzione che ha lo stesso nome di un modulo.

Prova ad aprire il db tenendo premuto il tasto SHIFT in questo modo non viene eseguita nessuna macro di avvio e non viene nemmeno aperta la maschera di Avvio, e così dovresti riuscire a fare compila dalla finestra VB

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-10-23T07:40:55+00:00

Ciao Francesco,

quello che devi cercare nel codice per vedere se usi le API è qualcosa del tipo:

Public Declare Function 

se le trovi devi sostituirle con le istruzione indicate nel post di Mauro.

Se non ce ne sono, apri un modulo VB qualsiasi e lancia la compilazione da lì, il compilatore  si dovrebbe fermare sulla  riga che non riesce a compilare.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-10-22T16:40:14+00:00

    Sì, ho usato il Visual Basic, ma non so cosa siano queste API.. magari le ho usate utilizzando qualche frammento di codice dato dalle soluzioni della Community

    Una chiamata alle API di Windows è una cosa tipo (è un esempio):

    Public Declare Function GetUserName Lib "advapi32.dll" _

            Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Perchè funzioni in entrambi i casi (32/64 bit) la dichiarazione (quella di questo esempio) va modificata così:

    #If Win64 Then

        Public Declare PtrSafe Function GetUserName Lib "advapi32.dll" _

            Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As LongLong) As Long

    #Else

        Public Declare Function GetUserName Lib "advapi32.dll" _

            Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    #End If

    Non so se il problema è legato alle API, ho solo chiesto se le hai utilizzate.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2014-10-22T16:19:52+00:00

    Scusa Mauro, ma non so neanche cosa siano queste API di Windows .. come faccio a sapere se ho delle chiamate alle API?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-10-22T15:44:12+00:00

    Naturalmente nella versione accdb a 32 bit il file è compilato.

    Hai chiamate alle API di Windows nel codice?

    La risposta è stata utile?

    0 commenti Nessun commento