Newsgroup: it.comp.appl.access
Titolo: Chiedo aiuto per un problema banale !

ciao a tutti, mi chiamo gian luca e sto imparando ad usare access97/2000 per
lavoro.
il mio problema penso sia molto semplice da risolvere, ma essendo alle prime
armi non riesco a trovare una soluzione. questo č quello che devo fare:
ho creato una maschera contenente una casella combinata e un pulsante di
comando.
la casella combinata fa riferimento ad una tabella che contiene due campi,
uno identifica le sigle delle provincie e l'altro identifica il nome esteso
delle provincie. quando faccio clic sulla freccina della casella combinata
appare l'elenco delle sigle delle provincie. Una volta selezionata la sigla
interessata, faccio clic sul pulsante di comando chiamato cerca. Lo scopo č
semplice, devo cercare la sigla precedentemente selezionata nella tabella
fatta e, ultimata la ricerca, devo visualizzare un report, o una tabella,
che mostri sigla e nome esteso della provincia trovato
per fare questo, alla pressione del pulsante di comando, ho associato la
seguente istruzione:
     DoCmd.OpenReport ReportName:="provincie", View:=acPreview,
filtername:="cerca"
dove:
 provincie - č il report da visualizzare
 cerca - č una query parametrica con un solo parametro da specificare
ammesso che usare una query con un parametro in ingresso sia la scelta
giusta, il mio problema č:
come faccio ad impostare il parametro della mia query alla sigla selezionata
nella casella combianata ???
c'č un comando che faccia questo ???
posso risolvere il problema senza fare query ?
come funziona WhereCondition:= di DoCmd.OpenReport ?
Risolvere questo semplice esempio mi aiuterebbe molto per il mio nuovo
lavoro quindi se avete voglia di spendere un po' del vostro tempo tempo per
aiutarmi, vi ringrazio in anticipo ! :)
grazie, ciao
  gian luca


Se la casella combinata è a due colonne, non devi utilizzare nessuna query
per avere
il nome esteso della provincia: basta utilizzare la proprietà Column della
casella combinata.
Ciao
LaLo

 ha scritto nel messaggio
news:9i116m$dsd$1...@pluto.news.dsi.unimi.it...

ma per fare una ricerca con query il cui parametro è preso dall'elemento
selezionato nella casella combinata come faccio ????

 ha scritto nel messaggio
news:HUW07.5205$D03.1...@news.infostrada.it...

Se utilizzi una casella combinata che ha per origine dati la tabella
Provincie, la quale è formata da (SiglaProvincia, NomeProvincia), non
conviene utilizzare una sola colonna con la SiglaProvincia per poi
recuperare il nome con una query; dichiari la casella combinata formata da 2
colonne, dove nella seconda hai il NomeProvincia.
HTH
LaLo

 ha scritto nel messaggio
news:9i1h0s$s0v$1...@pluto.news.dsi.unimi.it...

Giusto, pero questo è un semplice esempio per inquadrare il tipo di
problema. Nel database dove dovro' applicare questa soluzione , la casella
combinata fa riferimento ad una tabella con una cinquantina di campi.
Quindi a me serve proprio sapere il metodo per passare al parametro di una
query parametrica, la stringa selezionata nella casella combinata.
si puo' fare ?
ciao gian luca
P.S. : grazie per gli aiuti LaLo


Innanzitutto puoi inserire più di due campi in una casella di riepilogo
anche se non la visualizzi. Premesso ciò e supponendo che non puoi/vuoi
visualizzare il campo della tabella che ti serve, quando ti occorre devi
scrivere del codice VBA. Ad esempio:
Dim rstRecordset as Recordset
Dim strSQL as String
strSQL = "SELECT NomeProvincia FROM tblProvincie WHERE SiglaProvincia = " &
cboCaselladiRiepilogo.Value
Set rstRecordset = CurrentDb.OpenRecordset(strSQL)
(il campo che interessa è rstRecordset!NomeProvincia)
HTH
LaLo

 c'è un comando che faccia questo ???


ciao LaLo,
non sono riuscito !!!
quando creo un tasto, edito le sue proprieta e nella cartella evento,
specifico su clic [routine evento]
a questo punto mi serve il codice VB che:
1. legga il valore tipo dalla casella combinata o casella di testo
2. salva il valore letto in una variabile string di nome input
3. chiama la query "nome_query" e passagli come unico parametro il valore di
input
tutto qua ! ma non so i comandi vb da usare, ho guardato nella guida in
linea e in sito comune ma non trovo cio che mi serve.
tu sai scrivere queste linee di codice ?

 ha scritto nel messaggio
news:vug17.12527$D03.4...@news.infostrada.it...

Se devi impostare un filtro sulla query in base al valore del controllo
della maschera, allora puoi inserire sulla riga criteri la seguente
espressione:
=Forms!<NomeForm>!cboProvincie.Value
Assumendo che hai una casella di riepilogo chiamata appunto cboProvincie.
Attenzione ai valori nulli da controllare sull'evento che hai specificato,
qualcosa come:
If IsNull(cboProvincie.Value) Then
    MsgBox "Selezionare la provincia"
Else
    ...
    <apri il report>
End If
HTH
LaLo


GRAZIE MILLE LaLo, finalmente con quest'ultima tua spiegazione ho risolto
mio problema.
spero di contare ancora sul tuo aiuto in un futuro che credo sia molto
vicino !!! :-))))
ciao e grazie ancora !
            gian luca

rieccomi qua !
guarda questo codice per stampare il report:
Private Sub Stampa_motori_Click()
On Error GoTo Err_Stampa_motori_Click
    Dim stDocName As String
    stDocName = "R_motori"
    DoCmd.OpenReport stDocName, acNormal
Exit_Stampa_motori_Click:
    Exit Sub
Err_Stampa_motori_Click:
    MsgBox Err.Description
    Resume Exit_Stampa_motori_Click
End Sub
ora supponi che il report sia composto da piu pagine !!!
E' possibile modificare il precedente codice in modo tale che vengano
stampate solamente le prime n pagine ????????????

 ha scritto nel messaggio
news:ySh17.13010$D03.4...@news.infostrada.it...

Utilizza il metodo PrintOut dell'oggetto DoCmd.
Bye
LaLo