|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2002
Città: Nuraminis (CA)
Messaggi: 955
|
VB e MS Access
Ciao ragazzi ho un cruccio stupido per voi da sottoporvi.
In Access ho creato una maschera con quattro elementi 3 caselle di testo 1 combinata con quattro valori "somma", "differenza", "prodotto" e "divisione" 1 pulsante. Sto cercando di fare la più grande idiozia penzabile cioè premendo il pulsante in una delle caselle deve comparire il risultato dell'operazione specificata dalla combo con argomenti il contenuto delle altre due caselle. Volevo vedere come si potesse realizzare usando due routine in VB con passaggio di parametri, ho scritto questo codice ma il compilatore mi dà sempre un errore! Private Sub Calcola(a, b, c) Select Case c Case somma Casella03.Value = a + b Case differenza Casella03.Value = a - b Case prodotto Casella03.Value = a * b Case divisione Casella03.Value = a / b End Select End Sub Private Sub PulsanteCalcola_Click() With Form_Prova Calcola(Casella01.Value,casella02.Value,CombinataOperatore.Value) End With End Sub Cosa sbaglio??? Grazie Paolo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
magari se scrivi che errore ti da si riesce ad isolarlo ed analizzarlo...
comunque quello che tu vorresti fare è una cosa del genere: Assumiamio che si voglia eseguire la somma di due numeri inseriti in 2 caselle di testo, e riportare il risultato in un'altra casella (dichiarate tutte come "formato=Numero Generico"). Alla pressione di un pulsante si esegue la somma: Codice:
Private Sub Comando6_Click() Forms![Maschera1].Testo4 = Forms![Maschera1].Testo2 + Forms![Maschera1].Testo0 End Sub dovrebbe essere una cosa così, giusto? oppure vuoi per forza usare una funzione esterna all'interno dell'evento "click" ?
__________________
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2002
Città: Nuraminis (CA)
Messaggi: 955
|
Quote:
Questo è uno screenshoot della situazione! |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2002
Città: Nuraminis (CA)
Messaggi: 955
|
Ops
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Lino Banfi direbbe "....Maronn Santissima dell'Incoronéta!!!!"
hai sbagliato sintassi, la forma giusta è questa: Codice:
Private Sub Calcola(a, b) Forms![Maschera1].Testo4 = a + b End Sub Private Sub Comando6_Click() Calcola Forms![Maschera1].Testo0, Forms![Maschera1].Testo2 End Sub Ho preso il mio esempio per spiegarti cos'hai sbagliato (Le chiamate a funzioni "sub" devono avvenire senza parentesi tonda). P.S. naturalmente se avessi voluto fare una funzione che Restituisce il valore della somma, avresti dovuto scrivere una "Function" non una "Sub", in quanto solo le Function possono restituire valori, invece le "Sub" sono delle procedure senza valore di ritorno. La restituzione del valore avviene assegnado al nome della funzione in questione il valore da ritornare, esempio: Codice:
Option Compare Database Private Function Calcola(a, b) Calcola = a + b End Function Private Sub Comando6_Click() Dim risultato As Long Forms![Maschera1].Testo4 = Calcola(Forms![Maschera1].Testo0, Forms![Maschera1].Testo2) End Sub Spero di esserti stato utile.
__________________
Ultima modifica di akyra : 28-02-2005 alle 11:50. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2002
Città: Nuraminis (CA)
Messaggi: 955
|
Grazieeeeeeeee
Miiii che stupidata io sono abituato al Delphi e davo per scontate le parentesi, che idiota grazie mille ancora. Paolo |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
Quote:
felice di esserti stato d'aiuto ciao!
__________________
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2002
Città: Nuraminis (CA)
Messaggi: 955
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:56.



















