Discussione:
proprietà recordsource di una sottomaschera
(troppo vecchio per rispondere)
mikehammer
2004-10-13 19:32:15 UTC
Permalink
Buona sera a tutti

Ho un problema con l'assegnazione del recordsource in una sottomaschera.
La maschera principale (Attività) e la secondaria (Attività_sm) non
sono collegate ne con i campi secondari ne master.
La maschera principale ha come origine record la tabella Attività.
La maschera secondaria ha come origine record una query (qry_Attività).

Nella maschera principale ho assegnato ad un bottone il seguente codice:

Private Sub Comando154_Click()
Dim miaStringa
If MsgBox("si=VZ, no=MG ", vbYesNo) = vbYes Then
miaStringa = "VZ"
Else
miaStringa = "MG"
End If
Forms!Attività![Attività_sm].Form.RecordSource = "SELECT * FROM
qry_Attività WHERE (([qry_Attività].[Sigla]) = '" & miaStringa & "')"
End Sub

La sottomaschera che prima visualizzava tutti i record, ora eseguendo
questo codice non mi mostra più alcun record.
Se cambio il codice in:
Forms!Attività![Attività_sm].Form.RecordSource = "qry_Attività"
per cercare di impostare l'origine record iniziale, mi compare ancora
la sottomascera vuota.

Se lo stesso codice lo faccio eseguire aprendo da sola la sottomaschera
assegnandolo ad un bottone indicando per il record source con il Me
funziona correttamente:
Me.RecordSource = "SELECT * FROM qry_Attività WHERE (([qry_Attività].
[Sigla]) = '" & miaStringa & "')"

Dov'è che sbaglio?
Grazie

Michele

Inviato da www.mynewsgate.net
Cinzia
2004-10-13 20:54:45 UTC
Permalink
Post by mikehammer
Buona sera a tutti
Ho un problema con l'assegnazione del recordsource in una sottomaschera.
La maschera principale (Attività) e la secondaria (Attività_sm) non
sono collegate ne con i campi secondari ne master.
La maschera principale ha come origine record la tabella Attività.
La maschera secondaria ha come origine record una query (qry_Attività).
Private Sub Comando154_Click()
Dim miaStringa
If MsgBox("si=VZ, no=MG ", vbYesNo) = vbYes Then
miaStringa = "VZ"
Else
miaStringa = "MG"
End If
Forms!Attività![Attività_sm].Form.RecordSource = "SELECT * FROM
qry_Attività WHERE (([qry_Attività].[Sigla]) = '" & miaStringa & "')"
Prova così:
Me.[Attività_sm].Form.RecordSource = "SELECT * FROM qry_Attività WHERE
(([qry_Attività].[Sigla]) = '" & miaStringa & "')"
Me.[Attività_sm].Form.Requery
Post by mikehammer
End Sub
La sottomaschera che prima visualizzava tutti i record, ora eseguendo
questo codice non mi mostra più alcun record.
Forms!Attività![Attività_sm].Form.RecordSource = "qry_Attività"
per cercare di impostare l'origine record iniziale, mi compare ancora
la sottomascera vuota.
Se lo stesso codice lo faccio eseguire aprendo da sola la sottomaschera
assegnandolo ad un bottone indicando per il record source con il Me
Me.RecordSource = "SELECT * FROM qry_Attività WHERE (([qry_Attività].
[Sigla]) = '" & miaStringa & "')"
Dov'è che sbaglio?
Grazie
Michele
Ciao
Cinzia
mikehammer
2004-10-14 09:52:24 UTC
Permalink
Post by Cinzia
Post by mikehammer
Buona sera a tutti
Ho un problema con l'assegnazione del recordsource in una
sottomaschera.
Post by Cinzia
Post by mikehammer
La maschera principale (Attività) e la secondaria (Attività_sm) non
sono collegate ne con i campi secondari ne master.
La maschera principale ha come origine record la tabella Attività.
La maschera secondaria ha come origine record una query
(qry_Attività).
Post by Cinzia
Post by mikehammer
Private Sub Comando154_Click()
Dim miaStringa
If MsgBox("si=VZ, no=MG ", vbYesNo) = vbYes Then
miaStringa = "VZ"
Else
miaStringa = "MG"
End If
Forms!Attività![Attività_sm].Form.RecordSource = "SELECT * FROM
qry_Attività WHERE (([qry_Attività].[Sigla]) = '" & miaStringa & "')"
Me.[Attività_sm].Form.RecordSource = "SELECT * FROM qry_Attività WHERE
(([qry_Attività].[Sigla]) = '" & miaStringa & "')"
Me.[Attività_sm].Form.Requery
Post by mikehammer
End Sub
CUT
Post by Cinzia
Post by mikehammer
Grazie
Michele
Ciao
Cinzia
Grazie Cinzia, ho provato con quanto mi hai suggerito, ma mi compare
ancora la sottomaschera vuota.
Ho notato che quanto pigio sul bottone per cambiare la recordsource, in
basso a sinistra sulla barra di stato, dove compare la dicitura "Pronto",
per qualche attimo compare la digitura "Recordset non aggiornabile".
Inoltre, con le varie opzioni di riferimento alla proprietà recordsource
del controllo sottomaschera
msgbox ((Forms!Attività![Attività_sm].Form.RecordSource))
msgbox ((Me.[Attività_sm].Form.RecordSource))
riesco sempre a leggere la recordsource corrente, riesco a cambiarla, ma
la sottomaschera mi si presenta ancora vuota.

Ho letto e cercato di applicare quanto trovato su Mpvs:
"Cannot ApplyFilter on SubForm"
(http://www.mvps.org/access/forms/frm0023.htm)
"Refer to Form and Subform properties and controls"
(http://www.mvps.org/access/forms/frm0031.htm)
ma non ho risolto il mio problema.

Help

Michele

Inviato da www.mynewsgate.net
Alessandro Baraldi
2004-10-14 12:19:10 UTC
Permalink
"mikehammer" <***@mynewsgate.net> wrote in message news:***@mynewsgate.net

[CUT]
Post by mikehammer
Grazie Cinzia, ho provato con quanto mi hai suggerito, ma mi compare
ancora la sottomaschera vuota.
Ho notato che quanto pigio sul bottone per cambiare la recordsource, in
basso a sinistra sulla barra di stato, dove compare la dicitura "Pronto",
per qualche attimo compare la digitura "Recordset non aggiornabile".
Inoltre, con le varie opzioni di riferimento alla proprietà recordsource
del controllo sottomaschera
msgbox ((Forms!Attività![Attività_sm].Form.RecordSource))
msgbox ((Me.[Attività_sm].Form.RecordSource))
riesco sempre a leggere la recordsource corrente, riesco a cambiarla, ma
la sottomaschera mi si presenta ancora vuota.
Michele
Invece di fare il Requery della SubForm:
Me.[Attività_sm].Form.RecordSource

Prova a fare questo:
Me.[Attività_sm].Form.RecordSource=Me.[Attività_sm].Form.RecordSource

Ciao
@Alex.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mikehammer
2004-10-14 12:51:12 UTC
Permalink
Post by Cinzia
[CUT]
Post by mikehammer
Grazie Cinzia, ho provato con quanto mi hai suggerito, ma mi compare
ancora la sottomaschera vuota.
Ho notato che quanto pigio sul bottone per cambiare la recordsource, in
basso a sinistra sulla barra di stato, dove compare la dicitura "Pronto",
per qualche attimo compare la digitura "Recordset non aggiornabile".
Inoltre, con le varie opzioni di riferimento alla proprietà recordsource
del controllo sottomaschera
msgbox ((Forms!Attività![Attività_sm].Form.RecordSource))
msgbox ((Me.[Attività_sm].Form.RecordSource))
riesco sempre a leggere la recordsource corrente, riesco a cambiarla, ma
la sottomaschera mi si presenta ancora vuota.
Michele
Me.[Attività_sm].Form.RecordSource
Me.[Attività_sm].Form.RecordSource=Me.[Attività_sm].Form.RecordSource
Ciao
@Alex.
Grazie Alex, ma non funzia neanche con questo!
Quello che non riesco a capire è che, avendo la proprietà recordsource della
sottomaschera agganciata alla query "qry_Attività" di default, quando apro la
maschera principale mi vengono visualizzati tutti i record.
Se imposto via vb il recordsource della subform alla stessa query di default,
e cioe' "qry_Attività", non mi visualizza più alcun record.
Inoltre se vado a leggere dalla maschera principale qual'è il recorsource
della subform (con il msgbox), mi mostra la query corretta !!!

Ciao
Michele

Inviato da www.mynewsgate.net
Alessandro Baraldi
2004-10-14 13:07:16 UTC
Permalink
"mikehammer" <***@mynewsgate.net> wrote in message news:***@mynewsgate.net

[CUT]
Post by mikehammer
Grazie Alex, ma non funzia neanche con questo!
Quello che non riesco a capire è che, avendo la proprietà recordsource della
sottomaschera agganciata alla query "qry_Attività" di default, quando apro la
maschera principale mi vengono visualizzati tutti i record.
Se imposto via vb il recordsource della subform alla stessa query di default,
e cioe' "qry_Attività", non mi visualizza più alcun record.
Inoltre se vado a leggere dalla maschera principale qual'è il recorsource
della subform (con il msgbox), mi mostra la query corretta !!!
Ciao
Michele
Il fatto che non venga aggiornata correttamente la proprietà
RecordSource è un Bugs conosciuto, ma con quanto ti ho
suggerito risolve.
Se non viene risolto il problema potrebbe essere una concomitanza
di cause.
Questo però complica la possibilità di aiutarti.....!

Io uso spesso questo metodo e ti assicuro che non ho problemi.

Ciao.
@Alex
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mikehammer
2004-10-14 13:27:25 UTC
Permalink
Post by Alessandro Baraldi
[CUT]
Post by mikehammer
Grazie Alex, ma non funzia neanche con questo!
Quello che non riesco a capire è che, avendo la proprietà recordsource della
sottomaschera agganciata alla query "qry_Attività" di default, quando apro la
maschera principale mi vengono visualizzati tutti i record.
Se imposto via vb il recordsource della subform alla stessa query di default,
e cioe' "qry_Attività", non mi visualizza più alcun record.
Inoltre se vado a leggere dalla maschera principale qual'è il recorsource
della subform (con il msgbox), mi mostra la query corretta !!!
Ciao
Michele
Il fatto che non venga aggiornata correttamente la proprietà
RecordSource è un Bugs conosciuto, ma con quanto ti ho
suggerito risolve.
Se non viene risolto il problema potrebbe essere una concomitanza
di cause.
Questo però complica la possibilità di aiutarti.....!
Io uso spesso questo metodo e ti assicuro che non ho problemi.
Ciao.
@Alex
Ti ringrazio comunque per il tempo prestatomi.

Cercherò di vedere se il problema è dovuto ad altre concomitanze.

Grazie ancora

Michele

Inviato da www.mynewsgate.net
namor
2004-10-14 13:29:39 UTC
Permalink
[CUT]
Post by mikehammer
Post by Cinzia
Post by mikehammer
Grazie Cinzia, ho provato con quanto mi hai suggerito, ma mi compare
ancora la sottomaschera vuota.
Ho notato che quanto pigio sul bottone per cambiare la recordsource, in
basso a sinistra sulla barra di stato, dove compare la dicitura "Pronto",
per qualche attimo compare la digitura "Recordset non aggiornabile".
Inoltre, con le varie opzioni di riferimento alla proprietà recordsource
del controllo sottomaschera
msgbox ((Forms!Attività![Attività_sm].Form.RecordSource))
msgbox ((Me.[Attività_sm].Form.RecordSource))
riesco sempre a leggere la recordsource corrente, riesco a cambiarla, ma
la sottomaschera mi si presenta ancora vuota.
Michele
Me.[Attività_sm].Form.RecordSource
Me.[Attività_sm].Form.RecordSource=Me.[Attività_sm].Form.RecordSource
Ciao
@Alex.
Grazie Alex, ma non funzia neanche con questo!
Quello che non riesco a capire è che, avendo la proprietà recordsource della
sottomaschera agganciata alla query "qry_Attività" di default, quando apro la
maschera principale mi vengono visualizzati tutti i record.
Se imposto via vb il recordsource della subform alla stessa query di default,
e cioe' "qry_Attività", non mi visualizza più alcun record.
Inoltre se vado a leggere dalla maschera principale qual'è il recorsource
della subform (con il msgbox), mi mostra la query corretta !!!
Ciao
Michele
Aggiungi alla maschera una casella non associata nascosta, in cui salvi la
stringa risultante dalla scelta fatta nell'msgbox, e nella query origine
dati della sottomaschera imposti il criterio =Forms("maschera").nomecasella
Così non serve più modificare l'origine record della sottomaschera ma
basta un requery.
Namor
--
namor at inwind punto it

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
mikehammer
2004-10-18 18:53:41 UTC
Permalink
[CUT]
Post by namor
Aggiungi alla maschera una casella non associata nascosta, in cui salvi la
stringa risultante dalla scelta fatta nell'msgbox, e nella query origine
dati della sottomaschera imposti il criterio =Forms("maschera").nomecasella
Così non serve più modificare l'origine record della sottomaschera ma
basta un requery.
Namor
Per Cinzia, Alessandro Baraldi , Namor,
ho trovato dov'era il problema.
Verificando le proprietà della sottomaschera, quando cambiavo la RecordSource
alla subform, ho riscontrato che mi aggiungeva il LinkChildFields e
LinkMasterFields.

Se dopo aver settato il recordsource così:
Forms!Attività![Attività_sm].Form.RecordSource = "SELECT * FROM qry_Attività
WHERE (([qry_Attività].[Sigla]) = '" & miaStringa & "')"

aggiungo le righe:
Me.[Attività_sm].LinkChildFields = ""
Me.[Attività_sm].LinkMasterFields = ""

.. magia ...
la sottomaschera si ripopola con i record desiderati

Ecco quanto utilizzo ora:

Private Sub Comando142_Click()
Dim miaStringa
If MsgBox("si=VZ, no=MG ", vbYesNo) = vbYes Then
miaStringa = "VZ"
Else
miaStringa = "MG"
End If
Forms!Attività![Attività_sm].Form.RecordSource = "SELECT * FROM qry_Attività
WHERE (([qry_Attività].[Sigla]) = '" & miaStringa & "')"
Me.[Attività_sm].LinkChildFields = ""
Me.[Attività_sm].LinkMasterFields = ""
End Sub


Un grazie a tutto il NG

Michele

Inviato da www.mynewsgate.net

Loading...