Ciao a tutti. Vi sottopongo oggi uno strano problema a cui sto tentando di dare una soluzione da ieri.
Ho creato una form per l'inserimento di dati in un database. Tra i vari dati da inserire c'è il CAP che però permetto all'utente di sceglierlo tramite una combobox che pesca i dati da una tabella nel database. Ora, questa tabella contiene tutti i comuni italiani e i rispettivi CAP, però può capitare che a volte l'utente necessiti di utilizzare una località estera con il rispettivo ZIP oppure di inserire un ulteriore CAP (si pensi a quelle città suddivise in zone per cui ogni zona ha un suo CAP, ad esempio Torino, Roma, Milano, ecc...), per cui bisognerà salvare un nuovo record con la località ed il nuovo CAP. Ora, io vorrei che l'elenco da cui l'utente seleziona la località (la combobox) e tramite il quale viene impostato il CAP relativo venga aggiornato subito non appena il nuovo record viene inserito. L'aggiornamento mi viene fatto in tempo reale se inserisco una nuova località (scrivendola nella textbox della combobox) con il rispettivo CAP (che viene scritto in una apposita textbox), infatti mi ritrovo subito la nuova località e se cambio località e la reimposto successivamente mi viene utilizzato il CAP relativo in modo corretto, quindi significa che i dati li prende dal database. Se invece inserisco solo un ulteriore CAP (quindi senza andare a digitare nella combobox) il record mi viene aggiunto ma l'elenco non viene aggiornato fino al successivo riavvio dell'applicazione. Questo non lo riesco a comprendere, utilizzo lo stesso metodo per entrambi gli aggiornamenti. Uso un Database Access 2000 e mi connetto al database utilizzando ADO
Questo è il codice che utilizzo per effettuare l'aggiunta dei record
codice:
If newTown Then
strSQL = "INSERT INTO CAP (Località, CAP) VALUES " & _
"('" & cmbCittà.Text & "', '" & txtCAP.Text & "')"
mainDM.ADO_connection.Execute strSQL, recordsAffected
elencoCittà.Requery
If recordsAffected > 0 Then
newTown = False
MsgBox "La nuova località è stata inserita nel database", _
vbInformation, "Gestione preventivi"
Else
MsgBox "Impossibile aggiungere il record", vbCritical, _
"Gestione preventivi"
End If
Else
If addZIP Then
If (ZIP <> txtCAP.Text) Then
If MsgBox("Aggiungere il nuovo CAP/ZIP code alla " & _
"tabella come ulteriore opzione per la località " & cmbCittà.Text & "?", _
vbQuestion + vbYesNo, "Gestione preventivi") = vbYes Then
'aggiunge la stessa città, ma con CAP aggiuntivo
With elencoCittà
.Move cmbCittà.ListIndex, 1
città = .Fields("Località")
provincia = .Fields("Provincia")
End With
strSQL = "INSERT INTO CAP(Provincia, Località, CAP) " & _
VALUES('" & provincia & "', '" & città & "', " & _
"'" & txtCAP.Text & "')"
mainDM.ADO_connection.Execute strSQL, recordsAffected
elencoCittà.Requery
If recordsAffected > 0 Then
MsgBox "Il nuovo CAP per " & città & " è stato " & _
"inserito nel database", _
vbInformation, "Gestione preventivi"
Else
MsgBox "Impossibile aggiungere il record", _
vbCritical, "Gestione preventivi"
End If
Else
MsgBox "Il CAP/ZIP code immesso non verrà preso " & _
"in considerazione!", _
vbInformation, "Gestione preventivi"
End If
End If
End If
End If
Se qualcuno mi potesse aiutare ad evitare questo fastidioso inconveniente gliene sarei davvero grato.