PDA

View Full Version : Ricerca con visual basic


companyp
30-11-2003, 11:33
Ho scritto un programmino per catalogare della merce secondo codice,prezzo e descrizione.
Con un pulsante posso richiamare i dati già memorizzati ma funziona solo se la stringa da cercare che immetto è uguale a quella memorizzata. Es. memorizzo "FG7AH" se cerco "Fg7AH" non viene trovato. Come posso fare per evitare la distinzione tra minuscole e maiuscole e poter immettere anche solo una parte di codice es "FG.
Purtroppo il prog lo avevo iniziato anni fa a scuola come rubrica telefonica e l'altro giorno per esigenza l'ho convertito ma le mie conoscenze sono svanite nel frattempo :cry:

leadergl
30-11-2003, 12:40
basta che quando gli passi la stringa da cercare la tramuti prima in tutti caratteri MAIUSCOLI (come quelli memorizzati nel database), basta usare la funzione

nuova_stringa=UCASE(stringa)

oppure che è uguale

nuova_stringa=UCASE$(stringa)

Sephiroth83
30-11-2003, 15:38
Per immettere solo una parte del codice puoi usare la funzione InStr() che restitusce la prima occorrenza di una stringa all'interno di un'altra (0 se non la trova). Quindi nella funzione di ricerca puoi confrontare le stringhe con InStr è vedere se il risultato è diverso da 0 (questo dovrebbe ridurre un po' la velocità del programma).
La sintassi è:


InStr([start, ]string1, string2[, compare])

The InStr function syntax has these arguments:

Part Description
start Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the first character position. If start contains Null, an error occurs. The start argument is required if compare is specified.
string1 Required. String expression being searched.
string2 Required. String expression sought.
compare Optional. Specifies the type of string comparison. The compare argument can be omitted, or it can be 0, 1or 2. Specify 0 (default) to perform a binary comparison. Specify 1 to perform a textual, noncase-sensitive comparison. For Microsoft Access only, specify 2 to perform a comparison based on information contained in your database. If compare is Null, an error occurs. If compare is omitted, the Option Compare setting determines the type of comparison.
Return Values

If InStr returns
string1 is zero-length 0
string1 is Null Null
string2 is zero-length start
string2 is Null Null
string2 is not found 0
string2 is found within string1 Position at which match is found
start > string2 0
Remarks

The InStrB function is used with byte data contained in a string. Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.

matpez
30-11-2003, 22:48
Originariamente inviato da leadergl
nuova_stringa=UCASE(stringa)

oppure che è uguale

nuova_stringa=UCASE$(stringa)

Non sono uguali :p

con la $ torna subito una stringa...senz invece viene convertito una volta assegnato alla varibile...per cui perde un po' di tempo! :)