L'apostrofo non mi consente di aprire una maschera

di Barsyk il
43 risposte

Buongiorno, come da oggetto ho il seguente problema: la presenza dell'apostrofo in un titolo (ad es. L'Aria) non mi consente di aprire una maschera (nel mio caso la maschera Titoli); compare infatti un messaggio di errore che dice Operatore mancante. Come posso fare per ovviare al problema?

Grazie.

43 Risposte

  • Ciao, 

    scusa ma non riesco a capire cosa vorresti fare e il contesto specifico... è possibile avere un esempio più esaustivo? 

    Comunque in generale si deve raddoppiare l'apicino...

    Dim titolo As String
    titolo = "L'Aria"
    titolo = Replace(titolo, "'", "''")
    
    se devi elabora da una select allora lasci il compito a MsAccess di gestire gli apicini:
    Esempio:
    SELECT * FROM Titoli WHERE Titolo = [YouTitle];
    Oppure manualmente:
    SELECT * FROM Titoli WHERE Titolo = 'L''Aria';
  • Non capisco in che modo l'apostrofo dovrebbe condizionare l'apertura di una mascheta. Forse dovrebbe trovarsi nella WHERE CONDITION di apertura della maschera o nel nome della maschera? Dove?

  • By65Franco e Antony73, Devo dilungarmi ma è necessario, altrimenti in effetti resta oscuro.

    Allora: ho realizzato un catalogo dei libri che ho a casa, tra le tabelle ci sono ovviamente tbl Autori, tbl Titoli, e tbl Comprende; Autori è collegata a Titoli, Titoli è collegata a Comprende (questa tabella contiene i titoli di libri che hanno - per esempio - dei racconti, come Racconti dell'impossibile e Racconti del mistero di Poe, che appunto sono formati da diversi racconti). In seguito ho creato una maschera formata dai Titoli e dalla maschera Comprende e l'ho chiamata Focus; poi ho fatto una query dei soli titoli (presi dalla tbl Titoli) per avere i valori univoci e ho fatto una maschera chiamata Per Titolo e che contiene appunto SOLO i titoli di tutti i volumi. Ho fatto quindi una macro: su clic ->ApriMaschera Focus Where [Titolo]...[Titolo]. Bene, funziona, ma quando faccio clic su un titolo (o altro campo collegato) che ha l'apostrofo (per esempio Racconti dell'impossibile) mi dà errore.

    Allego una foto col messaggio 

    Spero di essere stato abbastanza chiaro. Nella foto non è un titolo ma non importa, c'è comunque l'apostrofo. Grazie ancora

  • Uhm...

    A me la sfera magica da il seguente errore

    "Non è stato possibile vedere il codice della query dell'utente"

    Puoi mostrare come esegui il filtro o la query?

  • Allora hai due modi di procedere: 

    1) usa il consiglio di Franco, raddoppiando l'apice;

    2) indicizza. Ovvero, anziché applicare la WHERE CONDITION al campo [Titolo], la applichi al campo [ID_Titolo], se esiste.

    Il secondo metodo applicabile in relazione a come e' strutturato il DB e devi prevedere un controllo combobox o una listbox per la selezione, in quanto possiedono la proprietà .column().

    Nel secondo modo l'efficienza aumenta.

  • Sihsandrea, in realtà io non ho immesso alcun codice, ho semplicemente fatto una query solo con i titoli

  • Antony73, grazie, provo la seconda, perché non saprei dove inserire il codice; purtroppo non sono esperto.

  • Antony73, ho provato: prima WHERE IDT -> IDT ma mi ha dato un messaggio di errore in quanto non sono tipi di dati uguali (me l'aspettavo), poi ho provato Titolo -> IDT, la maschera si apre ma è vuota. Per quanto riguarda la combobox volevo evitarla, altrimenti è visibile nella maschera e dà fastidio.

  • Hai una sola tabella? Non hai un DB con tabelle correlate? Indica l'istruzione usata per l' apertura della maschera.

  • Antony73, come ho scritto più sopra il DB si compone di più tabelle, tra cui quelle importanti sono Autori, Titoli, Comprende. L'istruzione che ho usato è una semplice macro di Apertura Maschera e il Where è appunto Titolo -> Titolo. Ripeto: funziona, ma non quando c'è l'apostrofo, che viene letto come operatore.

  • 25/01/2025 - Barsyk ha scritto:

    Sihsandrea, in realtà io non ho immesso alcun codice, ho semplicemente fatto una query solo con i titoli

    Su criteri metti

    [Inserire titolo da cercare:]

    Quando ti serve attivi il filtro.

    Li puoi cercare anche "l'alba dell'alligatore dell'america"

    Senza preoccuparti degli apici.

  • Sihsandrea, provo subito, ti saprò dire, intanto grazie (e complimenti per l'ottimo esempio di titolo!)

  • Sihsandrea: niente da fare, la maschera la apre ma è bianca. Peccato.

  • 25/01/2025 - Barsyk ha scritto:

    By65Franco e Antony73, Devo dilungarmi ma è necessario, altrimenti in effetti resta oscuro.

    Allora: ho realizzato un catalogo dei libri che ho a casa, tra le tabelle ci sono ovviamente tbl Autori, tbl Titoli, e tbl Comprende; Autori è collegata a Titoli, Titoli è collegata a Comprende (questa tabella contiene i titoli di libri che hanno - per esempio - dei racconti, come Racconti dell'impossibile e Racconti del mistero di Poe, che appunto sono formati da diversi racconti). In seguito ho creato una maschera formata dai Titoli e dalla maschera Comprende e l'ho chiamata Focus; poi ho fatto una query dei soli titoli (presi dalla tbl Titoli) per avere i valori univoci e ho fatto una maschera chiamata Per Titolo e che contiene appunto SOLO i titoli di tutti i volumi. Ho fatto quindi una macro: su clic ->ApriMaschera Focus Where [Titolo]...[Titolo]. Bene, funziona, ma quando faccio clic su un titolo (o altro campo collegato) che ha l'apostrofo (per esempio Racconti dell'impossibile) mi dà errore.

    Allego una foto col messaggio 

    Spero di essere stato abbastanza chiaro. Nella foto non è un titolo ma non importa, c'è comunque l'apostrofo. Grazie ancora

    Ciao,

    approccio e logica sbagliata.

    Mi sembra che nei post precedenti ti abbiamo già suggerito la soluzione.

    La ricerca del Titolo deve avvenire tramite un ID chiave e non con la field che contiene una descrizione.

    Quindi con un approccio corretto non devi mai preoccuparti del contenuto del "titolo", devi semplicemente lavorare così come si lavora con un database relazionale

Devi accedere o registrarti per scrivere nel forum
43 risposte