Yo lo haría en una función así.
Código vb.net:
Ver originalPublic Function RecuperarId() As Integer
Using conn As New SqlConnection("data source = AFULLSERVER\EXPRESS; initial catalog =" & factory & "; user id = sa; password = server123")
Dim query = "SELECT max(id) FROM cuentas"
Dim cmd As New SqlCommand(query, conn)
conn.Open()
Return Convert.ToInt32(cmd.ExecuteScalar())
End Using
End Function
Y para guardar el dato en una variable arias asi.
Código vb.net:
Ver originalDim id As Integer = RecuperarId()
Como veras el codigo queda mejor estructurado.
Puedes encontrar un ejemplo sobre este tema en un articulo de mi blog.
Comprobar si Existe Registro en BD C# - VB.Net