Ho una maschera "SelezionaTitolo" che poggia sulla query "TTitolo" (che mi ordina tutti i record in base al campo "Titolo" (testo).
In questa maschera sono riuscito a creare una casella combinata sul campo "Titolo" in modo tale da selezionare il Ttolo direttamente e ottenere automaticamente tutti gli altri dati negli altri campi. Per farlo ho proceduto così:
1) Apri la maschera "SelezionaTitolo" in Visualizzazione struttura
2) Clic sull'icona Casella degli strumenti e selezionato anche Creazione guidata, ho scelto Casella combinata e l'ho disegnata nella zona desiderata
3) All'apertura della finestra Creazione guidata di casella combinata, ho scelto "Trova un record nella maschera basato sul valore selezionato nella casella combinata", Avanti
4) Continua tutte le finestre successive fino alla fine
Con questa procedura ho ottenuto il risultato che volevo, però accade che se seleziono un Titolo avente all'interno del suo testo l'apostrofo (es. Sull'acqua), mi appare un messaggio di errore:
Errore di run-time '3077'. Errore di sintassi (operatore mancante) nell'espressione.
Se clicco sul pulsante Debug si apre la seguente finestra di Visual Basic:
Private Sub CasellaCombinata0_AfterUpdate()
' Trova il record corrispondente al controllo
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[Titolo] = '" & Me![CasellaCombinata0] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
con l'evidenziazione gialla sul rigo
rs.FindFirst "[Titolo] = '" & Me![CasellaCombinata0] & "'"
Non so se può essere utile, ma in Visualizzazione Struttura maschera SelezionaTitolo, al campo con la casella combinata (Non associato), alla proprietà Origine riga appare scritto:
SELECT TTitolo.Titolo FROM TTitolo;
Non so usare il Visual Basic, ma cosa occorre fare per far accettare l'input di un valore contenente l'apostrofo?