Que raro que no funciona, estas ocupando SQL cierto?  Trata asi:
  
Código:
 strSQL = "Insert Into Riesgos(rie_proyecto_cod, rie_fecha_gen, rie_premisa, rie_titulo) "
strSQL = strSQL & "values ('" & proyecto & "','" & fecha_generacion & "'," & premisa & ",'" & titulo & "');SELECT @@IDENTITY AS ident; " & _
		"DECLARE @ident int; DECLARE ident_cursor CURSOR FOR SELECT @@IDENTITY; OPEN ident_cursor; FETCH NEXT FROM ident_cursor INTO @ident; "
Set rs Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Cnn, 3, 3
id = rs("ident")
  Si no funciona, mejor que llamen a un programador  

  porque sho no se!