Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - ricerca su Datagrid e sql
Forum - Visual Basic 6 - ricerca su Datagrid e sql

Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 3:45
Lunedì, 29/03/2010
Allora buona domenica a tutti intanto  

Il problema è questo ...

Allora in un form ho un datagrid sulla quale sul form(load) cè tutto l'occorrente per popolarlo tramite db..
poi sulle 2 combobox da una parte ho
Nome cliente: e dentro tutti i clienti. quando clicco su cliente mi da tutti i campi relativi al cliente del datagrid sotto.. e fin qui ci sono.
nell'altra combobox invece ho tutti i mesi quando seleziono prima il cliente... e poi seleziono il mese di gennaio mi mostra a video tutto quello che rtiguarda il cliente nel mese di gennaio, mentre invece
se cambio il cliente e lascio gennaio inserito mi printa nel datagrid tutto quello del cliente selezionato senza filtrare il mese.. ecco il codice :



Private Sub Combo1_Click()
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset

var1 = combo1.text
If val(Combo1.ItemData(Combo1.ListIndex)) = 1 Then (qui ci sono i mesi)



cn.Open "Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\resoconto.mdb"
Set rs.ActiveConnection = cn
rs.Open "SHAPE { SELECT * FROM resoconto WHERE mese = '01' AND cliente = '" & var1 & "' }"
Set DataGrid1.DataSource = rs
Debug.Print "SHAPE { SELECT * FROM resoconto WHERE mese = '01' AND cliente = '" & var1 & "' }"

Set rs = Nothing
Set cn = Nothing

Else


cn.Open "Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\resoconto.mdb"
Set rs.ActiveConnection = cn
Debug.Print "SHAPE { SELECT * FROM articoli WHERE cliente = '" & var1 & "'}"


rs.Open "SHAPE { SELECT * FROM resoconto WHERE Cliente = '" & var1 & "'}"


Set DataGrid1.DataSource = rs


Set rs = Nothing
Set cn = Nothing


End If


premetto che ho associato al mese nel db i numeri "01" gennaio "02" febbraio ecc...

come potrei risolvere il problemino??
qualche idea??


Complimenti per il sito!!



PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 9:54
Lunedì, 29/03/2010
Non mi è chiaro se il problema è:

se cambio il cliente e lascio gennaio inserito mi printa nel datagrid tutto quello del cliente selezionato senza filtrare il mese..

Cioè vorresti che scelto il cliente se è selezionato un mese ti filtrasse il resoconto del cliente del mese selezionato?

E forse hai trascritto male il codice:

var1 = combo1.text
If val(Combo1.ItemData(Combo1.ListIndex)) = 1 Then (qui ci sono i mesi)

Sembra che dalla stessa combo tu ricavi sia il nome del cliente che il mese.

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 13:17
Lunedì, 29/03/2010
eh ? no no da una ricavo il nome del cliente e ogni volta gli faccio controllare con un costrutto if che se la combo2(quella del mese) ci ha un mese inserito deve cambiare la query e farla per il cliente scelto con il mese che trova li.
questa è la combo1 cioè comboclienti

e la combo2 è quella dei mesi.


  Dim cn As New ADODB.Connection, rs As New ADODB.Recordset

var1 = Combo1.Text
If Combo2.Text = "Gennaio" Then
stringa = Empty

'Dim stringa As String

Dim stringa2 As String


stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    stringa2 = stringa & App.Path & "\resoconto.mdb"
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.Open stringa & stringa2
    
    rs.Open "SELECT * FROM resoconto WHERE mese = '01' AND cliente =  '&combo1.text&' ", cn, 1
    Debug.Print "ciao"
    
    Set DataGrid1.DataSource = rs
    
    Set cn = Nothing
Set rs = Nothing


        
Else


cn.Open "Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\resoconto.mdb"
Set rs.ActiveConnection = cn
       ' Debug.Print "SHAPE { SELECT *  FROM articoli WHERE cliente = '" & var1 & "'}"


rs.Open "SHAPE { SELECT *  FROM resoconto WHERE Cliente = '" & var1 & "'}"


Set DataGrid1.DataSource = rs
        
        
       Set rs = Nothing
      Set cn = Nothing
        
        
    End If


non capisco perchè quando mi seleziono prima un cliente e poi il mese
fa quello che voglio cioè filtrare il mese che gli chiedo del cliente desiderato
mentre invece se con il cliente selezionato cambio la data
lui mi da sul datagrid "TUTTO" senza filtri riguardanti il cliente selezionato.

nel codice gli faccio sempre controllare tutte e 2 le combo e a seconda di quello che vede fa o - quello che voglio...(però non lo fa) ;(







più chiaro adessO?
ciau e Grazie per l'interessamento

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 13:21
Lunedì, 29/03/2010
scusa ma il post sopra è diverso dal primo xchè le sto provando tutte :)
prima housato shape e ora provavo con il JET ma nada sempre.... sono 3 giorni che ci sto diventando matto!

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 13:52
Lunedì, 29/03/2010
Se quello che hai scritto è la procedura che viene eseguita quando clicchi sulla combo1 secondo me nella griglia non dovresti vedere niente perchè la query :

rs.Open "SELECT * FROM resoconto WHERE mese = '01' AND cliente =  '&combo1.text&' ", cn, 1

ha un errore:  cliente =  '&combo1.text&'  e il risultato è zero record.

Riguardando manca anche prima di questa istruzione:

Set rs.ActiveConnection = cn

Ultima modifica effettuata da Alfonso il 29/03/2010 alle 14:19
PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 16:07
Lunedì, 29/03/2010
A me funziona l'uica cosa che non mi va è quella che ho scritto se potresti darmi una tua email ti mando il form con il codice cosi vedi che dici ? non mi riesce di levarci le gambe

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 16:21
Lunedì, 29/03/2010
Fai uno zip e allegalo al messaggio.

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 16:25
Lunedì, 29/03/2010
Eh sai cosa èra il mio problema ? ho ricreato il form in un nuovo file, caricando solo 1 form cioè quello e funziona perfettamente e fa quello che volevo io, secondo me nell'altro codice ho talmente tanti costrutti che ne eseguiva qualcuno senza che lo sapessi, e non andava... l'ho riscritta da capo adesso funziona...

thx per ora!! :)

PM Quote