Newsgroup: it.comp.appl.access
Titolo: chiarmiento sulle funzioni

ciao a tutti
 
chiedo il vostro aiuto per 
alcune cose che non mi sono chiare...
 
riproponendo una funzione già postata.
 
La domanda è la seguente, 
perchè mi deve chiedere l'oggetto, quando
campo1, campo2, campo3 
in realtà sono oggetti?
 
 
Public Function LCDiv( _
  ByVal campo1 As Variant, _
  ByVal campo2 As Variant, _
  ByVal campo3 As Variant) As Boolean
 
  Dim X As String
 
  X = ""
 
  X = IIf(Nz(campo1, 0) = 0, ", Indirizzo", "") _
    & IIf(Nz(campo2, 0) = 0, ", C.A.P.", "") _
    & IIf(Nz(campo3, 0) = 0, ", Città", "")
 
  If (X) <> "" Then
            Dim Risposta As Variant
            Risposta = vbYes
 
 
            Risposta = MsgBox("Attenzione manca:" & Mid(X, 2) & ", vuoi inserire i dati mancanti?.", vbYesNo, "Attenzione!")
 
            If (Risposta = vbYes) Then
            LCDiv = True
 
                If Nz(campo1, 0) = 0 Then
                    campo1.SetFocus
 
                ElseIf Nz(campo2, 0) = 0 Then
                    campo2.SetFocus
 
                ElseIf Nz(campo3, 0) = 0 Then
                    campo3.SetFocus
 
                End If
 
            End If
 
  End If
 
End Function


Questo non e' un chiarimento sulle funzioni e' un chiariment0 sugli oggetti
  campo1, campo2, campo3
non si sa cosa sono.
Sono tre variabili ricevuta "byval" che possono essere
qualsiasi cosa.
Se non dici come imposti le tre variabili non c'e' modo di saperlo a
  meno di isQualchecosa(?) sui tre nomi.
 
Set quellochemipare = un oggetto
questo fa si che l' oggetto e' lo stesso di quellochemipare.
Sono due /nomi/ che riferiscono alla stessa area di memoria.
Quando fai /byval/ l'oggetto e' copiato da qualche parte e quello che
ricevi e' la /copia/ che non ha nulla a che fare con l'oggetto originale.
conseguenze?
 
 
 
 
 
 
Fermo restando che, in genere, per gli oggetti si usa il metodo
.clone per farne, appunto, la copia autonoma e diversa dall'originale.
Il metodo .clone lo devi scrivere a meno che non sia gia' patrimonio
  (come metodo -indi funzione-) dell'oggetto a  cui riferisci.
L'esempio piu' banale e'
.Clone (metodo)
e
.Recordsetclone (proprieta')
 
ambedue patrimonio dell'oggetto Recordset
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 


grazie Alessandro
hai ragione è un chiarimento sugli oggetti.
 
io utilizzo questo codice per richiamare la funzione........
 
        If LCDiv(Me!SM_LuogoCaricoDiverso.Form!IndirizzoMagazzino.Value, _
          Me!SM_LuogoCaricoDiverso.Form!CAPMagazzino.Value, _
          Me!SM_LuogoCaricoDiverso.Form!CittàMagazzino.Value) = True Then
            Cancel = True
            Exit Sub
 
        End If
e cosi facendo non gli passo degli oggetti?


 
Neanche per idea gli passi il valore /scalare/ .value.
 
Me!SM_LuogoCaricoDiverso.Form!IndirizzoMagazzino
Questo e' l'oggetto *IndirizzoMagazzino* che,
probabilmente, e' di tipo /textbox/
 
SM_LuogoCaricoDiverso.Form!IndirizzoMagazzino.Value
e' il valore contenuto nella proprieta' /value/ dell'oggetto.
Probabilmente una stringa ma, forse, di tipo variant
(non  ricordo)



grazie Alessandro