Newsgroup: it.comp.appl.access
Titolo: Maschere collegate e filtri

buongiorno a tutti
premesso che sto imparando ad usare access e che con lo studio del VBA
sono nella fase "mi cerco un buon libro per cominciare" (si accettano
consigli), ecco il problema
ho due tabelle tabSoggetti e tabDatiAB collegate con relazione 1 a molti
e due maschere di cui frmSoggetti è la maschera principale e frmDatiAB è
quella collegata  [attraverso un Pulsante di Comando impostato con la
creazione guidata]
frmDatiAB contiene due tipi di dati A e B nel campo "Tipo" e contiene
due pulsanti filtro per appunto filtrare o A o B - il codice associato
ai pulsanti filtro è
 Me.Filter = "tipo = 'A'"   (B per il secondo pulsante)
 Me.FilterOn = True
Ed ecco il problema:
quando applico il filtro in frmDatiAB il risultato non tiene conto del
fatto che i dati AB sono relativi ad uno specifico soggetto --> ovvero
mi mostra tutti i dati di tipo A o di tipo B presenti nella tabella e
non solo quelli relativi al soggetto selezionato nella frmSoggetti
 
questo non accade se uso frmDatiAB come sottomaschera, in questo caso
quando filtro A vedo i dati di tipo A relativi al soggetto X
solo che per vari motivi è necessario che io usi maschere collegate e
non sottomaschere
Immagino sia un problema "banale" ma sono giorni che cerco una soluzione
tra help di Access2000, e sito comune, senza trovare... e non escludo di
aver trovatato la soluzione senza capire che era quella!
Grazie per la pazienza
Nadia
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:a6e820f22af4be668b0...@mygate.mailgate.org...

Prova a filtrare anche in base a IDSoggetto (chiave primaria di tabSoggetti
e chiave esterna di tabDatiAB); insomma, qualcosa del genere:
Me.Filter = "IDSoggetto=" & Forms!frmSoggetti!IDSoggetto "AND tipo = 'A'"
Me.FilterOn = True
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 non solo quelli relativi al soggetto selezionato nella frmSoggetti
Non so esattamente cosa faccia la creazione guidata (Ok, potrei fare
ALT-TAB e andare a provare adesso, ma sono mooolto pigro), ma ho la
sensazione che non faccia altro che aprire la maschera frmDatiAB e
applichi un filtro per limitare i record a quelli collegati al record
corrente di frmSoggetti (lineare, eh?)
Quando fai Me.Filter="tipo='A'" elimini il filtro preesistente...
quindi, devi aggiustare i tuoi filtri in modo che somiglino a questo:
(ipotizzando che le tue tabelle tabsoggetti e tabDatiAB siano
collegate dal campo [IDSoggetto])
Me.filter = "Tipo='A' AND IDSoggetto=' & forms!frmSoggetti!IDSoggetto
& "'"
Divertiti!
Cia' 
Max De Poli

 Max De Poli
Grazie MAx e grazie Roberto, ho preso i vostri suggerimenti li ho
elaborati
per adattarli alla mia situazione ma non funziona!
A seconda di come scrivo i simboli " & ' (virgolette, e commerciale,
apice)
ottengo risultati diversi ma mai quello corretto ed i risultati sono:
Errore di run-time - tipo non corrispondente
e qui, nella mi ignoranza, ho provato di tutto persino a trasformare 
il mio IDSogg da numero (č un contatore) a stringa, senza risultati
oppure 
nessun codice di errore ma 0 record filtrati 
e a questo punto non so neanche cosa cercare nell'help!
...č da ieri che provo e riprovo senza risultati ed ora che comincio a 
non divertirmi piů!! invoco ancora aiuto
grazie ancora
Nadia
(Ps spero di star inoltrando questo Replay in modo corretto!)


 (Ps spero di star inoltrando questo Replay in modo corretto!)
Hai ragione: scusami ma mi č rimasta nei tasti una &.
Prova cosě, ora dovrebbe funzionare:
Me.Filter = "IDSoggetto=" & Forms!frmSoggetti!IDSoggetto & " AND Tipo = 'A'"


 dimenticato un paio di virgolette)
Capisco di star diventando una specie di tormentone, ma oggi mi 
ci sono rimessa e ... come dire
Errore di Run-time 2001
Operazione precedente annullata
?!?!??!
per questo tipo di errore il bottone che collega all'Help non è
disponibile
e cercando nella Guida non ho trovato spiegazioni in merito!
(ma non c'è qualcosa in rete che descriva questi errori, senza impazzire
ogni volta a stanarli nel help-on-line?!)
Scusate se insisto ma se non riesco a far funzionare questo giochetto
devo
reimpostare metà del lavoro già fatto! 
ancora grazie
Nadia


 Operazione precedente annullata
Qualcosa ti intercetta un evento annullabile, come l'apertura di una 
form o il salvataggio di un record. 
Questo errore lo da' sistematicamente o solo in alcuni casi (Es. 
modifichi un record, premi il pulsante del filtro e parte l'errore)?
Prova a vedere con i punti di interruzione e F8 a che punto si 
inchioda...
-- 
Cia' 


 inchioda...
Allora: il codice è tutto qui 
Private Sub btnA_Click()
    Me.Filter = "Tipo='A' AND IDSogg=" & Forms!frmSoggetti!IDSogg
    Me.FilterOn = True
End Sub
Il meccanismo è: 
1 Apro la maschera Soggetti, 
2 seleziono il soggetto che mi interessa
3 clicco sul pulsante Apri Maschera Tipo
  (il cui codice 
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "frmTipo"
    stLinkCriteria = "[IDSogg]=" & Me![IDSogg]
    DoCmd.OpenForm stDocName, , , stLinkCriteria 
  è stato creato direttamente da Access)
4 nella maschera Tipo clicco sul pulsante a cui ho associato il codice
in esame
5 appare il messaggio di errore
6 la riga di codice incriminata è la prima delle due Me.Filter = ...
7 accade ogni volta che tento di applicare il filtro (che è poi l'unica
operazione che faccio
  visto che ho creato questo db al solo scopo di testare qusto codice)
radioso martedì e ancora grazie




provato con   Me.Filter = "Tipo='A' AND IDSogg=""" &
Forms!frmSoggetti!IDSogg & """"
Saluti.
Emanuele.

 Emanuele.
BINGO!!!
Non ho idea del perchè, ma per il momento mi basta che funzioni.
Grazie a tutti


Nadia
il perchč riguarda l'uso degli apici in presenza di stringhe e non in
presenza di numeri
il tuo contatore IDsogg č di tipo stringa e non numerico
Saluti.
Emanuele.

Non ho idea del perchè, ma per il momento mi basta che funzioni.
Non si fa molta strada con questi ragionamenti...
Antonio