Inserimento dati in sottomaschera con sql

di il
4 risposte

Inserimento dati in sottomaschera con sql

Buonasera a tutti e grazie di avermi accolto in questo forum. Sono un novizio con poca esperienza in VBA e SQL, anche se mi diletto a creare dei piccoli programmi con access.
Da alcune settimane mi sto scervellando su una questione che non riesco a risolvere, nonostante centinaia di video e riviste passate in rassegna. In pratica:
ho creato due tabelle: tabella tblAnagrafica con i campi IDAnagrafica, Nome,Cognome e data di nascita
la seconda tabella tblTurnoTerapia con i campi IDTurnoTerapia, IDAnagrafica e DataArrivo
le tabelle sono correlate uno a molti
ho creato una maschera con origine dati dalla tabella tblAnagrafica ed inserito all'interno una casella non associata di tipo data, ed un pulsante che quando premuto deve inserire la data presente nella casella non associata come nuovo record alla tblDataArrivo con IDAnagrafica presente nella maschera in quel momento.
Non so se sono stato esplicito, proverò ad inserire un paio di immagini ed il codice che avevo provato a costruire senza beneficio.

il codice associato al pulsante "Inserisci data" è il seguente:

Private Sub Comando9_Click()
CurrentDb.Execute "insert into tblTurnoTerapia (DataArrivo) values (Me.Testo7)where IDAnagrafica = IDAnagrafica"
End Sub
Ma non mi inserisce nulla e mi ritorna il seguente messaggio di errore:
Errore di runtime 3067
l'input per la query deve contenere almeno una tabella o una query......
dove sbaglio?
Allegati:
29650_bb8a9e9d8b1067a192e2d43712c45f01.jpg
29650_bb8a9e9d8b1067a192e2d43712c45f01.jpg

29650_d1ab2a59059e93240f9195380f53e92c.jpg
29650_d1ab2a59059e93240f9195380f53e92c.jpg

4 Risposte

  • Re: Inserimento dati in sottomaschera con sql

    Il predicato SQL è sbagliato... perchè non ti abitui a fare DEBUG e verificare il Codice...?
    Perchè non usi la gestione errori nel codice...?
    Addirittura, per processi DDL le transazioni...?
    
    Private Sub Comando9_Click()
       Dim sSQL As String
       sSQL="insert into tblTurnoTerapia (DataArrivo) values (Me.Testo7)where IDAnagrafica = IDAnagrafica"
       Debug.Print sSQL
       'CurrentDb.Execute sSQL
    End Sub
    Se premi il Comando9, e vai in Finestra Immediata con CTRL+G, vedi il predicato SQL che vorresti eseguire con la riga sotto che ho REMMATO...
    Ti renderesti conto che non può funzionare... secondo te in una stringa SQL come può il motore JET risolvere il riferimento a [Me.Testo7]...?
    Devi farlo risolvere in modo esplicito, ed essendo una Data va anche Formattata in modo appropriato...
  • Re: Inserimento dati in sottomaschera con sql

    Io trovo inutile mettere in moto un codice apposta apposta per fare questa operazione. Si inserisce direttamente la data nel campo DataArrivo (sottomaschera), automaticamente si incrementa IDTurnoTerapia, automaticamente appare IDAnagrafica associata alla maschera principale.
  • Re: Inserimento dati in sottomaschera con sql

    Grazie mille dei suggerimenti, in effetti prima avevo optato come da consiglio di Osvaldo, ma volevo fare una cosa un po più elegante, ma mi sono reso conto che non sono all'altezza della mia esperienza. Comunque ho imparato qualcosa di nuovo da tutti e due i consigli. Grazie
  • Re: Inserimento dati in sottomaschera con sql

    diavoletto69 ha scritto:


    Grazie mille dei suggerimenti, in effetti prima avevo optato come da consiglio di Osvaldo, ma volevo fare una cosa un po più elegante, ma mi sono reso conto che non sono all'altezza della mia esperienza. Comunque ho imparato qualcosa di nuovo da tutti e due i consigli. Grazie
    Elegante è quando FUNZIONA bene... in questo caso basta usare la proprietà Valore di Default e valorizzare con [=Date()]
Devi accedere o registrarti per scrivere nel forum
4 risposte