OnTime method werkt niet via functie

Status
Niet open voor verdere reacties.

schockie

Gebruiker
Lid geworden
13 apr 2008
Berichten
7
Hey,

Ik ben eigenlijk op zoek naar de code die mij toelaat om een dao connectie na een bepaalde tijd terug af te sluiten. Ik heb een addin gemaakt waar een heleboel functies zitten om zo data uit de dbase te halen. Maar in sommige excelsheets worden deze functies heel veel gebruikt, het is niet de bedoeling om elke keer een functie w uitgevoerd de link met de dbase w geopend en weer gesloten. De bedoeling is om na verloop van tijd de dao af te sluiten. Ik heb dit geprobeerd via onderstaande code ... nu dit lukt zo lang als ik de macro CloseJN in de code uitvoer. Als ik via de functie isin werk dan lukt het niet ... als je de functie laat lopen via het immediate window dan lukt het soms wel ...

Iemand een superingeving??

de aangepaste code van de addin:

Public db As DAO.Database
Public dbAlreadyOpen As Boolean
Public path As String, naam As String, check As String
Public Endtime
Public rtime As Boolean
Function Closecon()

If Not db Is Nothing Then
db.Close
Set db = Nothing
End If
dbAlreadyOpen = False
ActiveWorkbook.Sheets(1).Tab.ColorIndex = 3
End Function

Sub CloseJN()
If Not dbAlreadyOpen Then
'Set db = DAO.OpenDatabase(file)
dbAlreadyOpen = True
ActiveWorkbook.Sheets(1).Tab.ColorIndex = 4
End If
If rtime = True Then
On Error Resume Next
Application.OnTime _
EarliestTime:=Endtime, _
Procedure:="Closecon", _
Schedule:=False
rtime = False
End If
Endtime = Now + TimeValue("00:00:20")

RunTime

End Sub

Sub RunTime()

Application.OnTime _
EarliestTime:=Endtime, _
Procedure:="Closecon", _
Schedule:=True
rtime = True
End Sub

Function isin(internalnumber As Variant)
Application.Volatile (False)

'Dim db As DAO.Database
''Dim rs As DAO.Recordset
''Dim recordstring As String

Run "CloseJN"
''recordstring = "SELECT Isin from Allecodes where Internal_number=" & internalnumber & ";"
''Set rs = db.OpenRecordset(recordstring, dbOpenSnapshot)

'isin = rs("Isin")
isin = "blabla"
''rs.Close
''if Not rs Is Nothing Then Set rs = Nothing
'db.Close
'If Not db Is Nothing Then Set db = Nothing

End Function
 
Laatst bewerkt:
Zet svp VBA-code tussen code-tags
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan