나는 각 요일에 대해 많은 수의 사람들에 대한 성능 점수를 계산하는 데 사용되는 Access 데이터베이스를 보유하고 있습니다.VBA를 사용하여 DB를 병렬로 엽니 다.
데이터 집합의 크기 때문에 절차가 매우 느리게 실행됩니다. 이 작업을 가속화 할 수있는 잠재적 인 방법은 하루 5 점을 계산하는 프로세스를 고려 중입니다.
나는이 DB들을 모두 열어 놓은 VBA 코드를 작성했다. (일단 각 DB가 열리면 자체 프로 시저를 시작하는 자체 autoExec 매크로가있다.)
Sub DBloop()
Dim dbArr As Variant
Dim i As Integer
dbArr = Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
For i = 0 To UBound(dbArr)
openDBs CStr(dbArr(i))
Next
End Sub
Sub openDBs(dbname As String)
Dim acc As Access.Application
Dim DBpath As String
Dim strDbName As String
DBpath = "H:\Performance Test\"
strDbName = DBpath & dbname & ".accdb"
Set acc = New Access.Application
acc.Visible = True
acc.OpenCurrentDatabase strDbName, False
End Sub
불행하게도, 어떤 일이 일어나고 각 DB를 열로 그 DB의 자동 실행 매크로는 다음 중 하나를 열기 전에 완료 될 때까지, 초기 절차가 기다리고 있다는 것입니다. 이 문제에 대한 해결 방법이 있는지 아는 사람 있습니까?
실제로 데이터를 분할하려고합니까? 아마도 도움보다 더 많은 문제가 발생할 것입니다. – Andre
나는 너무 예배를 계획하고 있었다. 현재 각 사람마다 매일 별도의 점수가 있습니다. 이 점수는 서로 독립적으로 효과가 있기 때문에 별도의 절차로 나누어서 문제를 생각하지 않았습니다. 간과 할 수있는 잠재적 인 문제가 있습니까? – Leroy
모든 데이터를 결합하는 모든 종류의 쿼리는 더욱 어려워 질 것입니다. - 계산에 대한 성능 도움을 요청할 가치가 있습니다. 아마도 크게 향상 될 수 있습니다. – Andre