Errore spazi nel nome delle tabelle

di il
8 risposte

Errore spazi nel nome delle tabelle

Buongiorno a tutti,

ho riadattato un codice vba che ho trovato nel sito, e credo di aver fatto un discreto lavoro.
In sostanza ho due tabelle la prima importa i dati da un file txt la seconda tabella, dopo aver controllato eventuali errori tramite una maschera, ci sono i dati sistemati.

per portare i dati dalla tabella A alla Tabella B ho creato una query di accodamento. nella maschera ho creato un pulsante per far eseguire l' accodamento dei dati.
Ora per evitare che vengano ricaricati due volte gli stessi dati ho creato un codice:
 Dim Paghe            As DAO.database
Dim Listino_IRF CALTANISSETTA] As DAO.Recordset
Dim [TABELLA PRESENZE IRF CALTANISSETTA] As DAO.Recordset

Set database = CurrentDb
Set [Listino IRF CALTANISSETTA] = db.OpenRecordset("Tab1", dbOpenDynaset)
[Listino IRF CALTANISSETTA].MoveFirst
Do Until [Listino IRF CALTANISSETTA].EOF
Set [TABELLA PRESENZE IRF CALTANISSETTA] = db.OpenRecordset("SELECT * FROM Tab2 WHERE Mese=" & [Listino IRF CALTANISSETTA].Fields("Mese").Value, dbOpenDynaset)
If [TABELLA PRESENZE IRF CALTANISSETTA].Fields("Mese").Value<>[Listino IRF CALTANISSETTA]T1.Fields("Mese").Value Then
DoCmd.OpenQuery "query accodamento IRF Caltanissetta", , acReadOnly
Else
MsgBox ("Listino già Caricato"), vbInformation, "INFORMAZIONE"
End if
[TABELLA PRESENZE IRF CALTANISSETTA].Close
Set [TABELLA PRESENZE IRF CALTANISSETTA]=Nothing
[Listino IRF CALTANISSETTA].MoveNext
Loop

[Listino IRF CALTANISSETTA].Close
database.Close
Set [Listino IRF CALTANISSETTA]=Nothing
Set Paghe=Nothing
 
dove sto dicendo se il mese della prima tabella è diverso dalla seconda tabella allora aggiorna altrimenti scrivi "Listino già caricato".
uno dei problemi, come avrete capito è ce le tabelle hanno nomi con gli spazi e non ho capito come scriverli ho messo le parentesi quadre ma mi da errore.

prima avevo provato con un codice più semplice:
If [Listino IRF CALTANISSETTA].Fields("Mese").Value <> [TABELLA PRESENZE IRF CALTANISSETTA].Fields("Mese").Value Then
DoCmd.OpenQuery "query accodamento IRF Caltanissetta", , acReadOnly
Else
MsgBox ("Listino già Caricato"), vbInformation, "INFORMAZIONE"
End If
ma dice che non trova il campo immagino perche prima non ho aperto le tabelle

grazie

8 Risposte

  • Re: Errore spazi nel nome delle tabelle

    Nel codice VBA non devi usare spazi per gli identificatori. Il nome dell'identificatore non deve essere uguale ai nomi delle tabelle.

    Del resto, i nomi delle tabelle che usi nelle frasi SQL sono Tab1 e Tab2, quindi stai facendo una grande confusione.
  • Re: Errore spazi nel nome delle tabelle

    Ok devo studiare di più per il primo codice!! ma senti il secondo codice non funziona perchè non apro le tabelle o perchè ho usato gli spazi negli indentificatori? se è la seconda una tabella che si chiama Listino IRF come lo scrivo su VBA? Listino_IRF?
  • Re: Errore spazi nel nome delle tabelle

    Io volevo scrivere un semplice codice:
    SE il campo "Mese" della tabella "Listino IRF" è DIVERSO dal campo "Mese" della Tabella "Tabella presenze" ALLORA avvia la query di accodamento ALTRIMENTI scrivi un messaggio
  • Re: Errore spazi nel nome delle tabelle

    Non posso rispondere alla tua domanda perché dovrei riscrivere tutto il codice per te. Tu non sei ancora in grado di scrivere codice VBA perché non ne conosci le basi. Non è questione di studiare di più ma di cominciare a studiare.
  • Re: Errore spazi nel nome delle tabelle

    eternityck ha scritto:


    Io volevo scrivere un semplice codice:
    SE il campo "Mese" della tabella "Listino IRF" è DIVERSO dal campo "Mese" della Tabella "Tabella presenze" ALLORA avvia la query di accodamento ALTRIMENTI scrivi un messaggio
    Avevi anche letto la risposta data ad OSVALDO sull'utilizzo di caratteri speciali... evidentemente non hai minimamente capito.... e questa è ampia dimostrazione che chi non ha basi deve anche far attenzione alle sciocchezze che propone a chi legge...

    Osvaldo ora suggerisci tu il codice gusto....
  • Re: Errore spazi nel nome delle tabelle

    Dim Listino_IRF CALTANISSETTA] As DAO.Recordset
    Dim [TABELLA PRESENZE IRF CALTANISSETTA] As DAO.Recordset
    Nel primo rigo avresti messo una parentesi quadra solo a destra.
    In ogni caso, ho provato a fare anche un piccolo test con nome variabile con spazi e parentesi quadre (perché non lo sapevo nemmeno io), i nomi delle variabili NON DEVONO CONTENERE SPAZI, NON DEVONO CONTENERE PARENTESI QUADRE (nemmeno senza spazi). Se provi a scriverli in quel modo, Access ti dà un messaggio di errore da subito e non consente di compilare il codice successivamente. Puoi immaginare i problemi a catena che ne insorgono.
  • Re: Errore spazi nel nome delle tabelle

    Ma Osvaldo cosa provi? Non hai mai letto le prime pagine di un libro sul VBA? Il capitolo sul nome degli identificatori dovrebbe essere uno dei primi...
  • Re: Errore spazi nel nome delle tabelle

    Aggiungo, così magari leggendolo si evitano indicazioni errate, o, almeno possono essere tecnicamente più complete:
    https://support.office.com/en-us/article/guidelines-for-naming-fields-controls-and-objects-120c27fa-7ae1-4182-9baa-dbd183179cc3
Devi accedere o registrarti per scrivere nel forum
8 risposte