I don't know why you are using an ADODB recordset, but you do realise that an ADODB recordset has a .Clone property that works similarly to the form's .RecordsetClone.
So, instead of accessing Me.RecordsetClone, use Me.Recordset.Clone
See the docs
it's probably just a typo, but Common is missing an opening double quote - double-check your actual RowSource, just in case this is causing an issue (unlikely!)
When building strings for SQL you will always have to escape whatever character is used as the string delimiter.
Personally I find a pair of single quotes easier to parse mentally than a bank of three or four double quotes! 🤪
Of course, if you are doing any amount of it (building SQL...
Or more concisely still by using a bound form and placing code in the Form's Error event to catch the key violation. You also then no longer need to worry about requerying the form and returning to the same recordset position, delimiting/escaping your inputs etc. etc.
But doesn't allow for...
What you posted is actually incorrect - it is difficult to see because you don't use a monospace font to view it.
dubbel = "Bestelbon = "' & Me.txtBestelbonNew & '"
^ ^ ^
double quote too soon | | missing double |...
It will prevent an error in case anyone types a single apostrophe in txtBestelbonNew.
Yes, you seem to have already found the answer in this other thread.
Why are you asking again? Did it not work?