Вы выполняете операцию Row-By-Agonizing-Row или RBAR (reebar). Чем больше стол, тем больше времени это займет.
Большинство баз данных могут работать более эффективно, чем RBAR. Я предлагаю вам думать с точки зрения наборов, а не строк.
Я думаю, вы должны заменить весь этот блок кода следующим:
DoCmd.RunSQL "DELETE * FROM tblSampleRaw"
для целей ответа
Dim raw As Recordset
Set raw = db.OpenRecordset("tblSampleRaw")
If raw.RecordCount > 0 Then
raw.MoveFirst
WHILE NOT raw.EOF or raw.BOF
raw.MoveFirst
raw.Delete
Loop
End If