1) N'utilise pas ODBC, mais OLE DB à la place. Ca ne changera rien à ton programme (toujours la même syntaxe à base de Server.CreateObject("ADODB.Connection" ) / Server.CreateObject("ADODB.RecordSet" )) car OLE DB est incomparablement plus rapide.
2) Si tu es en local, utilise une adresse IP internet et non pas ton adresse publique : en effet, la plupart des modems sont incapable de faire le loop-back, c'est à dire que tu ne peux pas accéder à ton IP publique à partir de ton réseau local.
3) Dans tous les cas, si tu fais tourner SQL Server et IIS sur le même serveur, je te conseille d'utiliser 127.0.0.1 pour la connection, ça t'évite de passer par la couche réseau, et ça marchera toujours.