Ciao a tutti, sto sviluppando un piccolo programma di gestione cliente, ma sto avendo problemi con l'istruzione INSERT, vi posto il codice e l'errore così vi sarà tutto più chiaro.

codice:
public void inserisciCliente(){
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+this.ottieniPercorso());
		    String sql = new String ("INSERT INTO cliente (nome,cognome,codiceF,dataNascita,luogoNascita,recapito1,recapito2,recapito3,email,residenza,note) "
		    		+ "VALUES (?,?,?,?,?,?,?,?,?,?,?)");
		    PreparedStatement cmd = con.prepareStatement(sql);
		      //PASSAGGIO ATTRIBUTI AL DATABASE
		      cmd.setString(1, this.nome);
		      cmd.setString(2, this.cognome);
		      cmd.setString(3, this.codiceF);
		      cmd.setString(4, this.dataNascita);
		      cmd.setString(5, this.luogoNascita);
		      cmd.setString(6, this.recapito1);
		      cmd.setString(7, this.recapito2);
		      cmd.setString(8, this.recapito3);
		      cmd.setString(9, this.email);
		      cmd.setString(10, this.residenza);
		      cmd.setString(11, this.note);
		      cmd.executeUpdate();
		      con.close();
		      JOptionPane.showMessageDialog(null, "Inserimento riuscito con successo!");
		}catch(SQLException | ClassNotFoundException e){
			JOptionPane.showMessageDialog(null, "Inserimento non riuscito!");
			e.printStackTrace();
		}
	}
e questo è l'errore che genera:

codice:
java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione INSERT INTO.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
	at Cliente.inserisciCliente(Cliente.java:51)
	at Gui$2.actionPerformed(Gui.java:265)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
premetto che ho controllato il database svariate volte e il nome della tabella (cliente) e il nome e il numero di campi corrispondono perfettamente.

Quindi non ho idea di che cavolo potrebbe essere.

Vi ringrazio anticipatamente,

siete i migliori!