Newsgroup: it.comp.appl.access
Titolo: Macro e Visual Basic in Access

salve a tutti,
sto progettando un piccolo Data Base, ma sto incontrando delle difficoltà
con le macro...
veniamo al dunque: dovrei inserire in una maschera un pulsante che richiama
la relativa sottomaschera (legata da una relazione uno a molti)....
utilizzando la generazione guidata di maschere e relative sottomaschere, il
pulsante apre la sottomaschera, ma non va a riportare il valore corretto
sulla chiave esterna (in questo caso dovrei riportare "a mano " il valore
della chiave esterna, con i possibili errori....)
come posso fare?????
premetto che di macro e Visual Basic non ci capisco un gran che.....
ciao e grazi di qualsiaso consigli....
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio 
news:62Z94Z99Z8Y11...@usenet.libero.it...

Ciao Ivan,
hai messo in relazione i due campi contenenti la chiave?
Se hai fatto questo, la relazione riempie la chiave della sottomaschera (del 
campo in join) automaticamente.
Se non l'hai fatto: menu Strumenti-->>Relazioni
carichi le tabelle coinvolte e da un campo di una trascini sul campo legato 
nell'altra e poi segui le istruzioni. Puoi attivare (o no)  il controllo di 
integrità referenziale ai livelli che preferisci-
-- 
... spero di esserti stato d'aiuto,
-- 
-- 
      /)/)               IVAN                (\/)
     (  '.')         NMCBRMC         ( '.' )
  o(_('')('')                               (")(")_)*
Non Microsoft Certified But Regular
             Microsoft Consumer
PS facci sapere.... 

 ciao e grazi di qualsiaso consigli....
Comunque, se vuoi aprire una maschera selezionando i suoi dati in base ad un valore presente su un'altra maschera devi indi
Ciao.
-- 
Sergio MAZZA 

 ha
scritto:

la relazione è impostata in modo corretto : nella maschera vi è la "chiave
assoluta", mentra nella sottomaschera vi è la "chiave esterna" (questo per
impostare una relazione uno a molti...)
cerco di spiegare meglio il mio problema:
se apro la tabella in visulizzazione "foglio dati" il tutto funziona (quindi
le relazionii sono impostate in modo corretto!!!); se imposto una maschera
con sottomaschera, il tutto funziona....
il mio problema riguarda l'introduzione di un pulsante per aprire la
sottomaschera.... cioè, il pulsante apre la sottomaschera e permette di
visualizzare i record già associati, ma se introduco un nuovo recors, la
chiave esterna "si resetta" e quindi dovrei inserirla io manualmente.....
io credo ci sia un problema con il codice Visual Basic generato con la
macro....
riporto di seguito il codice che mi è atato generato in automatico...
Sub InterruttoreCollegamento_Click()
On Error GoTo InterruttoreCollegamento_Click_Err
    If ChildFormIsOpen() Then
        CloseChildForm
    Else
        OpenChildForm
        FilterChildForm
    End If
InterruttoreCollegamento_Click_Exit:
    Exit Sub
InterruttoreCollegamento_Click_Err:
    MsgBox Error$
    Resume InterruttoreCollegamento_Click_Exit
End Sub
Private Sub FilterChildForm()
    If Me.NewRecord Then
        Forms![Cognome].DataEntry = True
    Else
        Forms![Cognome].Filter = "[Id Nome] = " & Me.[ID nome]
        Forms![Cognome].FilterOn = True
    End If
End Sub
Private Sub OpenChildForm()
    DoCmd.OpenForm "Cognome"
    If Not Me.[InterruttoreCollegamento] Then Me![InterruttoreCollegamento] =
True
End Sub
Private Sub CloseChildForm()
    DoCmd.Close acForm, "Cognome"
    If Me![InterruttoreCollegamento] Then Me![InterruttoreCollegamento] = False
End Sub
Private Function ChildFormIsOpen()
    ChildFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "Cognome") And
acObjStateOpen) <> False
End Function
in poche parole alla maschera Nome corrispondono molte maschere Cognome (lo
so che dovrebbe essere il contrario, ma l'esempio in mio possesso è
inpostato così ;-))
grazie a tutti ancora :-)
Ivan



ho effettuato alcune verifiche...








InterruttoreCollegamento_Click_Exit:
    Exit Sub









End Function


Ivan
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio news:62Z94Z98Z108Y1...@usenet.libero.it...

Ivan hai letto il mio messaggio?
Invece di applicare il filtro dopo l'apertura, aprila filtrandola direttamente:
Es.
DoCmd.Close acForm, "Cognome",,,"[Id Nome] = " & Me.[ID nome]
tanto, da quanto capisco, la apri e la chiudi continuamente...
Ciao.
-- 
Sergio MAZZA 


si, ho letto, ma purtroppo come avrai intuito, visual basic non è il mio
forte :-(
in pratica rispetto al codice che ho scritto, cosa dovrei fare??????
grazie ancora ;-)


 Ivan
Modificare le istruzioni OpenForm "nomemaschera" in modo tale da passargli l'id come condizioneWhere.
Ari-Es.
DoCmd.OpenForm "Cognome",,,"[Id Nome] = " & Me.[ID nome]
Se premi F1 su OpenForm ti si apre l'help in linea e trovi tutte le informazioni...
Ciao.
-- 
Sergio MAZZA 


grazie 1000!!!!!!
ho risolto il problema..... mi dimenticavo di introdurre il codice Visual
Basic anche nella sottomaschera........
grazie ancora
