company = Request.Form("companyname") & ""
putting & "" on the end of this statement just makes sure that the company variable is of a string subtype rather than anything else. not sure if its needed really but its nice to make sure rather than have to track down a bug somewhere else in the code later on.
'dbpath = "c:\amit\database\northwind.mdb"
dbpath = "C:\Program Files\Microsoft Office\Office10\Samples\northwind.mdb"
connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & dbpath & "';"
all we're doing here is creating a connection string for ado. you can tell it various things, like what type of database it is, where it is, etc. ado then uses this to connect to your database. the syntax for the string is an ado thing, as far as vbscript is concerned it's just a string. there are more examples at http://www.connectionstrings.com/.
if company <> "" then
this just says if the company variable doesn't contain an emtpy string then... the reason for it is because you don't want to add that part of the sql where clause if you don't have anything to search for.
sql = " companyname like '" & replace(company,"'","''") & "%'"
putting the replace function around the variable is to prevent sql injection. i.e. if a user typed a ' into one of the boxes without the replace, then it would end the string literal and the sql statement could then be changed drastically. effectively giving users of your site free access to your database.
not sure about anywhere that you can read up on this sort of thing. i've still not found anything particularly useful like that. best bet is to ask questions in a forum like this. and make sure you've got the script documentation from here, http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp, this'll answer a lot of your questions about syntax and what functions are available.