Newsgroup: it.comp.appl.access
Titolo: Come si usa il Like "A*" da VBA?

Dunque:
dopo aver definito:
strValue = LTrim(Me.txttesto1.Value & "*")
uso la segente stringa per selezionare un rs:
strSQL = "SELECT campo1 FROM tab1 WHERE campo1 Like """ & strValue &
""";"
purtoppo il rs count è =0 : dove sbaglio???
In altri termini qual'è la sintassi vbA per selezionare i campi che
iniziano per A in una tabella?
Grazie, EffEssE
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Questa è una stringa SQL che funziona : vedi un po (non ho avuto tempo di
leggere la tua)
SELECT SPECIALIZZAZIONI.idspec, LCase([SPECIALIZZAZIONI]) AS Espr1
FROM SPECIALIZZAZIONI
WHERE (((LCase([SPECIALIZZAZIONI])) Like "*" & [Forms]![6persfiltro]![spec1]
& "*"))
ORDER BY LCase([SPECIALIZZAZIONI])
--
Maurizio75


 Grazie, EffEssE
Perchè hai alla fine ";"...???Nelle istruzioni SQL non serve,
c'è solo nel generatore di QUERY.
strSQL = "SELECT campo1 FROM tab1 WHERE campo1 Like '" & strValue "'"
Perchè usi la proprietà Value di una TxtBox...???( Non mettere nulla
ma in ogni caso sarebbe Text, che però potrebbe generarti un errore
se il controllo nan ha lo stato attivo)
strValue = LTrim(Me.txttesto1 & "*")
@Alex


Mettendola come dici tu prende 'valoretxt' e dunque non funziona;
Per quanto riguarda il ";" sono daccordo ma mettendolo o non mettendolo
la
selezione non avviene lo stesso.
Il problema č che anche mettendo:
strSQL = "SELECT nomecampo FROM tabella WHERE nomecampo Like ""A*"""
non seleziona nulla.
Dunque vi riposto il quesito, ponendola in maniera piů astratta:
-> Come si selezionano tutti i campi che iniziano per A in una tabella
da codice VBA?
Grazie per l'attenzione,
EffEssE


 purtoppo il rs count è =0 : dove sbaglio???
Se apri il recordset con un openrecordset da codice, il record count non
restituisce il numero dei record del recordset ma il numero dei record cui
hai avuto accesso.
Se vuoi che il recordcount ti dica quanti record ci sono devi fare un
movelast.
Sib
PS se scrivi Recordcount nell'help te lo spiega molto chiaramente.

 PS se scrivi Recordcount nell'help te lo spiega molto chiaramente.


 EffEssE
HALT.
Mettendola come dico io funziona, almeno nella prova che ho fatto.
Questa sintassi č corretta:
strSQL = "SELECT nomecampo FROM tabella WHERE nomecampo Like 'A*'"
Perň č statica, per renderla dinamica devi svincolarla con un valore
recuperato dal controllo:
strSQL = "SELECT nomecampo FROM tabella WHERE nomecampo Like '" & _
 Me.TuoControllo & "*'"
Cosě inserisco in TuoControllo(TextBox) il carattere A e mi recupera
tutti i records in cui il primo carattere del campo č A.
@Alex.
P.S. Attenzione alle VIRGOLETTE e ALL'APOSTROFO.


... è strano, anche facendo come dici tu la selezione non avviene lo
stesso.
Ma non è che è un bug noto di A2000 il malfunzionamento della funzione
Like()?
Grazie comunque,
FS


La risposta di Alessandro è corretta:
strSQL = "SELECT campo1 FROM tab1 WHERE campo1 Like '" & _
 strValue & "*'"
Non è un bug di Access. Verifica bene l'apostrofo.
Ciao
  Gianni


 da una tabella da codice VBA?
Prima di tutto devi scrivere dopo il quoting altrimenti salta il filo del
discorso.
Comunque, la tua sintassi e' corretta quindi i casi sono due: o la stringa
strValue non contiene "A*" o il recordset contiene effettivamente i record
filtrati ma non te ne accorgi.
Nel primo caso ti conviene bloccare l'esecuzione del codice un attimo prima
che venga aperto il recordset per controllare il contenuto dalla stringa
strvalue.
Nel secondo caso controlla che nella tabella vi siano effettivamente record
rispondenti ai tuoi criteri e prova anche il suggerimento che ti ho dato
prima.
Sib