Newsgroup: it.comp.lang.visual-basic
Titolo: [sql] riuscite a spiegarmi perchè fà così...?

Private Sub CaricaCaratteristicheGruppi()
    Dim rCarattGruppi As ADODB.Recordset
    Dim SQL As String
    Dim Li As ListItem
    Dim Conta As Integer
    lstGruppi.Clear
    lwCaratt.ListItems.Clear
    SQL = "SELECT 'Motore' FROM CaratteristicheGruppi"
    Set rCarattGruppi = New ADODB.Recordset
    rCarattGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
    Debug.Print SQL
    If rCarattGruppi.RecordCount > 0 Then
----> perchè rCarattGruppi.RecordCount è = 4 (il totale degli inserimenti) e
non 1 (i record con Motore)???<-----
        rCarattGruppi.MoveFirst
        Set Li = lwCaratt.ListItems.Add(, rCarattGruppi!gruppo,
rCarattGruppi!caratt1)
----> perchè su rCarattGruppi!gruppo dice impossibile trovare
l'oggetto....??? (sotto gruppo c'è Motore)<-----
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
--------------------------------------------
molte onorevoli grazie a Voi
^____^
Luca

 l'oggetto....??? (sotto gruppo c'č Motore)<-----



...le virgolette sono rimaste da
SQL = "SELECT 'text3.tex' FROM CaratteristicheGruppi"
e non dovrebbe centrare nulla....
grazie Luca

 ha scritto nel messaggio news:gKxD7.17058$74.4...@news2.tin.it...


 Ciao SIMO
...mi stò perdendo... ripeto
Private Sub CaricaCaratteristicheGruppi()
    Dim rCarattGruppi As ADODB.Recordset
    Dim SQL As String
    Dim Li As ListItem
    Dim Conta As Integer
    lstGruppi.Clear
    lwCaratt.ListItems.Clear
    SQL = "SELECT '" & Text3.Text & "' FROM CaratteristicheGruppi" ' Così
funziona
    'SQL = "SELECT " & Text3.Text & " FROM CaratteristicheGruppi"  ' Così
NON funziona
    Set rCarattGruppi = New ADODB.Recordset
    rCarattGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
    'rCarattGruppi.Open ("select Motore from CaratteristicheGruppi"), Db,
adOpenKeyset, adLockReadOnly
    Debug.Print SQL
    If rCarattGruppi.RecordCount > 0 Then
----> perchè rCarattGruppi.RecordCount è = 4 (il totale degli inserimenti) e
non 1 (i record con Motore)???<-----
        rCarattGruppi.MoveFirst
        Set Li = lwCaratt.ListItems.Add(, rCarattGruppi!gruppo,
rCarattGruppi!caratt1)
----> perchè su rCarattGruppi!gruppo dice impossibile trovare
l'oggetto....??? (sotto gruppo c'è Motore)<-----
grazie ancora
ciao Luca

     If rCarattGruppi.RecordCount > 0 Then
Spiegami perchè cerchi di aprire 2 Volte il recordset! No ti da errore?per eseguire richieste diverse o usi due Oggetti Recordset
oppure chiudi e poi riapri con una nuova query!
rCarattGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
 ' fai tutto ciò che devi
rCarattGruppi.Close
rCarattGruppi.Open NuovaSQL, Db, adOpenKeyset, adLockReadOnly
 ' fai nuovamente tutto ciò che devi su questo nuovo recordset!
rCarattGruppi.Close
--
__________________
www.sasim.net
* Vb è relativamente semplice perchè c'è MSDN: Usa F1 !!
* Server IRC : 
irc.azzurranet.org
 --> Canale: #it_lang_vb
* Sito Comune Ng: 
http://www.it-lang-vb.net
* Manifesto del Ng: 
http://www.it-lang-vb.net/docs/Manifesto.txt
* I vecchi messaggi su: 
http://groups.google.com/


 >


...visto l'impegno ed il tempo che 
hai speso per spiegarmi fino a quì, posso chiederti


un'ulteriore sforzo per guidarmi 
"passo-passo" alla soluzione di questa query+popolamento listwiew?


(nel frattempo GIURO che mi leggo il 
manuale sql)


 


grazie ancora
ciao 
Luca



...uhhhh.... ferma ferma!!!! mortis
ho trovato un manuale in ita di sql e mi sono illuminato...
devo fare qlc prova ma peso di aver capito dove sbagliavo....
    SQL = "SELECT * FROM CaratteristicheGruppi where Gruppo = " & "'" &
Text3.Text & "'"
ora voglio capire bene come popolare la listwiew...
grazie ancora, a presto
Luca




> per popolare la Listview devi solo fare un ciclo su ogni record che ti
viene restituito, tipo:
Ho poca esperienza in VB, quasi nessuna, ma mi pare che si possa associare
un'origine record da un controlli ListView, evitando di doverlo compialre da
codice.
Se non sbaglio, è sufficiente aggiungere il controllo per l'accesso ai dati
e poi fare riferimento a questo per i controlli che devono prelevare
informazioni da un DB.

 --
...uhmmm...
...dopo ti chiedo (sempre che non ti abbia già spaccato...) dei chiarimenti
su quello che hai scritto...
ma prima guardo quello ke ho fatto....
Private Sub CaricaCaratteristicheGruppi()
    Dim rCarattGruppi As ADODB.Recordset
    Dim SQL As String
    Dim Conta As Integer
    Dim nrcampiintabella As Integer
    lstGruppi.Clear
    lwCaratt.ListItems.Clear
    SQL = "SELECT * FROM CaratteristicheGruppi where Gruppo = " & "'" &
Text3.Text & "'"
    Set rCarattGruppi = New ADODB.Recordset
    rCarattGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
    Debug.Print SQL
    If rCarattGruppi.RecordCount > 0 Then
        rCarattGruppi.MoveFirst
        'Adesso o a mano o devi ciclare tante volte quante sono le (colonne
con Motore senza Null...)
        nrcampiintabella = rCarattGruppi.Fields.Count
            For Conta = 0 To (nrcampiintabella - 4)
                'SQL = "rCarattGruppi!caratt" & Conta 'così NON funzia
                'lwCaratt.ColumnHeaders.Add.Text = SQL 'così NON funzia
                lwCaratt.ColumnHeaders.Add.Text =
rCarattGruppi!caratt(Conta) 'così NON funzia
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            Next Conta
    End If
End Sub
..."'" & Text3.Text & "'... rimane perchè ogni volta carico un gruppo
diverso che scelgo con 1 combo e scrivo x conferma sul text3.
..oh ora: siccome ogni gruppo ha diverse caratt (1,2,3,...) alcune null e
alcune piene, ho fatto un ciclo for/next (dopo controllo anche il null)
che mi dovrebbe caricare le   lwCaratt.ColumnHeaders.Add.Text =
rCarattGruppi!caratt(Conta)  PERO' NON FUNZIA .... perchè?
quale alternativa?
grazie Luca

...puoi spiegarmi meglio? magari con un'esempio...
e ancora, prova a guardare il mi ultimo post... e dimmi cosa ne pensi...
grazie 1.000
Luca
"koo" <koo@k.k> ha scritto nel messaggio news:3be00617$1@master...


non so perchè ma non sopporto il DataBinding!
Ciao SIMO


 End Sub
Io di solito creo la struttura della listview prima...durante la
creazione della form (tasto destro sulla list e li aggiungi quante
colonne vuoi).
Poi inserisco come ti ho fatto vedere prima i vari Item. Guarda inoltre
cher facendo quel tipo di query, i record restituiti non conterranno mai
valore Null nel campo GRUPPO poichè tu gli dici che ti deve restituire
quelli che sono uguali a (Text3.Text).
Datti una ripassata ad Sql e a come funziona l'oggetto recordset in ADO
perchè forse non hai ben afferrato cosa fa...e come funziona!
Inoltre...per risolvere i problemi...cerca di usare il + possibile
msdn...non ti mangia e quesi semrpe dice cose giuste :)
Caio SIMO

         If i = Int(NumeroRecord / 2) Then DoEvents
Non capisco a cosa serva questa if....
DoEvents? a cosa serve?


 DoEvents? a cosa serve?
Allora:
Ma provare a schiacciare F1 e vedere cosa ti dice circa DoEvents?
non perchè non te lo voglio dire, ma perchè devi anche camminare con le
tue zampine!
Dai provaci!
Ciao SIMO

     SQL = "SELECT 'Motore' FROM CaratteristicheGruppi"
Questa query restituisce una tabella con tante righe quante sono quelle
di CaratteristicheGruppi e una sola colonna contenente sempre il valore
Motore.
Se vuoi selezionare solo i record che contengono Motore devi scrivere
SQL = "SELECT * FROM CaratteristicheGruppi WHERE NomeCampo = 'Motore'
-- 
Samuele Battarra
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/news/


...hai ragione....
Luca