Problemi conversione/importazione database 97/ 2010

di
Anonimizzato12099
il
7 risposte

Problemi conversione/importazione database 97/ 2010

Salve a tutti, sto tentando di convertire un vecchissimo database fatto (non da me) in access 97 a Access 2010. Convertirlo è praticamente impossibile, da errori di librerie mancanti come ad esempio: dao2335.tlb e utility.mda, cosi ho tentato la strada dell'importazione che sembra essere più efficace. Ora tutte le tabelle/maschere ecc sono importate ma quando apro il database parte una finestrella con scritto: Immettere valore parametro [Schede]![Menu]![Campo0]. Facendo annulla entro lo stesso e nella casella di riepilogo nella maschera principale ma non vengono caricati i dati.
http://postimage.org/image/5irshwkhh

Andando in struttura in struttura e aprendo il generatore di query riferito alla casella di riepilogo mi ritrovo in questa situazione:
http://postimage.org/image/t1y2gjlep

Da quel poco che sono riuscito a capire (dato che non conosco ne Access ne Visual basic); Menu è la maschera principale dove al suo interno vi è la casella di riepilogo; Campo0 è il gruppo di opzioni (inserimento dati, stampe ecc); mentre Schede non ne ho idea. Aprendo questo databse con Access 97 funziona tutto, nella casella di riepilogo vengono caricati i dati che ci sono nella tabella TMenu.
Vi chiedo se potete darmi qualche idea su come affrontare questo problema, purtroppo in azienda non possono darmi una mano. Vi ringrazio in anticipo e se i link non funzionano li rimetto.

7 Risposte

  • Re: Problemi conversione/importazione database 97/ 2010

    Ho degli Applicativi in Access2 che girano su A2010... sarà un caso...?

    Tutti i miei applicaitivi di A97 girano tranquillamente su A2010 senza alcun problema, quindi il fatto che a te non funziona dipende da eventuali errori di sviluppo che hai commesso quando hai fatto il tuo applicativo.

    In prima battuta, le Librerie referenziate devono essere il MINIMO INDISPENSABILE, per A97 bastavano 3... se ne hai di più dovresti sapere a cosa servono e perchè ci sono.
    Se servono devi capire se è corretto che siano Referenziate in EARLYBINDING o se ere possibile usare LATEBINDING.
    Solitamente chi sviluppa a livello professionale, usa solo LATEBINDING quindi non ha problemi di passaggio versioni soprattutto in salita.
    Se hai usato API allora potresti avere qualche anomalia se il tuo A2010 gira su Win(64bit)...
    Tutto il resto NON DEVE ESSERE UN PROBLEMA.
  • Re: Problemi conversione/importazione database 97/ 2010

    A me puzza la parola "Schede". È un vecchio termine che si usava prima per dire "Maschere". Il generatore di espressioni, normalmente usa la parola "Forms" quando compila, ma, dopo aver dato l'OK, Access fa apparire la parola "Maschere".
    Prova a sostituire, ovunque tu lo trovi, [Schede] con [Maschere].
  • Re: Problemi conversione/importazione database 97/ 2010

    Si hai ragione Osvaldo, era un Baco di A97... che incontrava chi usava il Generatore di Espressioni...
    Non avendo mai avuto l'abitudine di usarlo mi era sfuggito.
    Da estendere in tutti i posti in cui è possibile usarlo, quindi Origini Records di Maschera/SottoMaschera/Combo/ListBox... oggetti DataBound.
  • Re: Problemi conversione/importazione database 97/ 2010

    Intanto vi ringrazio per avermi risposto e vi dico subito che avevate ragione, ho sostituito con [Maschere] e ora sembra funzionare perfettamente, ora sto sistemando tutte le altre maschere ma pare che ci siano altri tipi di errori di sintassi. Da quello che ho capito dal 97 in poi il linguaggio ha subito un evoluzione ed è per questo motivo che questo database contiene cosi tanti errori.
    Ieri in azienda mi han detto che il programmatore che lo ha realizzato è ormai in pensione quindi dovrò cavarmela da solo. Per caso conoscete l'esistenza di una lista dove sono elencati tutti i cambiamenti di sintassi che hanno introdotto? O magari quei argomenti che han modificato cosi da andarmeli a studiare direttamente. In alcuni casi me la sto cavando da solo facendo ricerche mirante in google (come nel caso dell'oggetto Me), ma in altri casi non so dove sbattere la testa.
  • Re: Problemi conversione/importazione database 97/ 2010

    Loque ha scritto:


    Per caso conoscete l'esistenza di una lista dove sono elencati tutti i cambiamenti di sintassi che hanno introdotto?
    Qui io non so risponderti.

    Un buon modo per riparare a tutte le sintassi sbagliate è sempre quello di manovrare sul "generatore di espressioni", lui ha la sua sintassi automatica e così non dovresti sbagliare mai.
  • Re: Problemi conversione/importazione database 97/ 2010

    Buonasera, oggi ho ripreso in mano il database e ho scoperto che il programmatore che ha realizzato questo database ha seguito la sintassi che era in auge in Access 1.0 e l'ho capito grazie a questa pagina . Infatti usa Snapshot e Dynaset che a quanto pare furono usati solo nel primo Access. Ad esempio questa parte di codice (che mi da errore) come dovrei riscriverla?
    Function CercaLMq(CARTONE, Quantità, X_MQ)
    
       Dim DB As Database
       Dim Dyna1 As Snapshot
    
       Set DB = CurrentDb()
       
    If Not (IsNull(Quantità) Or IsNull(CARTONE) Or IsNull(X_MQ)) Then
       
       Set Dyna1 = DB.CreateSnapshot("SELECT DISTINCTROW [Tabella Prezzi].* FROM [Tabella Prezzi] INNER JOIN IND_CART ON [Tabella Prezzi].Cartone = IND_CART.ID WHERE ((" & Str$(Quantità) & " Between [Da Quantita] And [A Quantita]) AND (IND_CART.C_TIPO=""" & CARTONE & """));")
       
       If Dyna1.RecordCount > 0 Then
          Select Case X_MQ
             Case Is > 6
                CercaLMq = Dyna1.[Oltre a 6 Prezzo]
             Case Is > 5
                CercaLMq = Dyna1.[Fino a 6 Prezzo]
             Case Is > 4
                CercaLMq = Dyna1.[Fino a 5 Prezzo]
             Case Is > 3
                CercaLMq = Dyna1.[Fino a 4 Prezzo]
             Case Is > 2
                CercaLMq = Dyna1.[Fino a 3 Prezzo]
             Case Is > 1
                CercaLMq = Dyna1.[Fino a 2 Prezzo]
             Case Else
                CercaLMq = Dyna1.[Fino a 1 Prezzo]
          End Select
       Else
          CercaLMq = -1
       End If
    Else
       CercaLMq = -1
    End If
       Debug.Print CARTONE, Quantità
    End Function
    Dato che di parti di codice con Snapshot e Dynaset ne ho viste davvero tante, se riesco a capire come riscriverle sarebbe una gran cosa.
  • Re: Problemi conversione/importazione database 97/ 2010

    Ora devi usare il Metodo OpenRecordset, SnapShot e Dynaset sono divenuti 2 tipi di Oggetto derivanti dall'apertura.
    In sostanza lo SnapShot è un Recordset READONLY e nel tuo caso mi pare non ti serva un Dynaset.
Devi accedere o registrarti per scrivere nel forum
7 risposte