Vba: Come risolvere errore run-time 3070

Anonimo
2017-09-02T05:58:13+00:00

Buongiorno a tutti,

ho creato un database che tra le altre cose, contiene un report dinamico a campi incrociati, aperto da una maschera esterna e con origine dati una query chiaramente a campi incrociati,  .

In fase di progettazione avevo assegnato come nome report "report1" (per velocità) e funzionava tutto benissimo,  ora a conclusione del lavoro ho pensato di rinominare il report usando un'etichetta più consona, chiaramente cambiando tutti i riferimenti ad esso nel codice dei pulsanti che lo aprono, inserendo il nome nuovo.

A questo punto quando attivo l'evento click dei pulsanti che aprono il report mi viene restituito l'errore in oggetto, anche se assegno di nuovo come nome "report1" mi si ripropone l'errore e su debug il motore del database mi evidenzia il comando di apertura report:

DoCmd.OpenReport "report1", acViewPreview.

ci tengo a sottolineare che questo codice prima di rinominare funzionava a meraviglia.

Potrei accontentarmi anche di questo nome perché ho un backup del file ma sono curioso di sapere perché succede questo.

Grazie a tutti. 

Ps: L'errore completo è questo:

Errore di run-time '3070'

Il motore di database di Microsoft Access non riconosce " come espressione o nome di campo valido.

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

10 risposte

Ordina per: Più utili
  1. Anonimo
    2017-09-08T07:08:23+00:00

    Ciao Sandro,

    ciao Michele.

    la Api Dao... :-DDD.

    Questa mi mancava....Dao è una libreria e non ci sono Api Dao...

    Pensavo fosse un informazione attendibile visto che proveniva da Microsoft:

    Guarda qui

    Oppure ho capito io male :-p

    [...]

    Nel cercare di indirizzarti ulteriormente, posso indicarti di controllare per bene il nome delle textBoxes nel piè pagine del report, devi rinominarle txt102, txt103, txt104,.....txt115.

    Tutte non associate.

    Questo, oltre all'eliminazione di tutte le textBoxes in secondo piano nel corpo del report che avevi impostato che non servono.

    Ho controllato e fatto tutto ma ce qualche errore che non trovo, seguirò il tuo consiglio provando a non indirizzarmi ulteriormente anche se la tenTazione è forte.

    [...]

    prego e una saluto a te.

    Ciao, Sandro.

    Ciao Michele

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-09-08T06:34:13+00:00

    ciao Michele.

    la Api Dao... :-DDD.

    Questa mi mancava....Dao è una libreria e non ci sono Api Dao...

    Nel cercare di indirizzarti ulteriormente, posso indicarti di controllare per bene il nome delle textBoxes nel piè pagine del report, devi rinominarle txt102, txt103, txt104,.....txt115.

    Tutte non associate.

    Questo, oltre all'eliminazione di tutte le textBoxes in secondo piano nel corpo del report che avevi impostato che non servono.

    [...]

    Grazie di tutto.

    Michele.

    prego e una saluto a te.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-09-08T06:00:30+00:00

    Ciao Sandro,

    scusa il silenzio ma è dato dal fatto che avendo tutti gli strumenti che tu mi hai fornito per poter ottimizzare il database, ho provato ad applicarli al mio, ma evidentemente devo studiarmi meglio le API DAO e la funzione FOR perché pur avendo il tuo database che funziona a dovere non sono riuscito a far funzionare il mio, ottenendo l'errore "2465  errore sintassi" sul comando che mi restituisce il totale delle colonne:

    .Controls("txt" & 100 + i).ControlSource = "=sum(" & strFld & ")"  

    provo a studiarci ancora un pò sopra nel frattempo credo che questo post sia completo.

    Grazie di tutto.

    Michele.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-09-03T16:46:24+00:00

    ciao Michele,

    generalmente la prima cosa che faccio è impostare un bel option explicit all'interno dei moduli da debuggare.

    Se lo fai nel modulo di classe del report e lanci un debug ottieni un errore di varabile non definita perché la variabile che controlla il loop per rendere non visibili i controlli è chiamata :

    Dim lngCtl As Long

    nel loop invece :

    For i = lngCol + 1 To lngClt

    semplice errore di battitura.

    Però, come ti dicevo essendoci 31 textBoxes, il loop genera un altro errore perché dopo il valore 15 non trova più il rispettivo controllo.

    La variabile di cui sopra contiene il numero di controlli nel corpo del report.

    In ogni caso, ti pubblico qua la tua demo con tutte le correzioni apportate, comprese quelle del post precedente e anche quelle relative alla somma dei controlli nel piè pagina del report.

    HTH.

    Ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-09-03T10:41:23+00:00

    Scusatemi in particolare tu Sandro,

    ho risolto l'arcano e mentre scrivevo ho ricevuto la tua soluzione.

    L'errore logico lo conoscevo lo avrei risolto dopo, perchè mi sembrava piu' facile da risolvere, anche se, credevo che riguardasse il numero di colonne più che per i totali, mentre l'errore 3070 mi ha fatto perdere letteralmente la testa, non capivo da dove provenisse, e alla fine ho deciso di scrivere questo post. tuttavia non era l'errore delle textboxes il problema per cui il report mi segnava l'errore 3070, (quell'errore me lo dava anche quando il report funzionava) bensi uno piu' banale come tu già sospettavi.

    In pratica come avrai visto nell'intestazione del report ho una textbox che mi riporta il mese e l'anno a cui fa riferimento lo stesso:

    =MonthName([forms!Maschera1!cbomese]) & " " & Maschere![frmAdmin]!cboanno

    ed io qua non avevo cambiato nome (me ne ero proprio dimenticato).

    Scusate ancora e grazie infinitamente Sandro

    Buona domenica.

    Michele

    La risposta è stata utile?

    0 commenti Nessun commento