It might be caused by the use of keywords as column names - most likely candidate is Date. Try to "escape" all column names:
sql = "INSERT into tbl_Record ([Name],[Date],[Toothno],[Procedure],[Amount_Charged],[Amount_Paid],[Balance],[IDrecord]) values (@Name, @Date, @Toothno, @Procedure, @Amount_Charged, @Amount_Paid, @Balance, @IDrecord)"
Also, I'd like to suggest a space character between table name and opening bracket - Microsoft databse engines normally cope with the lack of a space here, but others (e.g. Oracle) tend to fail.