Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Eulero wrote:
...
Esse funzionano bene, però volevo chiedere (accertarmi) se sono
quelle ottimali, oppure se sono migliorabili in termini di brevità ed efficienza?
Lettura
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM TABELLA2 WHERE _
Giorno = #" & Format(Casella_Giorno.Value, "mm/dd/yyyy") & "# ",
dbOpenDynaset)
....
Set rs = Nothing
Il tuo modo è ok. Certo ci sono gusti e varianti. Io di solito lo faccio così:
Dim db As DAO.Databae
Dim rs As DAO.Recordset
Dim strSQL As String
Set db = Currentdb
strSQL = "SELECT * FROM TABELLA2" & _
" WHERE Giorno = " & cdbl(Me!Casella_Giorno
Set rs = db.OpenRecordset(strSQL) , dbOpenDynaset)
....
Set rs = Nothing
Commenti:
La variabile di oggetto per Currentdb faccio almeno se l'uso
più volte nella procedura per non istanziare il db più volte.
La variabile strSQL uso già se l'enunciato SQL non è un semplice
"SELECT * FROM tabella" ma include una clausola WHERE ecc.
Se fai un'interruzione di riga in una stringa SQL devi usare " & _
La tua versione deve dare un errore.
Ci sono diversi varianti per passare una data alla stringa SQL,
vedi anche http://www.donkarl.com/it?FAQ6.8.
Scrivo sempre Me! se si tratta di controlli sulla maschera dove
si trova anche il codice. Così si vede subito di cosa si tratta e
non è da confondere con variabili ecc.
Inserimento
Dim strSQL As String
strSQL = "INSERT INTO TABELLA2 (Giorno, Numero, Euro) VALUES _
('" & Casella_Giorno.Value & "' ,'" & Casella_Numero.Value & "','" &
Casella_Euro.Value & "')"
CurrentDb.Execute strSQL, dbFailOnError
strSQL = "INSERT INTO TABELLA2 (Giorno, Numero, Euro)" & _
" VALUES('" & _
Me!Casella_Giorno & "','" & _
Me!Casella_Numero & "','" & _
Me!Casella_Euro & "')"
Nella tua variante le carattere ' ' invece degli apostrofi ' devono dare errori.
...
Modifica
Dim strSQL As String
strSQL = "UPDATE TABELLA2 SET Numero = Casella_Numero.Value, Euro =
Casella_Euro.Value
WHERE Giorno = '" & Casella_Giorno.Value & "' "
Certo qui mancano alcuni " & ecc. per combinare la stringa e di nuovo
non sono apostrofi ma penso questo sai bene.
DoCmd.SetWarnings False 'Disattiva gli avvisi dell'esecuzione query
DoCmd.RunSQL strSQL 'Esegui la query di registrazione record
DoCmd.SetWarnings True 'Riattiva gli avvisi dell'esecuzione query
Perché esegui la query con RunSQL invece del Execute di più sopra?
Disattivare gli avvisi è sempre un po' pericoloso.
Vedi anche http://www.donkarl.com/it?FAQ2.4.
Ciao
Karl
*******
Access FAQ: http://www.donkarl.com/it