[Access] inserimento multiplo records

Anonimo
2010-03-22T15:28:10+00:00

Salve. sono al mio primo post, ho usato la funzione "cerca" per evitare di duplicare un 3d, ma non ho trovato nulla.

Premetto che forse mi sto perdendo nel classico "bicchiere d'acqua" ma non trovo soluzione "elegante" al mio problema.

l'obbiettivo è l'inserimento in tabella di un'agenda di un evento ripetuto in tante date.

quindi creo una maschera con controlli "non collegati" che riempirò con nome, cognome, indirizzo e telefono del mio contatto, e una sottomaschera contenente 12 controlli, collegati ad una tabella temporanea composta da un solo record e 12 campi data (appunto).

al clic di un bottone "esegui" vorrei eseguire una query che prenda i contenuti dei miei controlli di maschera e li accodi alla tabella agenda, uno per ogni campo della tabella temporanea....

come "traslare" i 12 campi di riga in 12 record colonna? dove mi perdo?

Grazie<

p.s. al limite mi creo 12 query, una per campo data... ma vorrei capire se è possibile fare diversamente, soprattutto via VBA

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

Risposta accettata dall'autore della domanda

Anonimo
2010-03-26T08:34:01+00:00

Ciao Andrea,

Quale è il quiz ?

Forse l'inserimento multiplo records ?

Il suggerimento l'avevo già dato mostrando la query di accodamento, se vuoi costruirla da VBA puoi mettere questo esempio nell'evento click del tuo pulsante di accodamento:

Dim strSql As String
strSql = "INSERT INTO Tbl\_Agenda (Data,Nome,Cognome,Indirizzo,Telefono) " & \_
         "SELECT Data,Forms!Nome\_Frm!Nome,Forms!Nome\_Frm!Cognome," & \_
         "       Forms!Nome\_Frm!Indirizzo,Forms!Nome\_Frm!Telefono " & \_
         "FROM   Tbl\_Date"
DoCmd.SetWarnings False
DoCmd.RunSQL strSql
DoCmd.SetWarnings True

Adattalo alle tue esigenze.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-03-25T09:14:45+00:00

    Ciao Andrea,

    no, ti suggerisco di creare una sottomaschera continua associata alla tabella temporanea in cui inserirai le 12 date.


    ....

    ....

    ...

    Comunque non è che non cia sia una soluzione, il fatto è che il suggerimento di una soluzione brutta lo tengo come ultima spiaggia.

    La soluzione bruta è quella di creare una query di unione in cui inserirai le 12 select del campo data, Es:


    SELECT Data1 AS Data

    FROM TabTmp

    UNION ALL

    SELECT Data2

    FROM TabTmp

    UNION ALL

    SELECT Data3

    FROM TabTmp

    UNION ALL

    SELECT Data4

    FROM TabTmp

    UNION ALL

    ecc fino a Data12


    poi la salvi e la usi in una query di accodamento per inserire i 12 record


    INSERT INTO Tabella (Campo1,Campo2.....ecc)

    SELECT Forms!NomeForm!CasellaTesto1,

                Forms!NomeForm!CasellaTesto2,

                Data

    FROM    QueryDiUnione


    Ciao

    Giorgio Rancati

    Ciao Giorgio 

     la maschera continua associata alla tabella era una premessa che ho fatto all'inizio del topic. infatti uso questa soluzione.

    una tabella con un record e 12 campi data associata alla sottomaschera.

    tu mi dici di usare una tabella con un solo campo data e 12 record.... è quello che vorrei fare!!!! cioè compilare i miei 12 controlli nella sottomaschera e che questi mi popolino un record  ( quindi il famoso record della tabella con un solo campo data ) ciascuno. Ma come faccio a fargli fare ( passami il termine) il "carriage return"? 

    cioè primo controllo mascheracon un valore? bene, scrivi nella tabella....e a capo... nuovo record.. secondo controllo maschera popolato... bene record e a capo... e cosi via..

    non vorrei fare 12 query singole di accodamento da eseguire in cascata...

    proverò il codice che hai scritto.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-03-23T09:04:46+00:00

    Ciao Andrea,


    tu mi stai suggerendo di non associare i controlli di inserimento data a nessun campo e di popolare di volta in volta la tab temp accodando record, giusto?


    no, ti suggerisco di creare una sottomaschera continua associata alla tabella temporanea in cui inserirai le 12 date.


    E' una soluzione a cui avevo pensato ma comporta la continua "pulizia" della tabella temp ad ogni nuovo inserimento. 


    Anche con la tua soluzione devi pulire la tabella temporanea, pulire 1 record o 12 o 1000 è la stessa cosa.

    Comunque non è che non cia sia una soluzione, il fatto è che il suggerimento di una soluzione brutta lo tengo come ultima spiaggia.

    La soluzione bruta è quella di creare una query di unione in cui inserirai le 12 select del campo data, Es:


    SELECT Data1 AS Data

    FROM TabTmp

    UNION ALL

    SELECT Data2

    FROM TabTmp

    UNION ALL

    SELECT Data3

    FROM TabTmp

    UNION ALL

    SELECT Data4

    FROM TabTmp

    UNION ALL

    ecc fino a Data12


    poi la salvi e la usi in una query di accodamento per inserire i 12 record


    INSERT INTO Tabella (Campo1,Campo2.....ecc)

    SELECT Forms!NomeForm!CasellaTesto1,

                Forms!NomeForm!CasellaTesto2,

                Data

    FROM    QueryDiUnione


    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-03-23T08:49:55+00:00

    Ciao Giorgio

    grazie per la risposta...ma così è troppo facile! hihihiih

    tu mi stai suggerendo di non associare i controlli di inserimento data a nessun campo e di popolare di volta in volta la tab temp accodando record, giusto?

    E' una soluzione a cui avevo pensato ma comporta la continua "pulizia" della tabella temp ad ogni nuovo inserimento. 

    Volevo fare qualche cosa di "pulito" e soprattutto capire se era fattibile...ma non mi sembra una cosa così scontata, visti gli interventi.

    Aloora non sono io che mi sto perdendo...hihihi

    Grazie comunque, s eci fosse una soluzione alternativa, meglio.. altrimenti seguirò il tuo consiglio

    Andrea

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-03-23T08:00:53+00:00

    Ciao Andrea,

    se la tabella temporanea avesse un solo campo data e 12 record, allora basterebbe una sola semplice query di accodamento.

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento