Errore punteggiatura in comando UPDATE

di il
11 risposte

Errore punteggiatura in comando UPDATE

Ciao a tutti,

sto usando questo comando per unire 2 campi stringa di una tabella in un campo unico.

Si tratta di un comando che avevo gia usato in passato, ma ora penso di avere un problema col nome dei campi che inizano con un numero e non riesco a capire che punteggiatura usare in modo che la stringa venga eseguita correttamente

Mi da errore runtime ‘3075’ Errore di sintassi

stringcopy = "UPDATE Tabella1 SET Tabella1.1iban1 = Tabella1.1Iban1 & Tabella1.1Iban2 Where (Len(Tabella1.1Iban1)>0) "
DBEngine(0)(0).Execute stringcopy, dbFailOnError

avete un'idea?

Grazie

11 Risposte

  • Re: Errore punteggiatura in comando UPDATE

    03/11/2023 - fabionik2004 ha scritto:


    Tabella1.1iban1 = Tabella1.1Iban1 & Tabella1.1Iban2

    Cosa vorresti ottenere?

  • Re: Errore punteggiatura in comando UPDATE

    L'unione dei 2 campi, (per tutti i record della tabella)

    esempio 1iban1= 1234   1iban2=5678

    Risultato 1iban1=1iban1 & 1Iban2 = 12345678

  • Re: Errore punteggiatura in comando UPDATE

    Il carattere & non lo puoi mettere all'interno di una frase SQL

  • Re: Errore punteggiatura in comando UPDATE

    Oltre alla & non puoi neanche inserire la funzione Len nel predicato SQL.

  • Re: Errore punteggiatura in comando UPDATE

    03/11/2023 - Antony73 ha scritto:


    Oltre alla & non puoi neanche inserire la funzione Len nella frase SQL.

    Ok per questo posso trovare un'alternativa, il fatto é che ho provato anche semplicemente con  questo e mi da gia errore, quindi sto cercando di trovare una soluzione a questo

    "UPDATE Tabella1 SET Tabella1.1iban1 = Tabella1.1iban1"
  • Re: Errore punteggiatura in comando UPDATE

    Ho trovato una soluzione

    ho creato una query di aggiornamento 

    UPDATE Tabella1 SET 1iban1 = [1Iban1] & [1iban2]
    WHERE Len ([1iban1]) > 0 and Len ([1Iban1])<5;
    

    Che vado ad aprire da codice vba

    DoCmd.OpenQuery "qiban", acViewhidden, acEdit
    
  • Re: Errore punteggiatura in comando UPDATE

    03/11/2023 - Antony73 ha scritto:


    Oltre alla & non puoi neanche inserire la funzione Len nel predicato SQL.

    Sicuro…?

    Si può tranquillamente.

  • Re: Errore punteggiatura in comando UPDATE

    Come ti ha suggerito OREGON…. Non si concatena con & ma con il + tuttavia devi essere certo che almeno 1 delle 2 sia Valorizzata o Testo Nullo ovvero NULLSTRING.

    Aggiungerei quindi il casting al contenuto di Iban1 al Formato testo perchè il len restituisce errore se il contenuto del campo è NULL e non NULLSTRING…. e dovresti sapere che sono 2 cose diverse…

    stringcopy = "UPDATE Tabella1 SET 1iban1 = (1Iban1 + 1Iban2) Where (Len(1Iban1+'')>0) "
    DBEngine(0)(0).Execute stringcopy, dbFailOnError

    Saluti

  • Re: Errore punteggiatura in comando UPDATE

    Si può concatenare anche con &.

    stringcopy = "UPDATE Tabella1 SET 1iban1 = Impresa1 & ([Impresa2] & '') WHERE Len([Impresa1] & '')>0"
    DBEngine(0)(0).Execute stringcopy, dbFailOnError

    anche se in questo caso specifico quello che si vuol fare mi sembra aver poco senso.

  • Re: Errore punteggiatura in comando UPDATE

    H provato entrambi i metodi sia con + che con & in entrambi i casi mi da errore runtime 3075 operatore mancante.

    Per il momento comunque ho risolto salvando una query di aggiornamento e richiamandola da vba.

    Grazie

  • Re: Errore punteggiatura in comando UPDATE

    In effetti nel mio caso c'erano alcuni errori, avendola testata su un'altra tabella di prova, ora corretti

    stringcopy = "UPDATE Tabella1 SET 1iban1 = ([1iban1] & ([1iban2] & '')) WHERE Len([1iban1] & '')>0"
    DBEngine(0)(0).Execute stringcopy, dbFailOnError
Devi accedere o registrarti per scrivere nel forum
11 risposte