|
|
|
| Проблема следующего плана.
Программа писалась очень давно на 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 всё проходит без проблем.
Какая то проблема с XP. В References помимо прочего установлены Microsoft DAO 2.5/3.0 Compatibility Library, Microsoft ActiveX Data Objects 2.0 Library и Microsoft ActiveX Data Objects Recordset 2.8 Library (именно в таком порядке). Очень нужна помощь или подсказка!
С уважением! | |
|
| |
|
|
|
| навскидку, попробуйте так (возможно не хватает обратного слеша)
Set db = Workspaces(0).OpenDatabase(App.Path & "\NameDB.mdb")
и посмотрите, чтобы в папке, из которой запускается ехе файл лежала БД "NameDB.mdb" | |
|
| |
|
|
|
| Я бы еще попробовал добавить в код CreateWorkspace. Кстати, а Access на компе установлен? Под ХР в окне ссылок DAO 2.5/3.0 нет, есть DAO 2.5/3.5 и выше. Так что может есть смысл заменить хотя бы на 3.51 | |
|
| |