Newsgroup: it.comp.lang.visual-basic
Titolo: Ricerca in database (recordset.seek "=")

Salve a tutti ed eccomi ancora qui
bene, ho il mio programmino che funziona perfettamente (fino a quando
troverò un nuovo bug :) ). Ora il mio problema è questo.
All'interno del programma ad un certo punto c'è la necessità di effettuare
una ricerca all'interno di un database. Questa viene fatta con il metodo
Recordset.Seek "=" sulla prima colonna della tabella, che è indicizzata. Il
problema è che in detta colonna sono presenti delle stringhe alfanumeriche
di quattro caratteri che sono, diciamo così, "case sensitive" (insomma XXXX
<> xxxx). Il metodo seek invece si ferma non appena trova una
corrispondenza, senza tener conto di maiuscole e minuscole, e restituisce il
risultato. Ciò non è corretto. Come posso ovviare?
Grazie mille!!!
P.S. scusate se la terminologia usata non è azzeccata.

 il risultato. Ciò non è corretto. Come posso ovviare?
    A naso risponderei
        Recordset.Seek "Like"
ma non so se e' giusto.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

il problema non è tanto nella sintassi del metodo Seek, il problema sta nel
database che stai usando.....
Access è case-insensitive, mentre SQL Server puoi decidere in fase di setup
che approccio adottare.....
Quindi non dovresti cambiare o capire meglio il .Seek, quanto usare, secondo
me, un db diverso, come MySQL!
Lo so che è una soluzione un po' strana, ma non credo che tu ne possa
trovare altre.....
good coding!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
dam...@italiainfiera.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 ha scritto

forse serve questo:
Istruzione Option Compare
Utilizzata alivello di modulo per dichiarare la modalità di confronto
predefinita da utilizzare per confrontare i dati di una stringa.
Sintassi
Option Compare {Binary | Text | Database}
Osservazioni
Se si utilizza l'istruzione Option Compare, è necessario inserirla in
unmodulo prima di qualsiasi altraroutine.
L'istruzione Option Compare specifica il metodo diconfronto di
stringhe (Binary, Text o Database) per un modulo. Se un modulo non
include un'istruzione Option Compare, il metodo di confronto testuale
predefinito è Binary.
L'istruzione Option Compare Binary consente di eseguire confronti
testuali sulla base di untipo di ordinamento derivato dalla
rappresentazione binaria interna dei caratteri. In Microsoft Windows
l'ordinamento è determinato dalla tabella codici. Nell'esempio che
segue viene illustrato un tipico ordinamento binario:
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
L'istruzione Option Compare Text consente di eseguire confronti di
stringhe sulla base di un ordinamento testuale indipendente dalla
combinazione di maiuscole e minuscole determinato dalleimpostazioni
internazionali del sistema in uso. Gli stessi caratteri dell'esempio
precedente, se ordinati utilizzando l'istruzione Option Compare Text
producono il risultato seguente:
(A=a) < ( À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
L’istruzione Option Compare Database può essere utilizzata solo in
Microsoft Access e consente di eseguire confronti di stringhe sulla
base di un ordinamento determinato dall’ID di paese del database in
cui viene eseguito il confronto.

 ma non so se e' giusto.
    Oops!... Ritiro tutto e mi scuso. Ho letto il post di Igor Damiani.


 Lo so che č una soluzione un po' strana, ma non credo che tu ne possa


.
    Come vedi "Like" non e' nella lista degli operatori di confronto
permessi.
    2.
    Anche se Like fosse prevista sarebbe prioritario cio' che ci ha scritto
Igor Damiani: "Access č case-insensitive". Si fa i case suoi, insomma.
    Per esempio, prova a fare una tabella con una chiave primaria di tipo
testo ed a tentare di scrivere nel campo chiave di un record "ABCD" ed in
quello di un altro record "abcd"...


 Igor Damiani: "Access è case-insensitive". Si fa i case suoi, insomma.


 Ovviamente scherzo, sono un burlone!
non sei nero, calimero, sei solo distratto.
oltre a option compare forse -- non ho voglia di provare ora -- puoi
anche usare lcase/ucase e un ciclo finche' la chiave sarebbe uguale in
condizioni case-insensitive.