Newsgroup: it.comp.appl.access
Titolo: Trasportare più record di una tabella su un unico record con più campi di su un'altra tabella

Salve ragazzi ho questo problema, nella mia ignoranza avevo impostato una
funzione (sicuramente inutilmente complessa) con la quale da una tabella con
più record il tutto veniva spostato si un'altra tabella, però su un unico
record, un esempio sarà più chiarificante
TAB1
                        Errore
record1                1
record2                3
record3                8
record4                2
record5                2
con la funzione avrei questo risultato
TAB2
            RECORD1    RECORD2    RECORD3    RECORD4    RECORD5
                    1                    3                    8
2                    2
Function RegistraQuesiti() As Long
Dim rs As Recordset
On Error GoTo RegistraQuesiti_Click
  ' Apre la tabella Archivio
  Set rs = CurrentDb.OpenRecordset("Tbl_Archivio")
  With rs
    ' Aggiunge un nuovo record alla tabella
    .AddNew
    ![idArchivio] = idErrore
    ![Data] = Date
    ![Sesso] = Me.FldErrore
     .Update
    DoCmd.GoToRecord , , acNext
    .Edit
    ![valore1] = Me.FldErrore
    .Update
    DoCmd.GoToRecord , , acNext
    .Edit
    ![valore2] = Me.FldErrore
     .Update
     DoCmd.GoToRecord , , acNext
    .Edit
    ![valore3] = Me.FldErrore
     .Update
     DoCmd.GoToRecord , , acNext
 .Bookmark = .LastModified
    RegistraQuesiti = ![idArchivio]
out:
End With
la cosa funzionava, l'unico intoppo che ho trovato sta nel fatto che mi
duplica il primo valore.
quindi mi ritrovo
TAB2
            RECORD1    RECORD2    RECORD3    RECORD4    RECORD5
                    1            -->  1 <--               3
8                    2
Mi dite dove sbaglio
grazie
a presto
CLaudio

 ha scritto nel messaggio
news:rOIke.1433642$35.53...@news4.tin.it...

Se TAB2 ha la seguente struttura:
idArchivio
Data
Sesso
valore1
valore2
valore3
valore4
valore5
Se TAB1 è l'origine record della maschera, non mi è molto chiaro quale sia
la struttura di TAB1, comunque prova così:
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim Conta As Integer
Set rs1 = CurrentDB().OpenRecordset("TAB1")
Set rs2 = CurrentDB().OpenRecordset("TAB2")
rs1.Bookmark = Me.Bookmark
rs2.AddNew
rs2!idArchivio = idErrore
rs2!data = Date()
rs2!Sesso = Me.FldErrore
For Conta = 1 to 5
    rs2("valore" & Trim(Conta)) = rs1!FldErrore
    rs1.MoveNext
Next Conta
rs2.Update
Set rs1 = Nothing
Set rs2 = Nothing
Se non va bene dovresti dirci cosa sono idErrore e FldErrore e cosa vuoi
inserire nei campi valore1, valore2, valore3, valore4 e valore5; insomma
dettagliaci la struttura delle due tabelle e come vuoi trasferire i dati dei
singoli record.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

 singoli record.
Forse la descrizione non è chiara allo stato la situazione è questa
la TAB1 è così composta
IDERRORE
FLDErrore
la TAB2 è invece così composta
IDARCHIVIO
DATA
VALORE1
VALORE2
VALORE3
VALORE4
VALORE5
partendo dal presupposto che i record della TAB1 sono 5, questi 5 record li
vorrei trasportare su un unico record della TAB2, quindi il primo record di
FLDErrorre andra nel campo VALORE1 il secondo record di FLDErrore andrà nel
campo VALORE2.............il 5° record di DLDErrore andrà nel campo VALORE5
quindi da una situazione di TAB1 così creata
IDERRORE    FLDErrore
1                            6
2                            7
3                            2
4                            1
5                            4
dovrebbe dare vita ad un record di TAB2 così:
IDARCHIVIO                                              DATA         VALORE1
VALORE2          VALORE3    VALORE4    VALORE5
1(mi serve solo il primo di IDERRORE) (la data di oggi)            6
7                        2                    1                    4
una volta dato vita a quel record di TAB2, TAB1 verrà svuotata
spero di essere stato chiaro
a presto
CLaudio


 >     rs2("VALORE" & Trim(Conta)) = rs1!FldErrore

Allora io farei così:
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim Conta As Integer
Set rs1 = CurrentDB().OpenRecordset("TAB1")
Set rs2 = CurrentDB().OpenRecordset("TAB2")
rs1.MoveFirst
rs2.AddNew
rs2!IDARCHIVIO = rs1!IDERRORE
rs2!DATA = Date()
For Conta = 1 to 5
     rs2("valore" & Trim(Conta)) = rs1!FLDErrore
     rs1.MoveNext
Next Conta
rs2.Update
Set rs1 = Nothing
Set rs2 = Nothing
-- 
