query dy accodamento dati - riportare a capo correttamente il codice

Anonimo
2014-12-19T13:06:08+00:00

Buongiorno carissimi amici, dovrei mettere insieme i due codici che vi posto al fine di posizionare nella tabella chiamata TblAllegati i dati che prelevo da un'altra tabella chiamata TBLAccettazione.

Parte del codice mi è stato gentilemte creato dall'amico Mimmo (che ringrazio infinitamente) e poichè ho la necessità di inserire, nello stesso modo in cui mi permette di inserirli il codice di Mimmo, altri dati con la query che ho creato e che commento sotto.

I problemi che si evidenziano (con la query che ho creato io)  sono questi:

Il codice si colora di rosso poichè non lo so dividere correttamente su più righe e non riesco ad integrarlo con quello dell'amico Mimmo;

Mi compare l'errore che mi avverte che la chiave primaria non può  contenere un valore nullo ecc.

Mi aiutate a mettere insieme questi due codici per fare quello che è la mia intenzione, per favore?

Vi ringrazio come sempre per la vostra professionalità e competenza.

P.S. per favore spiegatemi come si fa a spezzettare il codice per portarlo a capo senza nessun problema, in modo che per il futuro sappia come comportarmi in occasione di simili esigenze.

DoCmd.RunSQL ("INSERT INTO TblAllegati ( IdAllegato, Allegato ) SELECT " & idAllegato & ", '" & Allegato & "'")' questo è il codice dell'amico Mimmo che funziona benissimo

' questo è quello che ho creato con la query di accodamento 

DoCmd.RunSQL ("INSERT INTO TblAllegati ( Matricola, Matricola, RepartoMittente, ProtocolloArrivo, Barra, Tipologia, Istituto ) & _

 "SELECT TblAccettazione.Matricola, TblAccettazione.[Cognome e Nome], TblAccettazione.Reparto, TblAccettazione.[Protocollo Nr], TblAccettazione.Barra, TblAccettazione.Tipologia, TblAccettazione.Istituto & _

  ("FROM TblAccettazione, TblAllegati");"

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

10 risposte

Ordina per: Più utili
  1. Anonimo
    2014-12-23T12:24:36+00:00

    Ciao Nicola,

    tu hai postato la query di inserimento:

     DoCmd.RunSQL "INSERT INTO TblAllegati ( Matricola, RepartoMittente" & _

                  " ProtocolloArrivo, Barra, Tipologia, Istituto )" & _

                  " SELECT TblAccettazione.Matricola," & _

                  " TblAccettazione.[Cognome e Nome], TblAccettazione.Reparto, " & _

                  " TblAccettazione.[Protocollo Nr], TblAccettazione.Barra, " & _

                  " TblAccettazione.Tipologia, TblAccettazione.Istituto " & _

                  " FROM TblAccettazione, TblAllegati)"

    che non è una query di accodamento.

    Quali erano le tue intenzioni?

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-12-21T17:07:59+00:00

    Buonasera amici con tante prove ho notato che con la query di accodamento mi ricopia sempre gli stessi dati, io invece vorrei salvare nella tabella TblAllegati i campi che hanno lo stesso formato ( nella TblAccettazione) e che si chiamano: 

    Matricola,[Cognome e Nome],Reparto,[Protocollo Nr],Istituto.

    Questi campi dovrebbero essere inseriti nella TblAllegati contemporaneamente ai campi IdAllegato e Allegato creati con il codice dell'amico Mimmo57( DoCmd.RunSQL ("INSERT INTO TblAllegati ( IdAllegato, Allegato ) SELECT " & idAllegato & ", '" & Allegato & "'") ' creato da MIMMO54) e che funziona benissimo.

    Penso che dovrebbe essere implementato il codice di Mimmo57 inserendo nello stesso modo i seguenti campi: Matricola,

    Matricola,[Cognome e Nome],Reparto,[Protocollo Nr],Istituto.

    Vi prego di aiutarmi poiché ho la necessità di risovere qualche altra funzione prima di ultimare definitivamente il mio DB da mettere in rete e che mi facilita il mio lavoro quotidiano.

    Infinite grazie a chi volesse aiutarmi.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-12-19T21:09:43+00:00

    Sandro, giusto per essere preciso, ho eliminato il campo Matricola dal tuo codice ( l'errore è stato mio nel post precedente) perché duplicato, in realtà ho creato solo un campo Matricola nella tabella chiamata  TblAllegati.

    Grazie ancora.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-12-19T20:51:28+00:00

    Ciao Sandro sono contento di sentirti pronto ad aiutarmi, innanzitutto ti ringrazio  per tutto quello che hai fatto finora per me, comunque ti posto tutto il codice che ho inserito nel relativo pulsante di comando.

    Quello che ti chiedo è di integrare il codice da te postato nelle righe di codice che ti evidenzio con la scritta creato da Mimmo54 poiché quelle righe di codice funzionano benissimo, ma quello che mi hai postato mi da errore, si colora tutto di giallo e mi compare questo: Errore di run-time "3134"

    Errore di sintassi nell'istruzione INSERT INTO.

    Private Sub Comando237_Click()

     Dim OutApp As Object

     Dim OutMail As Object

     Dim destinatario As String

     Dim idAllegato As Long

     Dim Allegato As String

     Set OutApp = CreateObject("Outlook.Application")

     Set OutMail = OutApp.CreateItem(0)

     If MsgBox("Vuoi inviare la E-Mail al militare selezionato", vbInformation + vbYesNo + vbDefaultButton2) = vbNo Then

     Else

     idAllegato = Nz(DMax("IdAllegato", "tblAllegati"), 0) + 1

     Allegato = Main 'ffFileDialog

     DoCmd.RunSQL ("INSERT INTO TblAllegati ( IdAllegato, Allegato ) SELECT " & idAllegato & ", '" & Allegato & "'") ' creato da MIMMO54

     DoCmd.RunSQL "INSERT INTO TblAllegati ( Matricola, RepartoMittente" & _

                  " ProtocolloArrivo, Barra, Tipologia, Istituto )" & _

                  " SELECT TblAccettazione.Matricola," & _

                  " TblAccettazione.[Cognome e Nome], TblAccettazione.Reparto, " & _

                  " TblAccettazione.[Protocollo Nr], TblAccettazione.Barra, " & _

                  " TblAccettazione.Tipologia, TblAccettazione.Istituto " & _

                  " FROM TblAccettazione, TblAllegati)"

       With OutMail

      .To = "******@libero.it" 'Forms!FrmAccettazione![email] 'inserire la mail del destinatario in TO

      .CC = Forms!FrmAccettazione![email] 'inserire la mail del destinatario in CC

      .BCC = Forms!FrmAccettazione![email] 'inserire la mail del destinatario in BCC

      .Subject = idAllegato & " - " & "Comunicazione di rito ecc..."

      .Body = "Gentile collega" & Chr(10) & _

      Chr(10) & "questa è una prova di invio" & _

      Chr(10) & _

      Chr(10) & "Nichicanta"

      .Attachments.Add Allegato

      '.Send 'per inviare subito la mail

      .Display 'per aprire e controllare la mail prima di inviarla manualmente

      End With

     Set OutMail = Nothing

     Set OutApp = Nothing

     End If

    End Sub

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2014-12-19T15:59:43+00:00

    ciao Nicola,

    passo di qua di corsa....

    prova un po' così' :

    DoCmd.RunSQL "INSERT INTO TblAllegati ( Matricola, Matricola, RepartoMittente" & _

                 " ProtocolloArrivo, Barra, Tipologia, Istituto )" & _

                 " SELECT TblAccettazione.Matricola," & _

                 " TblAccettazione.[Cognome e Nome], TblAccettazione.Reparto, " & _

                 " TblAccettazione.[Protocollo Nr], TblAccettazione.Barra, " & _

                 " TblAccettazione.Tipologia, TblAccettazione.Istituto " & _

                 " FROM TblAccettazione, TblAllegati)"

    non ho controllato lo statement SQL l'ho solo sistemato in modo che sia corretto nel VBE.

    per andare a capo .. & spazio underscore. copia/incolla quanto sopra e vedi meglio come procedere.

    Ciao!!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento