Hallo,
ich habe eine UDF erstellt, die einen Wert von zwei Access Datanbanken herausgibt. Die UDF funktiert einwandfrei, jedoch wird der PC immer langsamer bei der Berrechnung. DIese UDF wird ca 300 mal ausgefuehrt.
Ich hab schon gegooglet aber keine Info gefunden, die mir helfen koennte, die automatische Berchnung zu beenden.
Was ich suche und ich hoffe ihr koennt mir helfen:
1. alle Zellen die meine Funktion haben, sollten durch die automatische Kalkulation nicht berechnet werden.
2. Nur Zellen mit meiner Funktion, die als "Dirty" deklaiert werden, sollen auch berechnet werden.
Ein Teil meines Code hab ich hier mal ausgegeben
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | Public Function DBGetValue(DataBase, Year, Month, View, Scenario, Region, Branch, Acc, NAE, Segment1, Segment2)
Dim db As DAO.DataBase
Dim rs As DAO.Recordset
Dim Ch As String
Dim QYR As String
Dim DBValue As Double
Dim YTDP As String
If DataBase = "CA" Then
Ch = "J:\Finance\Finance\MS ACCESS DB\CostAccounting.MDB"
ElseIf DataBase = "Sales" Then
Ch = "J:\Finance\Finance\2011 Reports - Sweden\Sales & COS\W-A\Sales COS Detail.mdb"
End If
Set db = DBEngine.Workspaces(0).OpenDatabase(Ch)
....
Set rs = db.OpenRecordset(QYR)
If rs.RecordCount = 0 Then
Set rs = Nothing
Set db = Nothing
DBGetValue = 0
Exit Function
End If
DBValue = 0
rs.MoveFirst
Do Until rs.EOF
If IsNull(rs![sumvalue]) Then
DBValue = DBValue + 0
Else
DBValue = DBValue + rs![sumvalue]
End If
rs.MoveNext
Loop
rs.Close
DBGetValue = DBValue
Set rs = Nothing
Set db = Nothing
End Function
|
Gibt es eine Moeglichkeit meine zwei o.a. Punkte in VBA umzusetzen?
LG aus Sydney,
Robert
|