Oppure

Loading
29/03/10 1:45
mastergov
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!!


aaa
29/03/10 7:54
Alfonso
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.
aaa
29/03/10 11:17
mastergov
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
aaa
29/03/10 11:21
mastergov
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!
aaa
29/03/10 11:52
Alfonso
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 29/03/10 12:19
aaa
29/03/10 14:07
mastergov
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
aaa
29/03/10 14:21
Alfonso
Fai uno zip e allegalo al messaggio.
aaa
29/03/10 14:25
mastergov
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!! :)
aaa