Ik voeg een Tekstvak in het formulier in. (Tekst55)
en de regel: Me.Tekst55 = Now() aan het script.
Dat eindigt dan met:
"Fout 2467 tijdens uitvoering.
De expressie verwijst naar een object dat is gesloten of dat niet bestaat."
Wat gaat er mis?
Het script sluit het formulier. verwijdert alle relaties. Importeert nieuwe tabellen (die een 1 achter de naam krijgen). Ik hernoem de oude tabellen met een # voor de naam. Ik hernoem de nieuwe tabellen zonder de 1. en verwijder de oude tabellen. Dan creer ik de relaties tussen de nieuwe tabellen. (als je dat hernoemen handmatig doet blijven wel de relaties behouden) Dan open ik het formulier weer en volgt "Me.Tekst55 = Now()"
Tekstvak is niet vergrendeld.
De msgbox hieronder geeft keurig een timstamp weer maar ik wil dat vastleggen zodat een volgende gebruiker ziet hoe oud de data is.
"MsgBox obj.DateModified"
script:
Private Sub Importeer()
DoCmd.Close acForm, "switchboard", acSaveYes 'formulier Switchboard wordt afgesloten, wegens koppelingen met tabellen die vervangen worden.
DeleteAllRelationships 'alle koppelingen tussen bestaande tabellen worden verwijderd.
'tabellen worden opgehaald uit MAWE database, de nieuwe versies krijgen een 1 achter de naam.
DoCmd.TransferDatabase acImport, "Microsoft Access", "G:\MedGen\Klinische_Genetica\Maatschappelijk_Werk\H MaatschappelijkWerk_Dev\mawe.accdb", acTable, "NAW_New", "NAW_New", False
DoCmd.TransferDatabase acImport, "Microsoft Access", "G:\MedGen\Klinische_Genetica\Maatschappelijk_Werk\H MaatschappelijkWerk_Dev\mawe.accdb", acTable, "MAWE", "MAWE", False
DoCmd.TransferDatabase acImport, "Microsoft Access", "G:\MedGen\Klinische_Genetica\Maatschappelijk_Werk\H MaatschappelijkWerk_Dev\mawe.accdb", acTable, "contact", "contact", False
'de oorspronkelijke tabellen hernoemen met # voor de naam.
DoCmd.Rename "#NAW_New", acTable, "NAW_New"
DoCmd.Rename "#MAWE", acTable, "MAWE"
DoCmd.Rename "#contact", acTable, "contact"
'De nieuwe tabellen de naam van de oude tabellen geven.
DoCmd.Rename "NAW_New", acTable, "NAW_New1"
DoCmd.Rename "MAWE", acTable, "MAWE1"
DoCmd.Rename "contact", acTable, "contact1"
'de oude tabellen weggooien
CurrentDb.TableDefs.Delete ("#NAW_New")
CurrentDb.TableDefs.Delete ("#MAWE")
CurrentDb.TableDefs.Delete ("#contact")
'de relaties opnieuw aanmaken tussen de vernieuwde tabellen
CreateRelationship1
CreateRelationship2
DoCmd.OpenForm "Switchboard" 'formulier weer openen.
Me.Tekst55 = Now()
'later te ontwikkelen timestamp op formulier
Dim obj As AccessObject, dbs As Object
'Dim Datum As Date
Set dbs = Application.CurrentData
Set obj = dbs.AllTables("MAWE")
Debug.Print obj.Name; " "; obj.DateModified; " "; obj.DateCreated
'MsgBox obj.DateModified
End Sub