Non è chiaro ...Originariamente inviato da karl93
Se non è chiaro...vi scrivo il codice che ho scritto...così capite meglio cosa voglio dire!![]()
Non è chiaro ...Originariamente inviato da karl93
Se non è chiaro...vi scrivo il codice che ho scritto...così capite meglio cosa voglio dire!![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
Hihihi![]()
Comunque ecco il codice:
codice:Private Sub Form_Unload(Cancel As Integer) On Error Resume Next rec = txtTotale.Text Form2.Text3.Text = CDbl(Form2.Text3.Text) + CDbl(txtTotale.Text) Open App.Path & "\totale.txt" For Output As #1 Print #1, rec Close #1 End Sub
Se ricordi dovevo passare un dato da una form all'altra e fare la somma. Ora se noti salvo il dato e poi lo ricarico se questa form viene aperta nuovamente. Ovviamente se faccio altri calcoli...ottengo il totale...xò chiudendo di nuovo questa form...mi somma nuovamente il totale alla Text3 della form2. In pratica io non vorrei che faccia di nuovo la somma se il totale è uguale a quello di prima...ma deve farlo di nuovo solo se il totale è diverso! Sono stato chiaro?codice:Private Sub Form_Load() On Error Resume Next data = Date Me.Caption = "Data - oggi è il " & data & " " Open App.Path & "\totale.txt" For Input As #1 Input #1, rec Close #1 End Sub![]()
Originariamente inviato da karl93
Sono stato chiaro?![]()
![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
Allora nella prima form effettuo dei calcoli e alla ottengo un risultato nella Text3. Poi apro la Form3 e faccio altri calcoli e ottengo un totale(txtTotale) che viene salvato e ricaricato se la Form3 viene riaperta.
Esempio:
Form2:
Text1.Text = 14,3
Text2.Text = 15,1
Text3.Text= 29,4
Ora apro la Form3...inserisco i dati:
Text1.Text = 1,3
Text2.Text = 1,1
Text3.Text= 1,9
txtTotale.Text= 4,3
Ora chiudo la Form3...e nella Form2 visualizzo:
Text3.Text = 33,7
E così va bene...xò se apro nuovamente la Form3, xkè devo modificare i dati, se faccio:
Text1.Text = 1,3
Text2.Text = 1,0
Text3.Text= 1,5
txtTotale.Text= 3,8
Quando chiudo...nella Form2 visualizzo:
Text3.Text = 37,5
Invece dovrei visualizzare:
Text3.Text = 33,2
Come ti ho detto...non deve sempre sommare. Deve sommare solo se nella Form3 il totale è diverso da quello salvato in precedenza. Se scrivo:
Text1.Text = 1,3
Text2.Text = 1,0
Text3.Text= 1,5
txtTotale.Text= 3,8
E dp voglio modificare in questo altro modo:
Text1.Text = 1,0
Text2.Text = 1,3
Text3.Text= 1,5
txtTotale.Text= 3,8
Non deve sommare sempre. Appena vede che il totale salvato è diverso dal totale attuale...quando torno nella form2 deve togliere quello che ho salvato prima e aggiungere il totale attuale. Ovviamente se i totali(quello salvato e quello attuale) sono uguali non deve effettuare la somma. Ecco perchè dicevo...ke deve sommare sola la prima volta!
Infine nel modo che ho scritto io...somma sempre! Capito?![]()
Quindi, se non mi sono perso durante la strada, basta che tu scriva
Text3.Text = CStr(CDBl(Form2.Text1.Text)+CDbl(Form2.Text2.Text) +CDbl(txtTotale.Text))
No MP tecnici (non rispondo nemmeno!), usa il forum.
No...in specifico nella form2 c'è una text(Text3) dove visualizzo il totale dei calcoli in quella form...poi nella form3 c'è un'altra text(txtTotale) dove visualizzo il totale dei calcoli in quella form.
Ora dovevo fare la somma alla chiusura della form3...e abbiamo scritto così:
E la somma funziona. Ora i problemi sono 2:codice:Form2.Text3.Text = CDbl(Form2.Text3.Text) + CDbl(txtTotale.Text)
1)Se riapro la form...cambio i dati e il totale è diverso da quello salvato...deve togliere la somma fatta precendemente ma fare la somma con il nuovo totale.
2)Se riapro la form...cambio i dati e il totale è uguale da quello salvato...non devo più sommare, visto che il totale è uguale.
Capito ora?![]()
Quindi, come ti dicevo, devi cambiare quella linea che hai scritto con
Form2.Text3.Text = CStr(CDBl(Form2.Text1.Text)+CDbl(Form2.Text2.Text) +CDbl(txtTotale.Text))
Però, se elenchi *esattamente* form e controlli (senza perderti nulla) si può capire qualcosa ...
Ovvero
Form1 ... controlli Text1 Text2 ...
Form2 ... controlli Text1 Text2 Text3 ...
Form3 ...
e poi devi indicare le operazioni da farsi ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ok. Allora:
Form1: E' una form di presentazione...quindi è sl grafica...cn dentro del codice all'interno di un timer...ke mi fà passare alla form2 dopo 5 secondi.
Form2: Ci sono 3 TextBox 2 commandbutton...nella prima TextBox(Text1) inserisco un valore e lui lo moltiplica per 0,5 e inserisce il totale nella terza textbox(Text3)...nella seconda TextBox(Text2) inserisco un valore e lui lo moltiplica per 0,1 e inserisce il totale nella terza textbox(Text3) e grazie all'evento Change esegue la somma subito. Ovviamente è gestita la somma tra le due Text. Esempio:
Text1 = 4 - quindi 4*0,5
Text2 = 5 - quindi 5*0,1
Text3 = 2,5
I dati nella Text1 e Text2 vengono salvati in file di testo, perchè se il programma viene chiuso...deve ripartire dagli ultimi valori inseriti. Poi in un commandbutton apro la form3 e nell'altro esco.
Form3: Ci sono 4 TextBox e basta. Come prima si fanno quasi gli stessi calcoli, ma con cifre diverse. Nella prima TextBox(Text1) inserisco un valore e lui lo moltiplica per 1,1 e inserisce il totale nella terza textbox(txtTotale)...nella seconda TextBox inserisco un valore e lui lo moltiplica per 1,3 e inserisce il totale nella terza textbox(txtTotale)...nella terza TextBox(Text3) inserisco un valore e lui lo moltiplica per 1,5 e inserisce il totale nella terza textbox(txtTotale) e grazie all'evento Change esegue la somma subito. Anche qui è gestita la somma tra le tre Text. Esempio:
Text1 = 4 - quindi 4*1,1
Text2 = 5 - quindi 5*1,3
Text3 = 1 - quindi 1*1,5
txtTotale = 12,4
I dati nella Text1,Text2 e Text3 vengono salvati in un file di testo, perchè se la finestra viene chiusa...deve ripartire dagli ultimi valori inseriti. Ora abbiamo risolto il problema della somma in quel modo:
codice:Form2.Text3.Text = CDbl(Form2.Text3.Text) + CDbl(txtTotale.Text)
In questo modo la somma funziona. Però mettiamo il caso ke durante l'esecuzione voglio aprire più di una volta la form3. Tipo ho inserito i valori nella form2:
Text1=2
Text2=2
Text3=1,2
Quindi il totale è 1,2...ora clicco sulla form3 e dp aver inserito i valori :
Text1 = 1
Text2 = 2
Text3 = 2
txtTotale = 6,7
Il totale è 6,7...quando chiudo la form3...il totale che visualizzo nella form2 in Text3 è 7,9. Ora riapro la form3...tengo sempre:
Text1 = 1
Text2 = 2
Text3 = 2
txtTotale = 6,7
Ma sostituisco i valori in:
Text1 = 2
Text2 = 3
Text3 = 2
txtTotale = 9,5
Il totale ora è 9,5...quindi se chiudo...nella form2 in Text3 visualizzo 10,7.
Ora si capisce???
Cioè se cambio i valori nella form3 lui non deve sommare sempre...xkè se scrivo solo come sopra...lui somma sempre invece non deve fare così!
scusa ma se sposti l'operazione di somma dal form_unload ad un nuovo bottone ?
![]()