Newsgroup: it.comp.appl.access
Titolo: creazione di tabella

Buongiorno,
 
nel campo di un record ho la seguente informazione "lunedi; martedi..." 
ovvero i giorni della settimana separati da un punto e virgola, da 
questo dato vorrei creare tanti record quanti sono i giorni indicati. 
esempio
 
tabella sorgente
dato1	marted'; mercoledi
dato2	lunedì;giovedi; venerdì
 
tabella di destinazione
dato1 	martedì
dato1	mercoledì
dato2	lunedì
dato2	giovedi
dato2	venerdi
 
come posso fare per dire ad access di fare questo lavoro?
 
Grazie
Akery
 
-- 
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 
 
 
 
Dim sorgente As New ADODB.Recordset
Dim destinazione As New ADODB.Recordset
Dim giorni() As String
sorgente.Open "tabellasorgente", CurrentProject.Connection, 
adOpenKeyset, adLockOptimistic
destinazione.Open "tabelladestinazione", CurrentProject.Connection, 
adOpenKeyset, adLockOptimistic
 
While Not sorgente.EOF
     giorni = Split(sorgente.Fields("giorni"), ";")
     For i = 0 To UBound(giorni)
         destinazione.AddNew
         destinazione.Fields("campo1") = LTrim(sorgente.Fields("campo1"))
         destinazione.Fields("giorni") = LTrim(giorni(i))
         destinazione.Update
     Next i
     sorgente.MoveNext
Wend
 
 
risultato :
https://ibb.co/vh0ff5m
 
 
ciao
 
BFS
 
 
 

Grazie per l'algoritmo ma adobd a me non ha funzionato ed ho ripiegato 
su ado
 
Problema RISOLTO
 
Akery
 
Sub espandi()
 
 
 
 
'Dim sorgente As New ADODB.Recordset
'Dim destinazione As New ADODB.Recordset
Dim giorni() As String
'sorgente.Open "sheet1", CurrentProject.Connection, adOpenKeyset, 
adLockOptimistic
'destinazione.Open "richieste", CurrentProject.Connection, adOpenKeyset, 
adLockOptimistic
 
Dim DBCorrente As DAO.Database
Dim sorgente As DAO.Recordset
Dim destinzione As DAO.Recordset
 
Set DBCorrente = CurrentDb
'Apertura Tabella
Set sorgente = DBCorrente.OpenRecordset("sheet1", dbOpenDynaset)
Set destinazione = DBCorrente.OpenRecordset("richieste", dbOpenDynaset)
 
CurrentDb.Execute "DELETE * FROM [richieste]"
 
While Not sorgente.EOF
     giorni = Split(sorgente.Fields("indicare i giorni per cui si 
richiede la presenza"), ";")
     For i = 0 To UBound(giorni) - 1
         destinazione.AddNew
         destinazione.Fields("Nome e Cognome della persona da 
autorizzare") = LTrim(sorgente.Fields("Nome e Cognome della persona da 
autorizzare"))
         destinazione.Fields("@mail di contatto (da preferire email 
costituzionale) della pers") = LTrim(sorgente.Fields("@mail di contatto 
(da preferire email costituzionale) della pers"))
         destinazione.Fields("Ruolo (Docente/Ricercatore; 
Assegnista/Borsista/Dottorando/Laure") = LTrim(sorgente.Fields("Ruolo 
(Docente/Ricercatore; Assegnista/Borsista/Dottorando/Laure"))
         destinazione.Fields("Solo per A/B/D/L caricare copia del nulla 
osta rilasciato dal RA") = LTrim(sorgente.Fields("Solo per A/B/D/L 
caricare copia del nulla osta rilasciato dal RA"))
         destinazione.Fields("Indicare il nome di un collaboratore 
presente nella settimana in") = LTrim(sorgente.Fields("Indicare il nome 
di un collaboratore presente nella settimana in"))
         destinazione.Fields("indicare i giorni per cui si richiede la 
presenza") = LTrim(giorni(i))
         destinazione.Fields("Piano in cui si desidera l'accesso") = 
LTrim(sorgente.Fields("Piano in cui si desidera l'accesso"))
         destinazione.Fields("Locale in cui si desidera l'accesso") = 
LTrim(sorgente.Fields("Locale in cui si desidera l'accesso"))
         destinazione.Fields("sigla o nome del locale") = 
LTrim(sorgente.Fields("sigla o nome del locale"))
         destinazione.Fields("Motivo dell'accesso") = 
LTrim(sorgente.Fields("Motivo dell'accesso"))
         destinazione.Fields("Nome e Cognome della persona da 
autorizzare") = LTrim(sorgente.Fields("Nome e Cognome della persona da 
autorizzare"))
         destinazione.Fields("Ho letto e mi impegno a rispettare le 
misure per la tutela della") = LTrim(sorgente.Fields("Ho letto e mi 
impegno a rispettare le misure per la tutela della"))
 
 
 
         destinazione.Update
     Next i
     sorgente.MoveNext
Wend
 
End Sub



 Akery
 
========================
Private Sub Command9_Click()
Dim RS(1 To 2) As Recordset, DayArray
Set RS(1) = CurrentDb.OpenRecordset("Table-Source", dbOpenDynaset)
Set RS(2) = CurrentDb.OpenRecordset("Table-Destination", dbOpenDynaset)
Do Until RS(1).EOF
    DayArray = Split(RS(1)![Giorni], ";")
    For i = 0 To UBound(DayArray)
        RS(2).AddNew
            RS(2)![Codice] = RS(1)![Codice]
            RS(2)![Giorno] = Trim(DayArray(i))
        RS(2).Update
    Next
    RS(1).MoveNext
Loop
End Sub
=============================
 
Table-Source ha i campi: Codice, Giorni
Table-Destination ha i campi: Codice, Giorno
 
Bruno

 Table-Destination ha i campi: Codice, Giorno
 
Grazie!
