Newsgroup: it.comp.lang.visual-basic
Titolo: VB6-ricerca record in un campo di un form

Mi piacerebbe attuare una ricerca di questo genere:
-ho il cursore su un campo di un form dove devo inserire il cognome di un
cliente che è il campo di un database, poniamo che il campo si chiami ANACLI
ed è in una tabella access di nome ANAGRA
-premendo un tasto di funzione ad esempio F5 mi deve mostrare un form che
provvederò a creare, che sia dedicato alla ricerca del cliente impostando
diversi tipi di filtri, ad esempio città, partita iva, città, ecc.
-nel form dedicato alla ricerca inserirò un tasto ricerca e una griglia,
alla pressione del tasto ricerca la griglia deve riempirsi di dati impostati
nella griglia relativi ai clienti che corrispondono a tutti i filtri
impostati.
-una volta ottenuti i dati nella griglia con un doppio clic sulla riga del
cliente che voglio selezionare il cliente deve comparire nel campo del form
iniziale dove dovevo inserire il cognome del cliente.
Ringrazio per l'aiuto, ci sto impazzendo!!!

 Ringrazio per l'aiuto, ci sto impazzendo!!!
Ci dispiace, ma ... qual è la domanda?
Ah, forse dovremmo scriver tutto noi?

> Ci dispiace, ma ... qual è la domanda?
alla pressione del tasto ricerca non so quale sia il codice da scrivere
perchè vengano considerati tutti i filtri impostati ed inseriti in griglia
solo i clienti che corrispondono a quei filtri.
Grazie

> Ci dispiace, ma ... qual è la domanda?

Puoi fare tutto con i comandi SQL, per esempio:
Select nome_campo1, nome_campo2 From nome_tabella Where nome_campo1=12.35
And nome_campo2='pippo' Order By nome_campo1
Ma anche per questo occorre conoscere un po' del linguaggio SQL.
Prova a scrivere un po' di codice, ce lo racconti e ci dici "qui non va, fa
così e dovrebbe fare colà". Ci possiamo ragionar sopra...

 così e dovrebbe fare colà". Ci possiamo ragionar sopra...
-Ho inserito nel form un ADO DATA CONTROL indicando nella proprietà
connectionstring il database e nella proprietà recordresource ho inserito la
query sql sotto specificata, inoltre ho inserito DATAGRID CONTROL indicando
nella proprietà Datasource il nome dell'ado data control;
-risultato: avendo creato in SQL la query per ottenere tutti i clienti che
corrispondevano ai criteri impostati, in questo caso cognome comasi, città
Milano effettivamente ho ottenuto quello che mi aspettavo.
SELECT anagra.an_cogn, anagra.an_nom, anagra.an_cit, anagra.an_prov,
anagra.an_cap
FROM anagra WHERE anagra.an_cogn="comasi" AND anagra.an_cit="milano"
ORDER BY anagra.an_cogn;
Problema: la query l'ho impostata io manualmente mentre mi servirebbe fare
in modo che la query si adegui a quello che è stato digtitato in alcuni
campi del form di ricerca.
Ad esempio se nel form di ricerca ci sono una textbox1 che funziona da
filtro per il cognome ed una textbox2 che funziona da filtro per la città
nella griglia devono essere inseriti i record in base ai valori inseriti al
momento nella textbox1 e nella textbox2.
Ringrazio per la risposta precedente che comunque mi ha dato una traccia di
partenza.

me wrote:

Ossia questo?
SELECT anagra.an_cogn, anagra.an_nom, anagra.an_cit, anagra.an_prov,
anagra.an_cap
FROM anagra WHERE anagra.an_cogn='" & Text1.Text & "' AND 
anagra.an_cit='" & Text2.Text & '"
ORDER BY anagra.an_cogn

 anagra.an_cit='" & Text2.Text & '"
                      ^^^^^^^^^^^^^^^^^^^^^
Accidenti, mi devo pure correggere adesso!


 anagra.an_cit='" & Text2.Text & '"
                               ^^^^^^^^^
"'
;)

 momento nella textbox1 e nella textbox2.
Segui il consiglio di puntino (ma che 'azz di nick!) e rammenta che, quando
componi le query da codice, i campi di tipo numerico vanno sempre
specificati col punto come separatore interi/decimali (senza altri caratteri
che non siano l'eventuale segno negativo, in testa) e i campi testo vanno
racchiusi fra apici singoli. Eventuali apici singoli al loro interno vanno
raddoppiati.
Nel tuo caso:
SELECT anagra.an_cogn, anagra.an_nom, anagra.an_cit, anagra.an_prov,
anagra.an_cap
FROM anagra
WHERE anagra.an_cogn='" & Replace(TextBox_comasi.Text,"'","''") & "'
AND anagra.an_cit='" & Replace(TextBox_cit.Text,"'","''") & "'"
ORDER BY anagra.an_cogn;


[*Lupo* : 
LupoOrmaiR...@libero.it
] ha scritto:
La riscrivo meglio, senza andare a capo (anche se la vedrai spezzata):
comando_sql="SELECT anagra.an_cogn, anagra.an_nom, anagra.an_cit,


 Segui il consiglio di puntino (ma che 'azz di nick!)
                                  ______^^^^^^^^^^^^______
UE'! :)

[*.* : n...@ho.mail] ha scritto:

Uè lo dico io.
Se ti chiamo puntino ... la colpa è solo tua ;-)

 Replace(TextBox_cit.Text,"'","''") & "' ORDER BY anagra.an_cogn;"
su questa query come su quella di puntino viene proposto errore di sintassi,
temo che sarà necessario scrivere del codice.

 Se ti chiamo puntino ... la colpa è solo tua ;-)
UE' UE' UE' simm'e Napule paisaaaaaa'
se "puntino" ha un dottorato allora e' il Dot. Dot ? ghgh dai . non
prendertela e' domenica e domani si reinizia il calvario di sudore e
tastiere ! :-/
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

> La riscrivo meglio, senza andare a capo (anche se la vedrai spezzata):

No, lo escludo. Facci vedere come l'hai scritta tu, _esattamente_.

 tastiere ! :-/
Urge fare chiarezza!
1) il mio UE' era riferito alla seguente affermazione del lupaccio:
 > Lupo wrote: Segui il consiglio di puntino (ma che 'azz di nick!)
                                              ^^^^^^^^^^^^^^^^^^^^
ovvero non la fatto che mi avesse chiama "puntino" (ci mancherebbe, è il 
mio nick!), ma al quel "che 'azz di nick', per la quale ribadisco la mia 
esclamazione: UE'!!!!!!!!!!!! eheheh.......
2) nessun dottorato, il puntino è per via che puntino si sente un 
puntino, ossia è consapevole di non sapere un 'azz!

 puntino, ossia è consapevole di non sapere un 'azz!
bhe puntino e' anche pixel ... che e' alla base del monitor... quindi anche
i puntini crescono ! L'hanno prossimo potrai aspirare all'asterisco ^_-


 puntino, ossia č consapevole di non sapere un 'azz!
Io so di non sapere un 'azz (non č vero, qualcosa so, ma so di sapere
certamente mooolto meno di quanto sanno, per esempio, qui, altri), per cui
puoi tranquillamente cambiare nick. Chiamati piripicchio, puntino (per
esteso) o zuzzurellone, ma se vedo un puntino ancora (ne hai certamente
facoltŕ, sia ben chiaro), dopo aver pulito il video come faccio solo ogni
tre mesi (cosě, dopo, mi sembra di avere il monitor nuovo di zecca), io ti
considero (scherzo, neh?!) come la cacca di una mosca, talmente acida (o
basica?) che mi ha forato qualche pixel. E m'incazzo come ... una paletta
per mosche. Faccina antiequivoco: ;-)


ho risolto una parte dell'operazione, cioè riesco ad ottenere nel datagrid i
dati che cercavo, il tutto usando un dataenvironment ed inserendo nel
command una query sql del tipo:
SELECT an_cogn as cognome, an_nom as nome, an_ind as indirizzo, an_cap as
cap, an_cit as città, an_prov as prov FROM anagra where an_cogn like 'c%';
in questo caso per selezionare tutti i clienti all'interno della tabella
anagra il cui nome inizia per c.
Non so ancora come inserire col doppio clic su una riga del datagrid un
campo, ad esempio il cognome nella textbox del form iniziale dove ho
iniziato la ricerca.