Everybody's question is urgent to them.
Try using an ANSI date format, eg yyyy-mm-dd. Assuming that your date is always in for format DDMMYYYY (and not DMMYYYY or DDMMYYYY) then try the following:
startdate = Left(startdate, 2) & "-" & Right(Left(startdate, 4), 2) & "-" & Right(startdate, 4)
SQL = "SELECT * FORM tblhistory WHERE datechanged = '" & startdate & "'"
I don't know oracle, but you may find that sysdate also stores a time as well as a date, in wich case you may have problems with this query. I'd suggest doing some testing of your SQL statement in whatever client tools oracle offers you.