Трудно дать вам полное решение о том, как очистить код, не видя всего этого. Лучшим способом отображения ваших данных может быть использование GridView или Repeater.
Однако, если вы собираетесь создать HTML-код в строковой переменной, я бы посоветовал сделать часть, которую вы разместили, так:
Dim html As New Text.StringBuilder
html.Append(String.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>",
rsData("M_Start"),
rsData("WEEKS"),
rsData("DAYSTIME")))
Это делает его более читаемым, а StringBuilder работает лучше, чем несколько раз увеличивая строковую переменную.
Я не уверен, как вы справляетесь с повторениями, но тогда вы могли бы сделать что-то вроде этого (при условии, что rsData принадлежит DataTable):
Const htmlRowFormat As String = "<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>"
Dim html As New Text.StringBuilder
For Each dr As DataRow In rsDataTable.Rows
html.Append(String.Format(htmlRowFormat,
rsDataTable("M_Start"),
rsDataTable("WEEKS"),
rsDataTable("DAYSTIME")))
Next
Чтобы получить html: html.ToString