Newsgroup: it.comp.appl.access
Titolo: Casella di riepilogo e sottomaschera

Buongiorno al NG.
Ho una maschera con una casella di riepilogo che prende i valori da una 
tabella esterna. Vorrei che al doppio click del valore selezionato, si 
aggiungesse un nuovo record nella relativa sottomaschera  copiando i valori 
della casella stessa, naturalmente mantenendo i collegamenti campi master e 
secondari.
Grazie a chi vorrą aiutarmi.
Marco 

Marco ha scritto:

Sull'evento doppio click della listbox fai eseguire una query di
accodamento
  currentdb.execute "INSERT INTO Tabella (campi) VALUES (valori);"
Vedi l'help <F1> per la sintassi di INSERT INTO, o crea la query con il
generatore e copiala nel codice facendo le opportune modifiche.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie Marco, ho provato la tua soluzione
Private Sub ValoreListBox_DblClick(Cancel As Integer)
CurrentDb.Execute "INSERT INTO Tabella2 Campo1 , Campo2,Campo3"
Values [Tabella1].[Campo1], [Tabella1].[Campo2], [Tabella1].[Campo3];"
FROM Tabella1
WHERE (((Tabella1.Campo1) = [Forms]![MascheraPrincipale]![ValoreListBox]))
AND ((Tabella1.Campo3)="1")) OR (((Tabella1.Campo3)="2"))
End Sub
ma mi da errore su Values, dove sbaglio ?
Ciao,
Marco, scusa la ripetizione ma il nome è lostesso !

 Marco, scusa la ripetizione ma il nome è lostesso !
- La stringa di testo che contiente l'istruzione SQL è mal composta; l'hai 
interrotta in più parti e hai inserito il punto e virgola che equivale a 
terminare/separate le istruzioni SQL.
- Se sei nella stessa maschere che esegue la Execute non serve innestare il 
riferimento alla maschera nella istruzione SQL (...Tabella1.Campo1) = 
[Forms]![MascheraPrincipale]![ValoreListBox]...).
 CurrentDb.Execute "INSERT INTO Tabella2 Campo1, Campo2,Campo3 " & _
"Values [Tabella1].[Campo1], [Tabella1].[Campo2], [Tabella1].[Campo3] " & _
"FROM Tabella1 " & _
"WHERE Tabella1.Campo1 = " & Me![ValoreListBox] & _
" AND (Tabella1.Campo3=1 OR Tabella1.Campo3=2)"
- I valori in: Tabella1.Campo1 e Tabella1.Campo3 se sono numerici non devono 
essere racchiusi da doppio o singolo apice...
Ciao.
Nota: & _ indica ad access che la riga di codice prosegue sulla riga 
successiva.
-- 
Sergio MAZZA 

 Sergio MAZZA
Grazie Sergio, non sono molto esperto a questo livello.
Ho provato inserendo alla lettera la tua soluzione, ma mi da "Errore di 
sintassi nell'istruzione INSERT INTO".
Riassumo brevemente il problema: ho una maschera principale con una ListBox 
nella quale selezione via via i records (estratti da un'altratabella) che 
voglio inserire nella relativa sottomaschera dove poi aggiungo altri dati su 
ciascun record.
Ciao
Marco 

> l'hai interrotta in piů parti e hai inserito il punto e virgola che

se sono dei campi di tabella che vuoi aggiungere alla tabella2 allora dei 
usare "select" e non "Values" in questo modo:
CurrentDb.Execute "INSERT INTO Tabella2 Campo1, Campo2,Campo3 " & _
 "select [Tabella1].[Campo1], [Tabella1].[Campo2],
 [Tabella1].[Campo3] " & _
 "FROM Tabella1 " & _
"WHERE Tabella1.Campo1 = " & Me![ValoreListBox] & _
" AND (Tabella1.Campo3=1 OR Tabella1.Campo3=2)"
Se invece si tratta di valori non serve il From tabella in quanto aggiungi 
solo dei valori che indichi o prelevi dalla listbox.
-- 
Ciao
Geppo 

 > interrotta in piů parti e hai inserito il punto e virgola che equivale a 

Sia l'elenco dei campi che l'elenco dei valori dopo VALUES vanno racchiusi
tra parentesi tonde. Vedi l'help <F1> per la sintassi ed un esempio di
INSERT INTO.


> > interrotta in più parti e hai inserito il punto e virgola che equivale 

Grazie a tutti voi, ora funziona.
Marco