Popolare una tabella Access

Anonimo
2017-09-08T11:10:57+00:00

Ho una tabella Pippo con una campo DTREG. Poniamo che ci siano 2 record: 01/09/2017 e 04/09/2017

Ho bisogno di popolare un'altra tabella di nome Caio, che scriva nel campo GIORNO i giorni dal 01/09/2017 a oggi e successivamente dal 04/09/2017 a oggi. Praticamente 13 records. Come va scritta la routine?

Grazie, Francesco

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

13 risposte

Ordina per: Più utili
  1. Anonimo
    2017-09-11T15:58:27+00:00

    Grazie Sandro per le spiegazioni, ma purtroppo il linguaggio che hai adoperato è troppo tecnico, e io che lavoro in Access da anni ma non ho studiato informatica, non ne ho capito niente... lo so, tu mi citerai "la legge non ammette ignoranza", ma non posso studiare un manuale di 2500 pagine per risolvere un problemino... ciao e grazie ancora!  ; )

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-09-11T12:40:11+00:00

    ciao Francesco,

    meglio non utilizzare un recordset in casi come questi.

    Ti do qualche indicazione circa la logica applicata sui dettagli maggiormente ostici, ma ti raccomando di consultare la guida e di approfondire le soluzioni suggerite in autonomia.

    La soluzione proposta si appoggia su tre metodi membri di dao.workspace, begintrans, committrans, rollback.

    In sostanza tutte gli insert vengono effettuate in un solo batch e solamente qualora non si verifichino errori: nel qual caso nessun aggiornamento al db viene apportato.

    Una delle proprietà delle transazioni è proprio l'atomicità.

    Oltre a questo, essendo tutte le insert eseguite all'unisono, le performance migliorano notevolmente, cosa che con poche righe è non rilevabile, ma nel caso in cui le righe siano molte si.

    CurrentDB è più lento rispetto a Dbengine, ed è opportuno evitarlo soprattutto nei loop. Crei un pointer ad ogni nuovo ad ogni loop.

    Per quanto alle date.

    il campo data e ora è un float a 64 bit ricordi? la sola data è un long. Passando un long ad un campo data Jet/Ace lo converte in una data effettiva, l'alternativa è formattare la data con il formato iso corretto in modo che sia tradotto correttamente nella tabella.

    Detto questo per il resto, prova a seguire passo passo la soluzione proposta e ad analizzare i restanti aspetti.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-09-09T09:51:16+00:00

    Inoltre, visto che dalla tabella LUCCIOLE (scusa il nome scemo) tiro fuori più campi: 

    Set RS1 = CurrentDb.OpenRecordset("SELECT ID, RISORSA, DESCRIZIONE, INVESTIMENTO FROM LUCCIOLE")

    come devo scriverla la riga che inserisce il giorno?

    CurrentDb.Execute "INSERT INTO PROGRESSIVO ( GIORNO ) values (" & CLng(RS1(0) + I) & ")", &H80

    (per farci stare anche i campi ID, RISORSA e DESCRIZIONE)

    La risposta è stata utile?

    0 commenti Nessun commento