innanzi tutto chiedo scusa per la mia ignoranza e per il probabile l'uso improprio di alcuni termini ma come già accennato nella mia presentazione sono una new entry nel mondo della programmazione.
non contento dei semplici esercizi che mi vengono assegnati a scuola ho deciso di cimentarmi in un progetto leggermente più impegnativo: seguente una guida che spiegava passo passo come creare una rubrica ho deciso di creare un catalogatore di modellini di aerei per il padre di un amico.
dopo tanti intoppi fortunatamente risolti mi sono imbattuto in un problema al quale, a causa della mia ignoranza in merito, non so come porre rimedio.
Nel mio codice ho tentato di implementare un database di Access con il programma e la cosa sembrava riuscita ma quando faccio per avviarlo e inserire un nuovo record nel database mi si presenta il seguente errore: Errore di sintassi nell'istruzione INSERT INTO. e la stessa cosa succede se tento di modificare un record già esistente (Errore di sintassi nell'istruzione UPDATE).
Il problema mi si presenta sul comando "salva" e il debug mi seleziona la riga "cn.Execute (SQL)" del suo codice (di seguito):
'CONTROLLO LA VALIDITA' DEI CAMPI
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Then
MsgBox "Errore nell'inserimento dei dati. Controlla di aver riempito correttamente tutti cambi", vbExclamation, "Attenzione"
Else
Dim SQL As String ' COMANDO SQL A SECONDA CHE SI TRATTI DI UN INSERT O DI UN UPDATE
Dim conferma As String ' MESSAGGIO DI CONFERMA
'UTILIZZO LA FUNZIONE SPLIT PER RECUPERARE IL VALORE "ID" NELLA COMBO E APRO LA CONNESSIONE
s = Split(Combo1.Text, " ")
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=Aerei.mdb"
'ESEGUO LA INSERT O L'UPDATE
If Combo1.Text = "" Then
SQL = "INSERT INTO Aerei" _
& "(nomeaereo,motore,marmitta,servocomandi,ricevitore,batteria,centralinaservi,elica,note) " _
& "VALUES " _
& "('" & Replace(Text1.Text, "'", "''") & "', " _
& "'" & Replace(Text2.Text, "'", "''") & "', " _
& "'" & Replace(Text3.Text, "'", "''") & "', " _
& "'" & Replace(Text4.Text, "'", "''") & "', " _
& "'" & Replace(Text5.Text, "'", "''") & "', " _
& "'" & Replace(Text6.Text, "'", "''") & "', " _
& "'" & Replace(Text7.Text, "'", "''") & "', " _
& "'" & Replace(Text8.Text, "'", "''") & "', " _
& "'" & Replace(Text9.Text, "'", "''") & "')"
conferma = "Inserimento effettuato con successo"
Else
SQL = "UPDATE Aerei SET" _
& "nomeaereo = '" & Replace(Text1.Text, "'", "''") & "', " _
& "motore = '" & Replace(Text2.Text, "'", "''") & "', " _
& "marmitta = '" & Replace(Text3.Text, "'", "''") & "', " _
& "servocomandi = '" & Replace(Text4.Text, "'", "''") & "', " _
& "ricevitore = '" & Replace(Text5.Text, "'", "''") & "', " _
& "batteria = '" & Replace(Text6.Text, "'", "''") & "', " _
& "centralinaservi = '" & Replace(Text7.Text, "'", "''") & "', " _
& "elica = '" & Replace(Text8.Text, "'", "''") & "', " _
& "note = '" & Replace(Text9.Text, "'", "''") & "', " _
& "WHERE id = " & CInt(s(0))
conferma = "Modifica effettuata con successo"
End If
'ESEGUO REALMENTE IL COMANDO SQL
cn.Execute (SQL)
MsgBox conferma, vbExclamation, "Conferma"
cn.Close
'PULISCO E RICARICO LA COMBO
Combo1.Clear
Call Form_Load
End If
Dov'è quindi l'errore? Vi ringrazio in anticipo e aspetto vostre delucidazioni.