controle op (ontbrekende) koppellingen

Status
Niet open voor verdere reacties.
Dag Dirk,

ben je zeker dat je de functie als publieke functie in een publieke module hebt geschreven? Niet in een formulier module of zo?
 
Ik ben zó blij dat die code van mij perfect werkt :). Draadje had met 4 berichtjes dan al klaar geweest :D
 
@OctaFish

bedankt voor jouw code, maar waar precies moet ik deze code plaatsen?
Mijn vraag op dit forum was: ik wens op een formulier een knop te zetten met code die controleert of er voor alle tabellen in de BE een link is in de FE, en waar de link ontbreekt moet deze aangemaakt worden.
Ik kan dus niet zomaar de 4 blokken code achter mijn knop bij gebeurtenis/klikken zetten?
Graag wat begeleiding want mijn kennis v VBA is zeeeer basic. :confused:
 
@NoellaG

ja, ik heb deze code in een formulier module gezet.
Dat was immers mijn vraag in 't begin: "Ik wens op een formulier een knop te zetten met code die controleert of er voor elke tabel in de BE een link is in de FE, en waar deze link ontbreekt moet hij aangemaakt worden"
Ik heb nergens gelezen in jouw antwoorden dat dit niet mocht in een formulier module.
Het zal allicht aan mij liggen want mijn kennis van VBA is zeeer basic :confused:
Wat heb ik dan fout gedaan en hoe kan ik het rechtzetten?
 
Ook míjn code zet je in een aparte module. Sowieso: code die niet aan een formulier is gebonden zet je in aparte modules. De knop op je formulier gebruik je dan om de procedure aan te roepen.
Op de knop staat dan deze code:
Code:
Private Sub cmdLinks()
     RefreshTableLinks
End sub

Of
Code:
Private Sub cmdLinks()
     RefreshTableLinks "H:\Databases\MijnDatabase.accdb"
End sub

Beetje afhankelijk of je het pad meegeeft als het bekend is, of wilt opzoeken in de functie. Je krijgt een bladervenster als je geen pad opgeeft.
 
Dag Dirk,

je kan de code vanuit een knop op het formulier gebruiken. Dan moet je vanuit de click event de checktables oproepen. Waarom een globale module gebruiken?
* Je kan de code uittesten in het immediate pane (direct venster), want die ziet alleen publieke procedures in publieke methodes
* Je maakt je code herbruikbaar. Als deze in een publieke methode in een publieke module staat dan kan deze opgeroepen worden vanuit elke knop op gelijk welk formulier

De zichtbaarheid van code wordt bepaald door 2 zaken:
- de plaats waar de code wordt geschreven: code in een formulier geschreven is alleen zichtbaar voor dat formulier, code in een publieke module geschreven kan gezien worden door de hele applicatie
- de manier waarop de code wordt gedeclareerd: private procedures kunnen alleen gezien worden door de module waarin ze geschreven zijn, publieke procedures kunnen door andere modules gezien worden

Meestal gebruik je publieke procedures in publieke modules. Een private functie kan je in een publieke module schrijven voor een stuk code dat verschillende malen opgeroepen wordt dooreen publieke functie die ook in deze module staat, maar geen zin heeft om apart te gebruiken.

Wanneer je een publieke procedure declareert in een formulier, dan ben je in feite een nieuwe methode voor dat formulier aan het creëren. Door een globale variabele in de declaratie sessie aan te maken creëer je op een heel eenvoudige een nieuwe eigenschap voor dat formulier. Voor meer controle kan je dat ook doen via een property procedure.

Vriendelijke groeten
Noëlla
 
Laatst bewerkt:
@NoellaG
@OctaFish

we zijn ondertussen al 14 dagen verder, ik heb nog enkele malen geprobeerd maar ik krijg het maar niet voor mekaar. Blijf foutmeldingen krijgen. Heb echter de laatste tijd geen tijd meer gehad om nog verder te experimenteren want ik heb het razend druk op het werk en ik ga binnenkort met pensioen. Dit project zal ik dus niet kunnen afwerken, zal een andere oplossing moeten zoeken.
Toch wens ik OctaFish en vooral NoellaG te bedanken voor hun hulp en geduld.
mvg, Dirk
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan