Ik heb legio dotm gemaakt waarbij 1 deel voor alle sjablonen hetzelfde is.
Er wordt via een function een koppeling naar een oracle database gemaakt en met de eerder opgegeven data worden de naw gegevens uit de database gehaald welke vervolgens weer verder verwerkt worden in het sjabloon.
Wat wil ik:
Dat stukje VBA in een aparte plaats buiten het sjabloon zetten als bv dotm of zo.
Dan vanuit het sjabloon deze dotm oproepen en dan in het sjabloon er verder mee werken.
Voordeel:
Als er iets in de VBA code wijzigt, dan hoef ik dit maar op 1 plek te doen ipv alle sjablonen aan te passen.
Ik heb dit wel eens gedaan meet stukken tekst die voor alle sjablonen van toepassing zijn (dat ging goed) echter nu meet vba code wat buiten het sjabloon moet staan en ook uitgevoerd moet worden lukt me dit niet
De code om de function op te roepen is nu:
De Function is als volgt:
Deze function wil ik dus buiten het sjabloon leggen in een apart dotm, docm of zo.
Tevens moet daarna de aanroep veranderen zodat deze de buitenliggende function oproept en daarna weer terugkomt in de macro waar we mee bezig zijn.
Kan dit??
Wie wilt me helpen om dit tot een goed einde te brengen
BVD Mestreechteneer
Er wordt via een function een koppeling naar een oracle database gemaakt en met de eerder opgegeven data worden de naw gegevens uit de database gehaald welke vervolgens weer verder verwerkt worden in het sjabloon.
Wat wil ik:
Dat stukje VBA in een aparte plaats buiten het sjabloon zetten als bv dotm of zo.
Dan vanuit het sjabloon deze dotm oproepen en dan in het sjabloon er verder mee werken.
Voordeel:
Als er iets in de VBA code wijzigt, dan hoef ik dit maar op 1 plek te doen ipv alle sjablonen aan te passen.
Ik heb dit wel eens gedaan meet stukken tekst die voor alle sjablonen van toepassing zijn (dat ging goed) echter nu meet vba code wat buiten het sjabloon moet staan en ook uitgevoerd moet worden lukt me dit niet
De code om de function op te roepen is nu:
Code:
AdresString = getNAWFromCompas(PENSIOENFONDSNR, TxtAdminNr, TxtLw)
De Function is als volgt:
Code:
Private Function getNAWFromCompas(PF As String, Admin As String, LW As String) As String
Dim http As New WinHttp.WinHttpRequest
Dim URL As String
Dim Envelope As String
Dim Response As String
Dim nPF As String
Dim nAdmin As String
Dim nLW As String
nPF = Replace(LTrim(Replace(PF, "0", " ")), " ", "0")
nAdmin = Replace(LTrim(Replace(Admin, "0", " ")), " ", "0")
nLW = Replace(LTrim(Replace(LW, "0", " ")), " ", "0")
Dim SearchBeginTag As String
Dim SearchEndTag As String
SearchBeginTag = "<result>"
SearchEndTag = "</result>"
Dim beginIndex As Integer
Dim endIndex As Integer
URL = "http://wmacro_p.azl.local:7001/azlwbs_naw-azlwbs_naw-context-root/azlwbs_naw_TopLinkPlSqlProviderService"
Envelope = "<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""><soap:Body><ns1:nwpk999GetNaamAdresRegel xmlns:ns1=""http://azlwbs_naw/Azlwbs_naw_TopLinkPlSqlProviderServiceService""><ns1:I_REQUEST>" + nPF + "_" + nAdmin + "_" + nLW + "</ns1:I_REQUEST></ns1:nwpk999GetNaamAdresRegel></soap:Body></soap:Envelope>"
Call http.Open("POST", URL)
http.SetRequestHeader "Content-Type", "text/xml"
http.SetRequestHeader "SOAPACTION", "http://azlwbs_naw/Azlwbs_naw_TopLinkPlSqlProviderServiceService:nwpk999GetNaamAdresRegel"
http.Send Envelope
Response = http.ResponseText
beginIndex = InStr(1, Response, SearchBeginTag, vbTextCompare) + Len(SearchBeginTag)
If (beginIndex = Len(SearchBeginTag)) Then
getNAWFromCompas = ""
Else
endIndex = InStr(1, Response, SearchEndTag, vbTextCompare) - 1
getNAWFromCompas = Mid(Response, beginIndex, endIndex - beginIndex + 1)
End If
End Function
Tevens moet daarna de aanroep veranderen zodat deze de buitenliggende function oproept en daarna weer terugkomt in de macro waar we mee bezig zijn.
Kan dit??
Wie wilt me helpen om dit tot een goed einde te brengen
BVD Mestreechteneer
Laatst bewerkt door een moderator: