Uses o no uses un control ADO, tu problema radica en la forma en que se guarda la información , digamos que el tipo de dato
"0000-00000000" no es muy familiar para las bases de datos como para hacerlo autoincrementable.
Deberías incrementar un número cuando se agrega un nueva nueva factura, por lo cual debes incrementar el contador derecho.
el formato "0000-00000000" lo podés dividir faculmente con left y mid para trabajarlo por separado y luego volver a concatenarlo.
Dim strTalonario as string
Dim strNumeracion as string
strTalonario=left(data1.Recordset!Factura,4)
strNumeracion=Mid(data1.Recordset!Factura,6)
strNumeracion=string( 8-len(val(strNumeracion)+1)) & val(strNumeracion)+1
luego cuando agregas un registro integrás los dos valores
data1.Recordset!Factura=strTalonario & strNumeracion