Ошибки:
1. Вы вызываете процедуры
MakeReport, SaveReport и ViewReport, а их в Вашем коде нет.
2. Процедурой
Private Sub cmd1_Click()
txt1 = ""
End Sub
Вы очищаете текстовое поле txt1, а его содержимое надо сохранить.
3. Процедура
Private Sub txt1_Change()
Dim txt1 As Long
End Sub
вообще не нужна.
Советую использовать мой код и, изменяя его немного, смотреть каждый раз, что получается. Так Вы лучше поймете алгоритм.