WaardeInstellen niet beschikbaar in Access 10.

Status
Niet open voor verdere reacties.

Johgs

Gebruiker
Lid geworden
19 mei 2011
Berichten
337
Bij het maken van een nieuwe (ingebakken) macro (jaja, ik weet 't :rolleyes:) was de functie WaardeInstellen niet beschikbaar. Database is vertrouwd en alle macro's werken.
Ook het handmatig intypen van WaardeInstellen werkte niet.

Nu had ik oude macro's gemaakt met oudere versies dan de huidige en die bevatten die functie wel (nu wel met een geel driehoekje dat ze mogelijk gevaarlijk zijn) en die werken prima. Even die functie in zo'n macro geselecteerd en Ctrl-C (want copy niet beschikbaar) en Ctrl-V in de nieuwe macro, de argumenten aangepast, en wat denk je, werkt als een tierelier.

Nu kan ik dat trucje natuurlijk vaker uithalen, maar hoe krijg ik die functie WaardeInstellen gewoon weer beschikbaar in de keuzelijst?

NB. de macro verzend een rapport en registreert wanneer het verzonden is, die laatste waarde wordt ingesteld en een vinkje gezet voor reeds verzonden.
 
Vergeet macro’s, en werk de hele handel uit in een functie. Ben je van alle gezijk af.
 
Weet ik, maar dan moet je het dagelijks doen en niet af en toe. Ben er wel eens mee bezig geweest en als ik nu daarin aanpassingen moet maken, begin ik bijna weer vanaf 0.
 
Weet je hoeveel tijd het kost om een macro te maken, en hoeveel tijd om diezelfde (en veel uitgebreidere) functionaliteit in een VBA functie? Elke seconde die je aan macro's besteed, is in beginsel verloren tijd :).
 
In Access 10 gaat dat heel snel met een snelbakpan.
Heb al eens wat macro's laten omzetten in VBA maar de macro zag er toch simpeler uit voor een VBA leek. '
Vandaag een macro gebakken voor het verzenden van een rapport aan een aantal ontvanger, 2 veldwaarden in te stellen met test of rapport al verzonden was en bijbehorende foutmelding in enkele minuten klaar inclusief extra formuliertje voor de foutmelding met info over wanneer het rapport al verzonden was. ;-)
Maar: ik heb wel een dik boek over VBA ter beschikking, dus wie weet....

Ik zoek nog een oplossing om die mailadressen die in die macro's zitten te kunnen vervangen door waarden uit een tabel omdat de dB op meerdere lokaties gebruikt wordt met dezelfde rapporten die verzonden worden maar dan aan andere adressen (en met andere data). Dan is het lastig die adressen iedere keer aan te passen in de macro zelf als er een nieuwe versie is van de front-end. Vrees dat ik dan wel aan de VBA zal moeten geloven.
 
Laatst bewerkt:
Heb al eens wat macro's laten omzetten in VBA maar de macro zag er toch simpeler uit voor een VBA leek. '
Dat komt omdat geconverteerde macro's er niet uit zien. Ik kan macro's (ik zie er niet zo veel, moet ik zeggen laat staan dat ik ze maak) vaak terugbrengen tot één regel. En door het gebruik van IntelliSense staan ze ook nog eens heel snel. in de leertijd die jij hebt gehad voor je macro's had je een hele aardige programmeur kunnen zijn :).
 
Ik zoek nog een oplossing om die mailadressen die in die macro's zitten te kunnen vervangen door waarden uit een tabel omdat de dB op meerdere lokaties gebruikt wordt met dezelfde rapporten die verzonden worden maar dan aan andere adressen (en met andere data).
En dat is dus typisch een simpel klusje voor een procedure. Maak een recordset, loop door de emailadressen, zet ze in een string en gebruik die in de mailopdracht.
 
in de leertijd die jij hebt gehad voor je macro's had je een hele aardige programmeur kunnen zijn :).

Nou, die leertijd was nul, gewoon gaan doen trial and error. Gelukkig met heel weinig van dat laatste. ;-)
 
En dat is dus typisch een simpel klusje voor een procedure. Maak een recordset, loop door de emailadressen, zet ze in een string en gebruik die in de mailopdracht.

De termen los van elkaar ken ik, zal bij gelegenheid eens kijken of ik ze ook aan één kan breien. ;-)

Vast een simpel klusje voor een ervaren programmeur, maar als je vanaf nul moet beginnen.......
 
... stap je naar een forum voor hulp :). Hier twee voorbeelden die wellicht ter inspiratie dienen.
Het eerste voorbeeldje is gebaseerd op een Keuzelijst waarin je email adressen selecteert. Deze wordt dan uitgelezen in de procedure. Het maakt daarbij niet uit of de lijst is ingesteld op één waarde, of op meerdere waarden. De code werkt in beide gevallen. In het tweede geval lees je de keuzelijst namelijk anders uit.
Code:
Private Sub lstMailTo_Click()
Dim varItem As Variant
Dim strList As String

    With Me.lstMailTo
        If .MultiSelect = 0 Then
            Me.txtSelected = .Value
        Else
            For Each varItem In .ItemsSelected
                If strList & "" <> vbNullString Then strList = strList & ";"
                strList = strList & .Column(0, varItem)
            Next varItem
            Me.txtSelected = strList
        End If
    End With
End Sub

Het tweede voorbeeld gebruikt een tabel om de email adressen uit te lezen, dus ook een recordset. Hierbij ga ik er voor het gemak even van uit dat je op een formulier een BedrijfID hebt, waarvan je de medewerkers wilt mailen. De tabel wordt dus geopend met een filter op het BedrijfsID. Vervolgens loop je door de query, en zet je alle email adressen in een string.
Code:
Function eMail(BedrijfID as Integer) As String
Dim rs As DAO.Recordset
Dim strList As String
    Set rs = CurrentDb.OpenRecordset("SELECT Email From Tbl_Email WHERE BedrijfsID = " & BedrijfID)
    Do Until rs.EOF
        If strList & "" <> vbNullString Then strList = strList & ";"
        strList = strList & rs!eMail.Value
        rs.MoveNext
    Loop
    rs.Close
    eMail = strList
End Function

De functie retourneert die string, dus je kunt met dit commando MsgBox eMail(Me.BedrijfsID) de string uittesten. Mits uiteraard de functie is aangepast naar jouw situatie :)
Code:
Sub testje()
    eMail(Me.BedrijfsID)
End Sub
 
Ga er zeker eens mee aan de gang, maar, paar weken eruit geweest dus ligt er nog een stapel achterstallige klusjes.... :-(
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan