Newsgroup: it.comp.lang.visual-basic
Titolo: RowColChange 2

Grazie per le varie "modifiche strutturali" proposte ma questo non risolve
il mio problema
Il mio problema non è che qualcosa non funziona ma che finita la routine
combo1_click() il programma dovrebbe fermarsi attendendo un nuovo evento
(che è quello del rowcolchange sulla datagrid),
invece questo non succede, anzi, l'evento si genere automaticamente da solo
e la routine datagrid1_rowcolchange(....) va in funzione senza che nessuno
l'abbia chiamata in causa dopo il popolamento della datagrid con i dati del
db!!!!
E vorrei semplicemente capire il perchè. E come risolvere il problema!
Ripeto il mio precedente post. Vi prego aiutatemi perchè prima funzionava
tutto!!!!!!
Ecco cosa succede, cercherò di essere quanto più chiaro è possibile.
Questo è quello che dovrebbe accadere normalmente
FormLoad:
Una ComboList si riempie con alcuni codici clienti.
Clic sulla ComboList:
la DataGrid1 si popola con i dati del cliente (in questo caso sono ordini)
Clic su una riga della DataGrid1:
la DataGrid2 si popola con i dettagli dell'ordine (gli articoli ordinati).
Invece ecco che succede:
Clic sulla ComboList:
la DataGrid1 si popola con i dati del cliente (in questo caso sono ordini)
la DataGrid2 si popola con i dettagli dell'ordine (gli articoli ordinati).
Naturalmente in questo caso si genera un'errore in quanto non ci sono dati
da esaminare.
In parole più semplici è come se il programma non riconoscesse l'End Sub
della ComboList etc
Per quanto riguarda il passaggio dei dati da una routine all'altra ho usato:
Private Sub Combo1_Click()
On Error Resume Next
  Dim conn2 As New ADODB.Connection
  Dim rsTemp2 As New ADODB.Recordset
  conn2.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source= clienti.mdb"
  stringa = "select * from Cliente" & codicecliente & "'"
  rsTemp2.Open stringa, conn2, adOpenStatic
  Text1.Text = rsTemp2!RagioneSociale
  Text2.Text = rsTemp2!piva
  Text3.Text = rsTemp2!via
  Text4.Text = rsTemp2!NumeroCivico
  Text5.Text = rsTemp2!cap
  Text6.Text = rsTemp2!citta
  Text7.Text = rsTemp2!provincia
  conn2.Close
  Dim Db As Connection
  Set Db = New Connection
  Db.CursorLocation = adUseClient
  Db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" + App.Path &
"\ordini.mdb;"
  Set DBGriglia = New Recordset
  stringa = "select * from ElencoOrdini where CodiceClienteOrdinante='" &
codicecliente & "'"
  DBGriglia.Open stringa, Db, adOpenStatic, adLockOptimistic
  Set DataGrid1.DataSource = DBGriglia
  DataGrid1.Refresh
  mbDataChanged = False
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As
Integer)
....
....
....
End Sub
Quest'ultima routine dovrebbe entrare in funzione nel momento in cui si fa
clic su una riga della DataGrid1... almeno così succede nelle altri parti
del mio programma dove uso la stessa cosa.. ma qui invece no. Si carica
immediatamente dopo la routine Combo1_Click
Che succede?
io non riesco a spiegarmelo, voi?
Sapete aiutarmi?
Potrebbe essere la prorietà RowColChange che non va bene? Me ne suggerite
un'altra che fa al caso mio?
Grazie.


L'evento RowColChange si verifica per il fatto che la griglia viene
ricomposta (dai vari click che il combo subisce) perchè, appunto, la riga
e/o la colonna cambiano. Non credo che l'evento si scateni solo facendo
click col mouse o spostando riga/colonna con la tastiera.

 click col mouse o spostando riga/colonna con la tastiera.
In effetti ci avevo pensato anche io a questa cosa.
Ma se utilizzo l'evento CLICK non ottengo gli stessi risultati.... non
conosco come funziona l'evento RowColChange ma posso assicurare che con
l'evento click non ottengo gli stessi risultati in quando facendo click su
una riga devo fare click una nuova volta su essa o su un'altra affinchč
visualizzi i dati selezionati (č come se l'evento click si riferisse non
alla riga CLICCATA ma a quella cliccata prima di quest'ultima.. non so se mi
sono spiegato... spero di si)
Sapete aiutarmi?