VBA code in memo veld

Status
Niet open voor verdere reacties.
Beste edmoor, ik heb de verwijzing naar Microsoft Visual Basic for Applications Extensibility 5.3 gemaakt.
Maar thisworkbook vindt MS Access geen goede zet. Heb je enig idee hoe ik ervoor kan zorgen dat MS Access deze code goed vindt?
 
Dat bedoelde ik met de opmerking dat ik dat nog nooit in Acces heb gedaan. De ThisWorkbook zal dus moeten worden vervangen door de tegenhanger in Acces en ik denk dat jij beter weet dan ik wat dat dan moet zijn. Andere dingen moet je wellicht ook aan Acces aanpassen, maar het principe zou moeten werken.
 
Laatst bewerkt:
Kom je toch weer bij een Access expert terecht.... Om te laten zien dat ik de beroerdste niet ben:
Code:
Sub CreateNewModule()
Dim MyMod As Module
Dim MyStr As String
Dim i As Integer

    DoCmd.RunCommand (acCmdNewObjectModule) ' Create new module.
    i = Modules.Count
    MyStr = "Sub Test2()" & vbCrLf  ' Create text for the module.
    MyStr = MyStr & Space$(4) & "MsgBox " & Chr$(34) & "test2" & _
    Chr$(34) & vbCrLf & vbCrLf
    
    MyStr = MyStr & "End Sub"
    
    Set MyMod = Modules(Modules(i - 1).Name) ' Give module a name.
    MyMod.InsertText MyStr ' Insert text into the module.
    DoCmd.Close acModule, Modules(i - 1).Name, acSaveYes ' Close and save module.

End Sub
En dat zonder de extra bibliotheek :)
 
En daar zat ik dus op te wachten. Well done Michel :D
 
Hartelijk dank voor jullie antwoorden. Ik ben nu druk bezig om te kijken of ik hier iets aan heb. Ik meld me later weer.
 
Overigens heb je echt geen nieuwe module nodig; ook in een bestaande module kun je een procedure maken die tekst uit een veld haalt (de DLookup functie die je nu gebruikt) en vervolgens de tekst splitst in bruikbare onderdelen. Het probleem was immers dat je geen procedures kon maken in de db als er gebruikers inzaten; dan kun je ook geen nieuwe module maken, want die code moet ook een keer worden gestart.
 
Omdat de database niet exclusief geopend kan worden (door de vele gebruikers) is het niet mogelijk om modulen aan te passen, ook niet door ms access 2010 zelf.
Bovenstaande 'oplossingen' maken een module en beschrijven deze ook nog eens door de tekst uit de inhoud-veld van tabel Tbl_Mail daar te plaatsen.
Ik heb de hoop inmiddels opgegeven en het is mij nu duidelijk dat de tekst uit een memoveld niet als een VBA-code geïnterpreteerd kan worden.
Bedankt voor jullie moeite en ik hoor het graag als er toch nog een mogelijkheid op dit gebied bestaat.
 
Ik herhaal het nog maar een keer: onderhoud aan een database moet natuurlijk altijd kunnen. Je kunt gebruikers (al dan niet vrijwillig) uit een database gooien, zodat je hem kunt aanpassen. Lijkt mij niet meer dan logisch in een bedrijfsomgeving dat er wel eens onderhoud moet worden gepleegd. Dat het niet lukt om jouw memoveld te 'vertalen' naar VBA heb ik je al gelijk gezegd, en die kant moet je ook helemaal niet op willen met je oplossing. Geef de gebruikers één of meer tekstvakken waarin ze hun tekst typen, en combineer met VBA alle noodzakelijke gegevens in één string. Is allemaal niet moeilijk.
Hoe je gebruikers uit een db kunt gooien staat in de cursus (te vinden in de handleidingen sectie).
 
Het aantal keer dat er onderhoud moet worden gepleegd op een database (die 24 uur per dag in de lucht moet zijn), moet je proberen in de perken te houden. Daar was dit hele verhaal op gebaseerd.
Dat je gebruikers uit een database kunt 'gooien' is mij bekend en doet verder niet terzake.
Natuurlijk is het niet moeilijk om tekstvelden te maken waarin mensen hun stukje tekst kunnen zetten die in de mail moet worden verstuurd, maar dat is allemaal niet aan de orde.
Wel aan de orde is de 'down-time' te beperken.
 
Natuurlijk is het niet moeilijk om tekstvelden te maken waarin mensen hun stukje tekst kunnen zetten die in de mail moet worden verstuurd, maar dat is allemaal niet aan de orde.
Waar ging je vraag dan eigenlijk over?
 
Neem een ander in de mailing! Het ging mij erom dat ik flexibel met teksten in mail om kan gaan, zodat een collega van mij (die helemaal geen Access kennis heeft) makkelijk de teksten kan aanpassen EN dat de down-time beperkt blijft.
 
Lees je eigen vraag er nog eens op na, en bedenk dan wie wie in de maling neemt... We doen dit op vrijwillige basis, en we steken dus als helpers allemaal onze eigen tijd er in. Nieuwe functionaliteit aanpassen of ontwikkelen doe ik (en met mij vele anderen) in een testomgeving waar je niemand lastig valt. Op het moment dat de aanpassingen klaar zijn, haal je de produktie offline, implementeer je de aanpassingen en zet je de db weer aan voor de gebruikers. Da's, als je het goed doet, een proces van max 5 minuten in Access. Kwestie van ene module verwijderen en andere importeren bijvoorbeeld. Of je zorgt ervoor dat de gebruikers bij het inloggen op de pc de nieuwe versie (je zult dan met aparte frontends moeten werken) uitgerold krijgen, dan hoef je helemaal niet down.
Dus zeuren over de down-time vind ik niet getuigen van een niet-overdreven professionele instelling. Maar goed, volgens mij zijn we wel zo'n beetje klaar met jouw vraag. Ik in ieder geval wel.
 
Over instelling gesproken...je kunt mij natuurlijk op verschillende manieren proberen neer te halen. Geen probleem, dan zullen we nog maar zwijgen over jouw belerende instelling. Zoals ik al aangegeven heb, kom je vrij irritant over.
Je weet helemaal niets over hoe hier de zaken inelkaar steken en over hoe professioneel ik wel of niet ben. Alleen de opmerking al, laat de professionaliteit ver achterwege.
 
Ik haal niemand neer, maar je moet als je een vraag stelt die wel zodanig uitleggen dat de omstandigheden gelijk duidelijk zijn. Het heeft weinig zin om mensen die daar hun eigen tijd in steken naar oplossingen te laten zoeken die niet gaan werken. Dat ik zoveel tijd in jouw vraag heb gestoken geeft alleen maar aan dat er aan mijn instelling niks mankeert... Als ik belerend over kom, dan is dat omdat de meeste mensen die hier een vraag posten relatief weinig ervaring met programmeren hebben. En jij gaf niet de indruk dat jij die wél had. Ik zal maar voor me houden hoe ik daar nu over denk...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan