Проблема следующего плана.
Программа писалась очень давно на VB4, VB5, VB6 под ОС Windows 2000. При попытке запустить её в VB6 под Windows XP возникает ошибка (последующее зацикливание) после следующего кода:
Private Sub Form_Load()
Dim rs1 As DAO.Recordset
Dim i As Integer, j As Integer
On Error Resume Next
Set db = Workspaces(0).OpenDatabase(App.Path & "NameDB.mdb")
Set RS = db.OpenRecordset("Staff", dbOpenDynaset)
Set rs1 = db.OpenRecordset("User rights")
If rs1.RecordCount Then
rs1.MoveLast
ReDim Rights(rs1.RecordCount, 14)
rs1.MoveFirst
Do Until rs1.EOF
i = i + 1
For j = 1 To 14
Rights(i, j) = Trim(rs1.Fields(j - 1).Value)
Next j
rs1.MoveNext
Loop
End If
Не определяется база данных. Т.е. после строки
Set db = Workspaces(0).OpenDatabase(App.Path & "NameDB.mdb")
значение db – “nothing”. Ну и соответственно все проблемы после.
На Windows 2000 всё проходит без проблем.
Вопрос: в чём фишка и как её устранить?