Newsgroup: it.comp.appl.access
Titolo: Stampa unione:Per Roberto (da casa o portatile)

Esimio Roberto,
innanzitutto voglio rinnovarti gli auguri per un'ottima ripresa fisica.
Un saluto anche a Sergio Mazza per la sua squisita disponibilità nel
tentativo, credo ancora in atto, di risolvere quanto appresso:
Voglio esporti un problema, secondo me, che aprirà (forse) nuove soluzioni a
fronte della stampa unione da inserire anche nel sito comune di Access.
Ipotizziamo un database di sopralluoghi tecnici.
Si ha una maschera della tabella SOPRALLUOGHI ed una sottomaschera,
correlata, della tabella TECNICI.
Per ogni sopralluogo potrebbero esserci più tecnici (Ing.,Arch.,Geometra,
ecc.).
PROBLEMA: E' possibile fare in modo che un record della tabella SOPRALLUOGHI
venga creato in un'altra tabella con un solo record e nel campo
"TecniciIntervenuti" siano presenti tutti quelli intervenuti???
Esempio: Sopralluogo n. 123 effettuato in data______ in ________ tecnici
intervenuti Ing.Tizio e Arch. Caio.
Questi due tecnici dovranno risultare SOLO su un record di una query di
creazione tabella e nel campo "tecnici" tutti quelli intervenuti.
Se questo fosse possibile,  risulterebbe molto di aiuto, e non di poco, ai
problemi di stampa unione in quanto detta stampa unione mi creerebbe, per
una evenutale relazione tecnica da stilare successivamente, due relazioni:
una per ogni tecnico intervenuto.
Con il problema, che spero risolverai egregiamente, la stampa unione potrà
perfettamente risultare efficiente nel modo richiesto.
Grazie per la tua squisita disponibilità
Marco.

 ha scritto nel messaggio
news:lqqB8.7774$zW3.2...@news1.tin.it...

Prova un po' con questa soluzione. Io l'ho adottata in un programma di
gestione saldature, dove, nel registro saldature, i saldatori andavano
scritti uno dopo l'altro su una sola riga.
Ciao
Salvatore
Dim rst1 As Recordset, rst2 As Recordset, rst3 As Recordset
Dim t As Integer, padre1 As Long, padre2 As Long, step1 As Long, step2 As
Long
Dim figlio As String, figli As String, num As Long
Set rst1 = CurrentDb.OpenRecordset("sopralluoghi")
Set rst2 = CurrentDb.OpenRecordset("tecnici")
Set rst3 = CurrentDb.OpenRecordset("SopralluoghiETecnici")
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * FROM sopralluogiETecnici"
DoCmd.SetWarnings True
rst2.MoveFirst
rst2.MoveLast
num = rst2.RecordCount
rst1.MoveFirst
rst2.MoveFirst
Do Until rst1.EOF
padre1 = rst1!sopralluogo
 For t = 1 To num
    padre2 = rst2!IDsopralluogo
    figlio = rst2!IDtecnico
    If padre1 = padre2 Then
    figli = figli & ", " & figlio
    End If
    rst2.MoveNext
 Next
If figli <> "" Then
rst3.AddNew
rst3!IDsopralluogo = padre1
rst3!sopralluogoETecnico= Right(figli, Len(figli) - 1)
rst3.Update
figli = ""
End If
rst1.MoveNext
rst2.MoveFirst
Loop

 ha scritto nel messaggio
news:lqqB8.7774$zW3.2...@news1.tin.it...

Comunque, scusa se ho risposto io anzichè Roberto :-)
Saluti, Salvatore

 ha scritto nel messaggio
news:ab5cnu$d0s$1...@pegasus.tiscalinet.it...

Ti ringrazio per la tua tempestività ma, siccome non ho ancora provato, il
tuo codice prevede un numero illimitato di tecnici intervenuti al
sopralluogo o hai solo ipotizzato solo n. 2 e che, quindi, per ogni tecnico
interventuo devo "dimensionare" altri "padri e/o figli"?
Grazie.
Marco.

 tentativo, credo ancora in atto, di risolvere quanto appresso:
[CUT]
Beh, se un problema del genere non l'ha risolto  Sergio Mazza è dura.
Comunque mi auguro che Salvatore ti risolva il problema, visto che io di
Word e della sua stampa unione non ne mastico per niente.
Ti ringrazio comunque per la fiducia accordatami.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:5rtB8.8969$CN3.3...@news2.tin.it...

No, puoi inserire quanti tecnici vuoi. L'importante è che siano collegati
dallo stesso ID dell'intervento, ma se le maschere sono collegate bene non
ci sono problemi. Comunque prova e fammi sapere.
Ciao, Salvatore

> DoCmd.RunSQL "Delete * FROM sopralluogiETecnici"
      sopralluogi con sopralluoghi
non capisco se IDtecnico fa riferimento alla tabella tecnici o, magari, è
IDtecnici
stesso discorso per sopralluogo che forse è sopralluoghi.
Facciamo così. Per evitare errate intepretazioni, espongo il database come
segue:
TABELLE
     SOPRALLUOGHI
     TECNICI
     da creare/incollare/modificare successivamente con il tuo codice
     SOPRALLUOGHIeTECNICI.
Definizione campi
Sopralluoghi - id;NumeroSopralluogo;data;luogo
Tecnici         - id;tecnico;idsopralluoghi
SopralluoghiEtecnici - NumeroSopralluogo;data;luogo;tecnici (su questo campo
dovrebbero essere inseriti i tecnici nella stessa riga, per intenderci)
RELAZIONI: id della tabella sopralluoghi UNO A MOLTI con idsopralluoghi
della tabella tecnici.
Confido nella tua squisita disponibilità.
Per comodità ti riporto, qui di seguito, il tuo codice con la gentilezza di
rivederlo e di adattarlo all'esempio suesposto.
Anticipatamente ti ringrazio per la tua attenzione e pazienza.
Marco.
Dim rst1 As Recordset, rst2 As Recordset, rst3 As Recordset
Dim t As Integer, padre1 As Long, padre2 As Long, step1 As Long, step2 As
Long
Dim figlio As String, figli As String, num As Long
Set rst1 = CurrentDb.OpenRecordset("sopralluoghi")
Set rst2 = CurrentDb.OpenRecordset("tecnici")
Set rst3 = CurrentDb.OpenRecordset("SopralluoghiETecnici")
DoCmd.SetWarnings False


 ha scritto nel messaggio
news:Q3CB8.11850$CN3.4...@news2.tin.it...

TRIM
Grazie per l'egregio, troppo buono.
Leggi la posta elettronica :-)
Salvatore