Newsgroup: it.comp.appl.access
Titolo: per ARTURO

<Nella query metti tre parametri del tipo:
<[ditta], [tel], [fax] ciascuno sotto le rispettive colonne.
<questo il codice per richiamare la query Q:
<Dim miodb As Database
<Dim mioset As Recordset
<Dim miaquery As QueryDef
<Set miodb = CurrentDb
<Set miaquery = miodb.QueryDefs("Q")
<if [forms]![M]!TXT.value = "ditta" then
<miaquery.Parameters("ditta") = EspressioneVBA
<miaquery.Parameters("tel") = "*"
<miaquery.Parameters("fax") = "*"
<End if
<.... altri IF
<Set mioset = miaquery.OpenRecordset()
<ecc.
------------------
ciao arturo,
ecco la prima parte del mio codice basato sul tuo aiuto
Dim miodb As Database
Dim mioset As Recordset
Dim miaq As QueryDef
Set miodb = CurrentDb
'ricerca ditta
If [Forms]![cerca]!campo.Value = "ditta" Then
    Set miaq = miodb.QueryDefs("ditta")    ' linea *
    MsgBox Forms!cerca!dato.Value         ' per controllo
    miaq.Parameters("_Ditta") = Forms!cerca!dato.Value    ' linea **
End If
'Set mioset = miaq.OpenRecordset        ' linea ***
ho i seguenti problemi:
- la linea * la devo lasciare li in quanto a seconda del valore di
campo.value ho diverse query
-la linea ** dovrebbe chiamare la query, passargli il contenuto di
dato.value ed accodare i risultati di ricerca in una tabella. Ma non accoda
un bel niente !!!!!!!!
-la linea *** non la metto dato che mi da reeore run time 3219
puoi aiutarmi ?
grazie

 -la linea *** non la metto dato che mi da reeore run time 3219
Mancano le parentesi vuote? La query deve essere di selezione.
----------------------------------------------------------------
--------------------------------------------------
RIFACCIAMO
Poniamo che il controllo in cui scrivi "ditta" si chiami "cerca", quello del
valore per il parametro sia
il controllo "dato" e la maschera "cerca",
e che la tabella a cui accodare si chiami tabella1. La query "ditta" deve
essere di SELEZIONE
non di accodamento.
'------------------------------------------inizio
codice-----------------------------------------------
Dim miodb As Database, mioset As Recordset, miaq As QueryDef, set2 As
Recordset
Set miodb = CurrentDb
Set set2 = miodb.openrecordset("Tabella1")
'-------------------------------------ricerca
ditta--------------------------------------------------
If [Forms]![cerca]!cerca = "ditta" Then
    Set miaq = miodb.QueryDefs("ditta")    ' linea *
    MsgBox Forms!cerca!dato.Value         ' per controllo
    miaq.Parameters("_Ditta") = Forms!cerca!dato          ' linea **
End If
'-------------------------------------ricerca
tel--------------------------------------------------
If [Forms]![cerca]!cerca = "tel" Then
    Set miaq = miodb.QueryDefs("tel")    ' linea *
    MsgBox Forms!cerca!dato.Value         ' per controllo
    miaq.Parameters("_Tel") = Forms!cerca!dato          ' linea **
End If
'-------------------------------------ricerca
fax--------------------------------------------------
If [Forms]![cerca]!cerca = "fax" Then
    Set miaq = miodb.QueryDefs("fax")    ' linea *
    MsgBox Forms!cerca!dato.Value         ' per controllo
    miaq.Parameters("_Fax") = Forms!cerca!dato          ' linea **
End If
'---------------------------------apertura
recordset------------------------------
Set mioset = miaq.OpenRecordset()        ' linea ***
mioset.movefirst
'---------------------------------accodamento alla
tabella----------------------
do until mioset.EOF
set2.addnew
    set2!ditta = mioset!ditta
    set2!tel = mioset!tel
    set2!fax = mioset!fax                     ' ecc. se ci sono altri campi
da accodare
set2.update
mioset.movenext
loop
----------------------------------------------------------------------------
------
set2.close
mioset.close
miodb.close
'----------------------------------------------fine-------------------------
---------
Speriamo bene ...
:-)))
Ciao
Arturo