Ciao!
Ho scritto queste righe di codice in una funzione, con questa idea:
Scrivo il titolo di un libro nella textbox2, quando clicco aggiungi, controllo che il titolo del libro non sia già presente nel database, se è già presente faccio comparire una messagebox, se non è già presente lo aggiungo al database.
ho fatto questa cosa perchè la funzione cerca, se per esempio cerco la lettera a, mostra tutti i titoli che contengono la lettera a, e quindi per controllare se un titolo esiste giò ho fatto così:
sql = "SELECT * FROM biblio WHERE titolo LIKE '%" & Aggiungi.TextBox2.Text & "%'"
hres = $hconn.Exec(sql)
FOR EACH hres
IF hres!titolo = Aggiungi.TextBox2.Text THEN
Message.Info("Libro già presente nel database", "Ok")
BREAK
ENDIF
NEXT
IF NOT hres.Available THEN
$hconn.Begin
hres = $hconn.Create("biblio")
hres!titolo = Aggiungi.TextBox2.Text
hres!autore = Aggiungi.TextBox3.Text
hres!annolettura = Aggiungi.TextBox4.Text
hres!commento = Aggiungi.TextArea1.Text
hres.Update
$hConn.Commit
$hConn.Close
Aggiungi.TextBox2.text = ""
Aggiungi.TextBox3.text = ""
Aggiungi.TextBox4.text = ""
Aggiungi.TextArea1.Text = ""
Message.Info("Libro aggiunto al database", "Ok")
ENDIF
ENDIF
END
Solo che secondo me c'è qualcosa di sbagliato,perchè anche se per esempio cerco "a" che non combacia con nessun titolo, hres contiene informazioni, quindi non dovrebbero venire eseguite tutte le righe di codice sotto IF NOT hres.Available THEN invece lo fa!
Non va bene che non capisca cosa ho fatto
Qualcuno mi spiega cosa fa il mio codice per piacere?
Grazie!!
p.s. il doppio endif alla fine è perchè c'è un'altro if prima della parte di codice che ho postato