Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как определить количеств открытых баз?
 
 автор: никк   (15.12.2009 в 23:40)   личное сообщение
 
 

в обработке событий часто используются создание рекордсетов set rst = db.openrecordset("...
с какогото момента начало появлятся сообщение что кол-во открытых баз превышает максимально возможное для аксеса (версия 2003)
1. как определить количеств открытых баз?
2. как уменьшить кол-во открытых баз?

  Ответить  
 
 автор: lashkevi4   (16.12.2009 в 09:52)   личное сообщение
 
 

мне тоже интересно...

  Ответить  
 
 автор: osmor   (16.12.2009 в 10:02)   личное сообщение
 
 

Определить кол-во открытых ДБ в активном воркпрейсе можно так
Debug.Print Workspaces(0).Databases.Count

Написал такой код

Public Sub OpenDAODB()
Dim colDB As New Collection
Dim colRST As New Collection
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim i As Integer
Const MAX_I = 500

   On Error GoTo OpenDAODB_Error
    For i = 1 To MAX_I
        Set db = CurrentDb
        colDB.Add db, CStr(i)
        Set rst = db.OpenRecordset("select * from tbltest")
        colRST.Add rst, CStr(i)
        Set db = Nothing
        Set rst = Nothing
        
    Next
    
OpenDAODB_End:
   On Error GoTo 0
   Exit Sub

OpenDAODB_Error:
    Select Case Err.Number
        Case Else
            MsgBox Err.Number & " " & Err.Description
            Resume OpenDAODB_End
    End Select
End Sub


Вылетело с вашей ошибкой при i = 253
т.е. мне удалось отрыть 252 базы.

если в код перед
Set db = Nothing
добавить
db.Close

то при MAX_I = 5000 ошибки нет.

Разберитесь где у вас отрываются базы в таком количестве, посмотрите где описаны переменные в которые вы получаете текущую базу, где и когда они используются, где разрушаются.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList