Newsgroup: it.comp.appl.access
Titolo: PASSAGGIO PARAMETRI TRA FUNZIONI ???

Salve a tutti,
ho il seguente problema:
Dalla funzione A chiamo la funzione B passandogli come parametri un Recordset.
Access mi dice "tipi di dati non corrispondenti".
Non capisco il perche'.
funzione A: CreaCampoRicercaPartite()
funzione B: RiempiTxtRicerca(t as RecordSet)
Grazie in anticipo per l'aiuto
Luca manetti
****************************************************************************
***
Public Sub CreaCampoRicercaPartite()
Dim db As Database
Dim t_new As Recordset
Dim tbl As TableDef
Dim f1 As Field
Dim sql As String
'aggiunge il campo TxtRicerca alla tabella T_Partite_Proprietari
Set db = CurrentDb()
Set tbl = db.TableDefs("T_Partite_Proprietari")
Set f1 = tbl.CreateField("TxtRicerca", dbText)
tbl.Fields.Append f1
'apre la tabella T_Partite_Proprietari
sql = "SELECT T_Partite_Proprietari.NumeroPartita,
T_Partite_Proprietari.ID_EntitaProprietaria,
T_Partite_Proprietari.ResponsabilePartita,
T_Partite_Proprietari.TxtRicerca" & _
" FROM T_Partite_Proprietari ORDER BY T_Partite_Proprietari.NumeroPartita,
T_Partite_Proprietari.ID_EntitaProprietaria;"
Set t_new = db.OpenRecordset(sql, dbOpenDynaset)
RiempiTxtRicerca (t_new)
End Sub
****************************************************************************
***
****************************************************************************
***
Private Sub RiempiTxtRicerca(t as RecordSet)
Dim txt, txt_all As String
Dim part1, part2 As Integer
t.MoveFirst
inizio:
part1 = t!NumeroPartita
txt = t!ID_EntitaProprietaria
t.MoveNext
If t.EOF = True Then
    t.Close
    Exit Sub
End If
....ecc......
****************************************************************************
***
_____________________________________________________________________________
      ___   ___    __
     /  /  /   ¦  /  ¦ Luca Manetti         ICIMSI / SUPSI
    /  /  /    ¦ /   ¦ ing. dipl. ETH       Scuola Universitaria Professionale
   /  /  /  /¦ ¦/    ¦                      Galleria 2
  /  /  /  / ¦   /¦  ¦                      CH-6928 Manno
 /  /__/__/__¦__/ ¦  ¦                      
/___________/     ¦__¦                      
     /  /mailto:
lman...@cimsi.cim.ch
       tel. 
++41/91/610.89.64
    /__/
http://www.onemore.ch
		   fax. 
++41/91/610.89.70
____________________________________________________________________________
_
-- 
Posted from 
vigna.cimsi.cim.ch
 [193.72.254.3] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
3.0.5.32.20001124111606.009cd680@mailhost...
Salve a tutti,
ho il seguente problema:
Dalla funzione A chiamo la funzione B passandogli come parametri un
Recordset.
Access mi dice "tipi di dati non corrispondenti".
Non capisco il perche'.
funzione A: CreaCampoRicercaPartite()
funzione B: RiempiTxtRicerca(t as RecordSet)
Private Sub RiempiTxtRicerca(t as RecordSet)
Prova un po' a dichiararti questa public...
Antonio


Se non erro VBA passa i parametri per valore, prova a passarli per per
riferimento e a specficare il tipo di recodset: 
RiempiTxtRicerca (byref t as (ADODB|DAO).Recordset)

Non capisco il perche'.
E' un problema di sintassi che l'analizzatore grammaticale di Access non
intercetta, l'interprete invece sì.
L'invocazione di routine con parametri può essere effettuata in due modi
diversi:
1)
Call RiempiTxtRicerca (t_new)
2)
RiempiTxtRicerca t_new
Tu hai usato un terzo sistema
RiempiTxtRicerca (t_new)
che evidentemente non è corretto sintatticamente.
HTH
Michele Amato

Grazie per le risposte, ma non sono riuscito a farlo funzionare.
Ho provato sia a dichiarare la funzione B come public, sia a chiamarla con
"call".
L'errore e' sempre il medesimo: "dati non corrispondenti".
Mi sembra un problema talmente banale da risultare stupido... ma mi sto
convincendo che lo stupido sono io e che sto dimenticando qualcosa da
qualche parte.
Ho aggirato la cosa passando alla funzione B una stringa con il nome della
tabella aperta nella funzione A. Il fatto e' che in B devo dichiarare e
aprire una seconda volta lo stesso RecordSet, e cio' mi sembra inutile.
In ogni caso rimango qui in attesa di suggerimenti, ringraziendo in
anticipo per la pazienza.
Saluti.
Luca Manetti
